Infrastructure-as-code (IaC) is a very well known and popular technology for cloud infrastructure provisioning using principles of application development i.e. writing code (a programming language). While IaC is emulating application development, the technology has several limitations in the way it is built and works. These make the operationalization of IaC at scale to be challenging. In this blog we will discuss the following:

  1. Highlight the shortcomings of IaC as compared to the mainstream application development and its evolution.
  2. Outline the changes that are needed to fix the issues and show how today’s IaC will evolve to a no-code or low-code pattern.
  3. Highlight an example implementation with DuploCloud of such a no-code/low-code implementation and show how it is eliminating 90% of the code that needs to be written as part of native terraform by using DuploCloud Terraform plugin (provider).

IaC vs. Application Code

Although people describe IaC as writing code for infrastructure, there are some fundamental differences between the two. Let us explain how:

  1. Missing application centric abstractions.

Over decades, in mainstream programming we have evolved from basic imperative programming in C language to object oriented (C++) to managed code (Java/.NET) to interpreted languages (Python) and now No-Code/Low Code (AWS Honeycode). With each evolution new abstractions are added. IaC on the other hand hasn’t seen the same enhancements as it evolved from Bash/Powershell to Chef/Puppet to Terraform/Ansible in the last 20 years.

Image for post

vs

Image for post

#infrastructure-as-code #devops #aws #terraform #azure

Understanding Why Infrastructure-as-Code Struggles at Scale
1.70 GEEK