In the relatively young domain of infrastructure as code, several players are creating new approaches that have the potential to completely transform the way we write and deploy software. Infrastructure code is an umbrella term for the set of practices and tools that apply rigor from the learning domain of application development to the domain of infrastructure provisioning and maintenance. The article explores the evolution of infrastructure as code and the benefits it brings, from performance and reproducibility to documentation and audit history, with a focus on the third and fourth generations of infrastructure code tools that aim to completely unify infrastructure and application code.















