TERRAFORM
Terraform is an open-source infrastructure as code (IaC) tool developed by HashiCorp. It allows you to define and provision data center infrastructure using a high-level configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON. Terraform is designed to create, manage, and update infrastructure resources such as virtual machines, networks, and storage in a reproducible and automated manner.
WHY USE TERRAFORM:
- Infrastructure
as Code (IaC):
- Terraform enables you to write code to define and
manage your infrastructure. This code can be versioned, reviewed, and
shared, making your infrastructure setup transparent and consistent.
- Declarative
Configuration:
- You declare the desired state of your infrastructure,
and Terraform takes care of the rest. For example, if you need an AWS EC2
instance, you specify it in the configuration, and Terraform ensures it
is created as described.
- Resource
Management:
- Terraform manages the lifecycle of infrastructure
resources. This includes creating, updating, and deleting resources as
specified in the configuration files.
- Execution Plans:
- Before applying changes, Terraform generates an
execution plan that shows what actions will be taken to reach the desired
state. This helps in understanding and validating the changes before they
are applied.
- State
Management:
- Terraform keeps track of the state of your
infrastructure using a state file. This file is used to map your
configuration to the real-world resources, ensuring consistency and
enabling Terraform to determine what changes need to be made.
- Provisioning
Across Multiple Providers:
- Terraform supports a wide range of cloud providers and
services, including AWS, Azure, Google Cloud, Kubernetes, and many
others. This allows you to manage infrastructure across multiple
platforms using a single tool.
7. Standardize
configurations
Terraform supports reusable configuration components
called modules that define configurable collections
of infrastructure, saving time and encouraging best practices. You can use
publicly available modules from the Terraform Registry, or write your own.
The core Terraform workflow consists of
three stages:
· Terraform Init
Terraform init
is the command used to initialize a Terraform working directory. This command
sets up the environment and prepares it for further actions.
·
Plan: Terraform creates
an execution plan describing the infrastructure it will create, update, or
destroy based on the existing infrastructure and your configuration.
·
Apply: On approval,
Terraform performs the proposed operations in the correct order, respecting any
resource dependencies. For example, if you update the properties of a VPC and
change the number of virtual machines in that VPC, Terraform will recreate the
VPC before scaling the virtual machines.
UNDERSTANDING
TERRAFORM
Imagine
You are Building a House
- Blueprints
(Terraform Configuration Files):
- Just like you need blueprints to build a house, you
use Terraform to write down the plans for your infrastructure. This plan
includes all the details about what your infrastructure should look like,
such as the number of servers (like rooms), databases (like plumbing),
and networking settings (like electrical wiring).
- The Builder
(Terraform Tool):
- Terraform is like a smart builder who reads your
blueprints and constructs the house exactly as you've planned. It takes
care of all the details and makes sure everything is put together
correctly.
- Step-by-Step
Plan (Execution Plan):
- Before the builder starts working, they show you a
detailed plan of what they will do. This is Terraform’s "execution
plan," which tells you what changes it will make to your
infrastructure.
- Construction
(Applying Changes):
- Once you approve the plan, the builder starts
constructing your house. Similarly, when you run terraform apply,
Terraform creates or updates your infrastructure based on the blueprint.
- State of the
House (State Management):
- Terraform keeps track of the current state of your
house. If you want to make changes later, it knows exactly what the house
looks like now and what needs to be changed to match the new blueprints.
- Multiple
Builders (Providers):
- Terraform can work with many different builders (cloud
providers) like AWS, Google Cloud, and Azure. It can build parts of your
house (infrastructure) in different places using the same set of
blueprints.
7. Understanding Modules
In
Terraform, modules are like reusable blueprints or building blocks.
Instead of writing the same detailed plan for every house you build, you can
create a module once and reuse it whenever you need to build that part of the
house.
No comments:
Post a Comment