|IaC like I'm Five|
|What is Infrastructure as Code|
|Why should we use it|
|How do we use it|
|Other IaC Tools|
Historically, creating infrastructure involved manually setting up servers and configuring systems to run applications, operating systems, databases...etc. Infrastructure was imperatively configured and maintained, meaning this was done with step by step instructions and executed by the admin. This process becomes unsustainable with large & complex systems leaving room for issues with cost, availability, and consistency.
Infrastructure as Code solves these problems by automating setup and management by writing code in a high-level descriptive language.
HashiCorp's Founder, Armon Dadgar explains IaC simply and eloquently in this short video
Accidents happen, human error happens. By automating infrastructure with code we reduce error and produce more reliable code.
Complexity, with the emergence of cloud-based infrastructure IaC is paramount for scaling distributed systems, cloud-native applications, and service-based architecture.
Terraform is a cloud provider agnostic orchestration tool. This means we can build, version, and destroy resources across multiple providers at the same time. We can also easily look up modules to use directly from the Terraform Registry saving time on creating common configurations. These features make it a leader in IaC. Now let's take a look at the power of Terraform with an example.
Another Orchestration tool is AWS CloudFormation, this tool is similar to Terraform but it is only AWS focused.
Along with orchestration tools, there are configuration management tools. They are used to install and manage software on existing servers.
Common configuration management tools:
** Some configuration management tools can be used for orchestration. It all depends on the best fit for your needs or the task.