IaC is a principle (or process) of provisioning and managing your infrastructure through machine-readable definitions instead of using physical hardware configuration. To put it in better terms, instead of manually setting everything by yourself, you create a configuration file. Some people call IaC golden rule for DevOps.
In the past, managing IT infrastructure was a hard job. System administrators had to manually manage and configure all of the hardware and software that was needed for the applications to run. However, in recent years, things have changed dramatically. Trends like cloud computing revolutionized—and improved—the way organizations design, develop, and maintain their IT infrastructure.
One of the critical components of this trend is called “infrastructure as code”.
Focuses on What. What is the desired end look? With this approach, you declare the end state, and the system makes it happen
Focuses on How. How should my existing infrastructure change? With this approach, you define the steps the system takes to arrive at the desired end state
IaC practices and tools can reduce the cost of the service (save you money). Through automatization, you are lowering the manual labor that allows Ops/Dev Ops team to focus on something else. Moreover, through spinning, you are using your resources optimally.
Together with Continuous Delivery/Deployment, you are delivering the final product faster. That is because you are cutting on the manual steps.
Together with Continuous Delivery/Deployment, you are delivering the final product faster. That is because you are cutting on the manual steps.
Manual processes result in mistakes, period. Humans are fallible. Our memories fault us. Communication is hard, and we are in general pretty bad at it. As you’ve read, manual infrastructure management will result in discrepancies, no matter how hard you try.
This one is quick and easy. Since you can version IaC configuration files like any source code file, you have full traceability of the changes each configuration suffered. No more guessing games about who did what and when.
By employing infrastructure as code, you can deploy your infrastructure architectures in many stages. That makes the whole software development lif cycle more efficient, raising the team’s productivity to new levels.
AWS Cloud Formation
Chef
Vagrant
Puppet
Terraform
Azure Resource Manager
Google Cloud Deployment Manager