Terraform is now a well-established tool for managing your infrastructure. And for good reason. The ability to tear down and reliably recreate your infrastructure is extremely useful. Gone are the days of flicking through a myriad of complex GUIs, or manually typing commands into a remote console. Now everything can be managed straight from the CLI, in your own codebase – with just a few keystrokes.
Terraform is a popular open source project with wide support for many different infrastructure providers, so chances are it’ll cater for your infrastructure needs. A thriving community means updates and features are regularly provided and, even if not, pull requests can be made or custom providers can be written.
The language itself is easy to pick up, with the declarative HCL providing a simple and easily human-readable syntax for the configuration files Terraform relies on. Knowledge of only a handful of commands is enough to get started using Terraform effectively. For new projects, it's a no-brainer. For the more established projects out there, there’ll be a period of slight pain as you collate and write down all your infrastructure into Terraform.
Having all your infrastructure changes committed alongside your application's code simplifies your CI/CD processes and helps document your infrastructure. Much handier than a plethora of dusty old readme files. The greater transparency these committed changes offer during the review process helps makes sure the right architectural decisions are made.
Terraform certainly has a bright future and is well worth the initial investment. Whether you’re creating additional environments, performing migrations, responding to the changing demands of your system or recovering from outages, it all becomes far more manageable with Terraform. Infrastructure becomes part of the work of an autonomous delivery team, rather than a separate part of your organisation.