Demystifying Terraform: Simplifying Cloud Infrastructure with Infrastructure as Code (IaaC)
In the world of Cloud and DevOps, there is a highly sought-after skill called Terraform. Let's dive deeper into understanding what Terraform is all about.
Imagine you want to watch a movie. You have two options: you can go to a theatre by getting ready, driving there, buying a ticket, and watching the movie, or you can stay at home and stream it on platforms like Netflix or Prime Video. The result is the same, you get to watch the movie.
Terraform works similarly for creating infrastructure in the cloud. When working with cloud services like servers, databases, security groups, and more, there are typically two approaches. The traditional way involves logging into your cloud provider's portal, going through authentication, searching for the desired services, and configuring them through a series of clicks. On the other hand, with Terraform, you write a script that defines all your infrastructure requirements, and when you run it, boom! Your infrastructure is created.
Just like you can watch movies on various streaming platforms, Terraform allows you to create infrastructure on multiple clouds such as AWS, GCP, and many others. This gives you the freedom to be cloud platform independent and have a multi-cloud setup.
Terraform achieves this by using declarative code. Instead of specifying the exact steps to create infrastructure, you declare the desired end state, and Terraform takes care of the how. For example, you can declare the creation of two AWS servers, three databases, or two pods, and Terraform handles the implementation details.
Note: Terraform is of declarative type, meaning you just write/declare what you want as End result & it will take care of how to do it.
Like create 2 aws server or 3 DB, 2 pods. So it’s not imperative, it’s declarative
The architecture of Terraform consists of three main components: the script or configuration file you write, the state which represents the current state of your infrastructure, and the core component that creates an execution plan to ensure the desired state matches the actual state. Additionally, Terraform relies on cloud providers as the second component of its architecture. Providers like AWS and Azure collaborate with Terraform to bring their resources and services into the fold.
Terraform offers various commands for different stages of infrastructure management, including refreshing the current state, initializing the Terraform directory, creating an execution plan, and applying the plan to execute the desired changes.
By storing infrastructure as code in a script, you can version control it using tools like Git. This allows you to track changes, roll back to previous versions if needed, and collaborate with team members by raising pull requests for approvals.
In essence, Terraform simplifies infrastructure provisioning by enabling you to create and manage infrastructure on any cloud provider without the need for manual interactions. It gives you the flexibility to use code to define your infrastructure requirements and facilitates multi-cloud setups.
If you're interested in exploring complex topics like these in a more accessible way, feel free to connect with me either on Twitter or LinkedIn. Together, we can continue decoding the intricacies of the IT world.
#terraform #IaaC #devops #cloud #ITWorld