Overview#Infrastructure As Code is a type of Information Technology Architecture Model wherein Development Teams or Operations Teams automatically manage and provision the technology stack for an application through software, rather than using a manual process to configure discrete hardware devices and Operating Systems.
Infrastructure As Code is sometimes referred to as programmable or software-defined infrastructure and is a extension of the DevOps concept.
Development Teams can use code for Resource Provisioning (deploying servers and applications, rather than rely on system administrators in a DevOps environment. A Development Team might write an Infrastructure As Code process for Provisioning a new application for quality assurance or experimental deployment before operations takes over for live deployment in Production tier.
With the infrastructure setup written as code, Development Team can go through the same Version Control System, Continuous testing, and other steps of a Continuous integration and Continuous Delivery (CI/CD) pipeline that Development Teams use for application code. Many organizations choose to combine Infrastructure As Code with containers, which abstract the application from the infrastructure at the Operating System level. Because the Operating System and hardware infrastructure is provisioned automatically and the application is encapsulated atop it, these technologies prove complementary for diverse deployment tiers.