Terraform
Terraform is a tool that is used for building, changing, and versioning infrastructure safely and effectively. Terraform use configuration files and describe what componentes are needed in them. Then Terraform generates an execution plan describing what the desired state should be and then it executes and builds it. Terraform manages all this through a state file.
Terraform supports multiple service providers, such as, AWS, GCP, Azure, OpenShift and Kubernetes.
Primary Terraform Features:
Infrastructure as Code
Idenmpotent
High level syntax
Easily reusable
Execution Plans
Show the intent of the deploy
Can help ensure everything in the development is intentional
Resource graph
Illustrates all changes and dependencies
Some use cases for Terraform:
Hybrid clouds
Cloud agnostic
Allows deployments to multiple providers simultaneously
Multi-tier architecture
Allows deployment of several layers of architecture
Is usually able to automatically deploy in the correct order
Software defined networking
Able to deploy network architecture as wll
Terraform vs. Other Software
Terraform is a high level infrastructure orchestration tool.
Puppet, Chef, and other configuration management tools
Terraform is not intended for configuration management
Terraform provides "provisioners" that can call these tools to perform the configuration management work
CloudFormation and other infrastructure orchestration tools
Many other tools are vendor locked and only support one vendor
There are some tools that are similar to Terraform, but mostly they are not as comprehensive as Terraform
Boto and other lower level tools
Terraform is a higher level tool than tools such as Boto, which makes defining infrastructure easier
Last updated