Infrastructure As Code

Infrastructure

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.

Infrastructure

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”.

Approaches of IaC :



Benefits of IaC


Cost

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.

Speed

Together with Continuous Delivery/Deployment, you are delivering the final product faster. That is because you are cutting on the manual steps.

Risk

Together with Continuous Delivery/Deployment, you are delivering the final product faster. That is because you are cutting on the manual steps.

Consistency

Consistency

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.

Accountability

Accountability

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.

Efficiency

More Efficiency

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.

Tools of IaC

AWS Cloud Formation

AWS Cloud Formation

Chef

Chef

Vagrant

Vagrant

Puppet

Puppet

Terraform

Terraform

Azure Resource Manager

Azure Resource Manager

Google Cloud Deployment Manager

Google Cloud Deployment Manager