- Terraform declares and defines infrastructure pieces of a system.
- It is a workflow manager.
- The pieces range from IAAS (Azure EC2 instances) to PAAS (Heroku, Kubernetes services) to SAAS (LB, DNS).
- It uses providers for each type of component. A provider defines a set of APIs that Terraform calls to create infrastructure.
- Since infrastructure is defined in a text file (JSON or HCL format), it is easy to version control.
- A TF file is essentially a DAG, that creates components in order.
- TF tries to maintain a desired state of the system.
- Terraform uses a version control solution such as CVS, SVN, or Git.
- Hence it is easy to track changes and manage simultaneous multiple changes.
- Terraform is mostly used for creating infrastructure, not configuring it.
- There are four basic commands in TF:
- Terraform is coded primarily in Golang.