Terraform Series Part 1: High level Introduction to Terraform

Terraform is a tool for building, changing and versioning infrastructure safely and efficiently.

Features:

  1. Write Cloud Infrastructure as Code using Hashicorp Language (HCl)
  2. Reproducible Environments
  3. Idempotence & Convergence
  4. Easing Collaboration
  5. Self-Service Infrastructure

Supported Infrastructures:

  1. Public Clouds like AWS, GCP, Microsoft Azure
  2. Private Clouds like OpenStack, vSphere, CloudStack
  3. Software & Services like MySQL, GitHub and Chef

When to use Terraform:

  1. For Multi-Cloud Deployments
  2. Multi-Tier Apps
  3. Disposable Environments
  4. Resource Schedulers

Products offered by Terraform:

  1. Open Source – With Open Source Terraform you can provision any Infrastructure
  2. Professional – Offers collaboration and operations features for Teams
  3. Premium – Governance and policy features for organisations

Terraform Workflow

Step 1: Write/Modify Configuration files

Step 2: Create an execution plan (.plan command)

Step 3: Review the plan (if rejected, go back to Step 1 else proceed to Step 4)

Step 4: Apply the changes (.apply command)

Resource Graphs in Terraform:

  • Terraform offers resource graphs which help capture dependency information in your infrastructure.
  • It enables parallel changes to your infrastructure.
  • Resource graphs can be visualized

Automation Workflows in Terraform includes Integrating into CI/CD pipelines which offers Auto Accept, Manual Accept, and Plan Only.

In Upcoming posts in this series we will see more detailed features of Terraform.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s