An Introduction to Infrastructure as a Code
The usage of Cloud has become widespread and this trend is likely to continue. Organizations, large or small, continue to prefer using public/private Cloud solutions to deploy their platforms and solutions. The cloud enables organizations to turn their capital expenditure (Capex) to operating expenditure (Opex) using either the pay-as-you-go Infrastructure as a Service (IaaS) or pay-as-you-go Platform as a Service (PaaS) from various cloud vendors.
Today, even the “conservative” organizations are moving towards Cloud for their infrastructure needs. This clearly shows how Cloud is becoming rampant. However, one of the consequences seen by most organizations is the quick need to create an appropriate infrastructure, provision it and tear it down when the infrastructure is no longer necessary.
This conventional way for setting up Cloud Infrastructure has been using the console access, provided by public cloud providers. However, this manual procedure hits the limits especially when the infrastructure and its configuration is elaborate in nature. Besides, the inherent requirements are idempotent and the ability to build & destroy infrastructure quickly is in demand. This has resulted in the usage of open tools like Chef, Ansible, Terraform, Packer, SaltStack etc. or some proprietary tools like AWS CloudFormation, to create and destroy infrastructure. These tools deliver Infrastructure as Code, which can be version-controlled using standard version control tools like git to carefully review any changes.