In recent years, the term infrastructure has emerged as code in the software development terminology. In the modern sense, an infrastructure is considered as all elements of a project solution, but excluding the application. Configured web servers and operating systems among other components make up the infrastructure.
Infrastructure as a code is a concept that has emerged to place an emphasis on using the techniques of organizing code in organizing your infrastructure.
Infrastructure as a code is the process of managing and provisioning computing infrastructure (processes, bare-metal servers, virtual servers, etc.) and their configuration through machine-processable definition files, rather than physical hardware configuration or the use of interactive configuration tools
In this tutorial author identifies two tools - Vagrant and Puppet - which can be used to overcome challenges of traditional infrastructure provisioning. Light reading.
[Read More]