Skip to main content

Programmable infrastructure

Infrastructure as Code (IaC) has become a much needed standard managing any non-technical infrastructure setups. IaC means having the infrastructure definitions written down in files and bases on those files the infrastructure can be modified or even recreated as needed.

The files and definitions aren't usually actually code but written in a specific configuration format like yaml. Different tools might also have dome templating that allows some rudimentary logic to be used with those configurations. But they aren't actually code. The code in IaC has denoted more like how the configurations are treated like code. They can be copied, modified and shared and most importantly they can be tracked in version control systems.

In recent years however there has been a shift from those templating based configuration languages to infrastructure definition systems using real programming languages. So instead of having the infrastructure treated like code now it is possible to actually program the infrastructure. 

I see this shift as a great thing forward. Having any repeatability and tracking of configurations is already good, but with the old systems there was always challenges with the more complex systems. Those templating languages weren't fit for defining any complex logic and there were always the additional requirement of learning yet another language to being able to use them.