Terraform, An Introduction….

Terraform is written in Go, which is easily extensible, as the OCI Provider for Terraform shows.

Terraform development moves quickly. As soon as the Cloud providers change, Terraform quickly adapts. This is important – users don’t want to have to write the abstractions for a given cloud service.

HCL is a declarative language. Therefore, your goal is to describe the infrastructure you want, and Terraform will figure out how to create it.

HCL configuration language supports comments, has auto-formatting built-in (terraform fmt), and can have comments. Terraform itself can read JSON in place of HCL if needed.

Terraform provides declarative execution plans for building and running applications and infrastructure. What does declarative mean? Declarative plans are ones in which you specify outcomes. So, you let the tool take care of the steps required and focus on the outcome. This means you no longer need to worry about what specific commands to run, buttons to push, or settings to tweak. The tool underneath takes care of those details.

There are many different tools available for automation. Here is how Terraform stands in among the other options available,

Tool

Released by

Code

Method

Approach

Written in

Installation

Type

Architecture

Infrastructure

Ansible

Red Hat

Open Source

Push

Procedural

Python/YAML

Easy

Config Mgt

Client only

Mutable

Terraform

HashiCorp

Open Source

Push

Declarative

GO

Easy

Orchestration

Client only

Immutable

Chef

Chef

Open Source

Pull

Procedural

Ruby

Hard

Config Mgt

Server/Client

Mutable

Puppet

Puppet

Open Source

Pull

Declarative

Ruby

Hard

Config Mgt

Server/Client

Mutable

SaltStack

SaltStack

Open Source

Pull & Push

Declarative

Python

Hard

Config Mgt

Server/Client

Mutable

CloudFormation

AWS

Closed Source

Pull

Declarative

JSON

Hard

Orchestration

Client only

Immutable

 

In the next post, we shall see how to install Terraform in Windows and in OCI Console.

Aman….