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..
- Azure Resource Manager
- Google Cloud Deployment Manager
- 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 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/
- 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/
- 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/
- 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/
Spacelift is the most flexible CI/CD for infrastructure as code that helps DevOps teams manage their infrastructure-as-code performance for maximum optimization of scaling businesses.
Spacelift works with any IaC setup and is capable of working as a self-hosted agent on your infrastructure, therefore offering maximum security without sacrificing functionality. It is built on top of well-known and well-loved open source components like Docker and Open Policy Agent, allowing full customization while maintaining sensible defaults.
Spacelift offers a unique set of IaC management capabilities:
- Gitflow Workflows
- Access Control
- Policy as Code
- Private Module Registry
- Programmatic Configuration
- Drift Detection
- Effortless Setup and Customization
- Resource Visualization
Here is a description with features from: https://spacelift.io/product