I'm helping companies to setup DevOps. That means for them to focus on their product, faster & more reliable delivery new features to production and stop wasting time for example on deployments and infrastructure.
how to deﬁne your infrastructure - Support removing resources (has state) - Help you to evolve infrastructure save & predictable way - Work with all major clouds (AWS, Azure, …) - Open Source (18 000 stars on Github) - Can predict costs (Terraform Enterprise)
with Ansible, Puppet, ... - Terraform is not a conﬁguration management tool, Ansible or Puppet do it and do it pretty good - Terraform work with conﬁguration management tool - Terraform creates infrastructure and run CM tool for setting up the resources
computed for use elsewhere in Terraform conﬁguration. Use of data sources allows a Terraform conﬁguration to make use of information deﬁned outside of Terraform, or deﬁned by another separate Terraform conﬁguration.