Understanding the difference between Terraform and CloudFormation
First of all, we are not evaluating CloudFormation and Terraform to find the best infrastructure-as-code instrument on the market. Our goal is to find a tool that fits the purpose and our use case (whatever it is going to be).
We are going to look at the following features:
- Provider support
- Declaration syntax
- Development and deployment methodologies
Let's start with provider support.
Provider support
CloudFormation as an invention of Amazon Web Services originally supported itself as the only service provider.
Terraform was developed as a cloud-agnostic tool, meaning that it could communicate with various cloud and service providers, thus making it one tool to rule them all.
This concept was made available with the use of providers—specific abstractions that handle communication between a service provider and Terraform. Providers are written in the same language as Terraform...