Introduction to IAAC [Infrastructure As A Code] tools

It’s time that I had to write an article on IAAC. All giant’s infra are now set and manage as IAAC. Infrastructure As A Code is shorted as IAAC.

I hope you guys are already aware of these tools and you are already started working on that. This is a simple, straight intro to those tools. This will help you to start your journey as an automation engineer.

Now-a-days, all big infra are managing in this way, to reduce the human mistakes and deployment time.

As I mentioned, “HUMAN MISTAKES” or human errors, this is one of the main headache for managing big/medium size infra. Consider this case, you’ve 15 plus servers in your production infra. And almost 10 servers are using Nginx behind HA load balancing. You can configure all things manually in those servers with in a week and make the infra ready for production. And you have 10 peoples working as your engineers. The approach to a work is different in every person.

You can not assure what your engineers doing on these servers once you have a proper documentation. You can not track the changes correctly. If someone made some mistakes on the infra, it’s very difficult to understand and troubleshoot it.

Also it’s time consuming.

Other thing; if you want to update something in your infra. It’s very difficult to do it on all servers at a time. Again the case of human errors!!

Here we go! Time for automation. Convert your infra as a code. ūüėõ

This is the effective way of managing / updating / deploying your infra.

Setting up or converting your infra as IAAC is a task, but, it’s a onetime big task. Just do it, and relax!!

In this article I am listing 10 plus commonly using IAAC automation tools.

In my list, I have these things.. 

1. Terraform
2. CloudFormation
3. Azure Resource Manager
4. Google Cloud Deployment Manager
5. Ansible
6. Chef
7. Puppet
8. Saltstack
9. Vagrant
10. Docker
11. Pallet
12. Juju

Terraform

  • Developed by¬†Hashicorp.
  • Terraform¬†¬†is an infrastructure provisioning tool.
  • Terraform uses its own domain-specific language (DSL) called Hashicorp Configuration Language (HCL).
  • HCL is JSON-compatible and is used to create these configuration files that describe the infrastructure resources to be deployed.
  • Compatible for multiple cloud provider (AWS, Azure etc..)
  • If you wish you can write plugins.
  • More¬†https://www.terraform.io/

AWS CloudFormation

  • AWS service.
  • An orchestration tool that allows you to code your infrastructure to automate your deployments.
  • CloudFormation templates can be created with YAML in addition to JSON.
  • Integrated only to AWS.
  • CloudFormation uses Rollback Triggers to revert infrastructure stacks to a previous deployed state if errors are detected.
  • A single CloudFormation template can be used for different region or different AWS account.
  • More¬†https://aws.amazon.com/cloudformation/

Azure Resource Manager

  • Helps to deploy app resources simply.
  • Azure Resource Manager makes it easy for you to manage and visualize resources in your app.
  • With Azure Resource Manager, you can control who in your organization can perform actions on the resources.
  • More¬†https://azure.microsoft.com/en-us/features/resource-manager/

Google Cloud Deployment Manager

  • Deployment Manager is an infrastructure deployment service that automates the creation and management of Google Cloud Platform resources for you.
  • Write flexible template and configuration files and use them to create deployments that have a variety of Cloud Platform services, such as Google Cloud Storage, Google Compute Engine, and Google Cloud SQL, configured to work together.
  • More¬†https://cloud.google.com/deployment-manager/docs/

Ansible

  • Created by RedHat team.
  • Ansible doesn‚Äôt use agents.
  • Its code is written in YAML in the form of Ansible Playbooks, so configurations are very easy to understand and deploy.
  • More¬†https://www.ansible.com/

Chef

  • One of the most popular configuration management tools .
  • Chef allows you to create ‚Äúrecipes‚ÄĚ and ‚Äúcookbooks‚ÄĚ using its Ruby-based DSL.
  • Chef is cloud-agnostic and works with many cloud service providers such as AWS, Microsoft Azure, Google Cloud Platform, OpenStack, and more.
  • More¬†https://www.chef.io/automate/

Puppet

  • Same as Chef.
  • Using Puppet‚Äôs Ruby-based DSL.
  • Puppet integrates with the leading cloud providers like AWS, Azure, Google Cloud, and VMware, allowing you to automate across multiple clouds.
  • More¬†https://puppet.com/

Will update it soon.

Post navigation

Arunlal Ashok

Linux Systems Architect at Endurance International Group. Linux lover. Like to play on Linux console. I started this blog to share and discuss Linux thoughts.

Always happy for an open discussion! Write to arun (@) crybit (dot) com. Check about me for more details. About this blog and our strong members, check The team CryBit.com