What is Terraform and how is it changing DevOps technologies?
Terraform is a really handy tech tool that lets you build, change, and version infrastructure safely and efficiently. It’s specifically designed to support and manage the lifecycle of a wide range of resources, including physical servers, networking, and SaaS products. In essence, this infrastructure tool is able to create any of the components you need to run any of your services and applications. It approaches this task by treating infrastructure code the same as software code.
Terraform is quietly revolutionising DevOps by changing the way infrastructure is managed, and making it faster and more efficient to execute DevOps projects. Although this infrastructure builder shares the same core principle as other DevOps technologies (i.e. infrastructure as code), it’s unusual because it focuses on the automation of the infrastructure itself. This means that your entire Cloud infrastructure can be described in Terraform.
Unlike other comparable tools, Terraform isn’t locked to a particular platform and supports all major cloud providers. There are also a few other differences to comparable technologies. One of these is the way Terraform handles failure. When provisioning fails, Terraform marks the suspect resource and removes and re-provisions them at the next execution. The advantage of this approach to managing failed resources is that the system does not re-build resources that are successfully provisioned, instead focusing its attention on those that are tainted.
Used as part of a multi-team DevOps process, Terraform also allows teams such as operations and security to work in parallel with developers. Each element in the DevOps process has a specifically designed tool, which means teams can focus on their particular tasks without blocking other teams working on the project. This transforms the DevOps process from a linear and slow waterfall-type project into one where teams can work in parallel.
This has the effect of allowing them to execute a DevOps model faster and more efficiently. This is why Terraform is having such an impact on the DevOps process and why it will do so into the future.