Terraform:
Terraform by HashiCorp is an infrastructure as code solution that allows you to specify cloud and on-premise resources in human-readable configuration files that you can reuse and share. Then, throughout the lifecycle of your infrastructure, you can utilize a consistent methodology to provide and manage it. It is written in the Go programming language.
Terraform utilizes application programming interfaces to construct and manage resources on cloud platforms and other services (APIs). Terraform is able to interact with practically any platform or service that has an accessible API through the use of providers.
IAC:
There are different infrastructures that we have learned but this one is unique and very useful because it includes everything you do with your servers, network devices, databases, applications, automated tests, and deployment process should be written down in code. This is called Infrastructure as Code (IaC). This consists of every stage of your infrastructure lifecycle, starting from defining, deploying, updating, and destroying. The main benefit of defining every resource as an IaC is that you can now keep track of it, reuse it, validate it, and build a self-service model in your company.
How it is distinctive from other tools?
It is Different from other tools for quite some reasons few of them are presented here
Infrastructure provisioning:
Terraform is used to provision infrastructure, while Ansible, Chef, and Puppet are configuration management tools (used to push/pull configuration changes). In contrast, you can use Terraform to run configuration scripts and configuration management to build infrastructure, but this is not optimal. The preferable method is to utilize them in tandem, for example, using Terraform to build infrastructure and then using Puppet to customize that infrastructure.
Immutable infrastructure:
The next major distinction is between mutable and immutable infrastructure. Terraform generates immutable infrastructure, which means that every time you use it to make changes, it creates a new resource. Changes pushed using Puppet, on the other hand, will update the existing software version, resulting in configuration drift in the long run.
Open-source tool:
Another distinction is open source vs. proprietary; Terraform is an open-source tool that works with practically all major providers, but proprietary tools like CloudFormation are dedicated to AWS.
Not just Configuration management:
Many other tools in the category are just Configuration management tools but you can create the infrastructure using terraform
Conclusion:
Terraform code is written in the HCL programming language and stored in.tf files. Because Terraform is a declarative language, your goal is to define the infrastructure you want, and it will figure out how to build it. Terraform is capable of building infrastructure on a wide range of platforms and providers so it is also good to work with Huawei.
References:
https://www.terraform.io/intro
https://www.oreilly.com/library/view/terraform-up-and/9781491977071/ch01.html
https://pactflow.io/blog/terraform/