Terraform is great but it’s not perfect. In fact, there are some critical “buts” that need to be addressed to elevate and accelerate its performance and impact.
Terraform is great, but…
…it requires a significant cognitive load
Time spent learning how to use Terraform is more time spent not developing, not building the next customer answer, not innovating. Additionally, Terraform requires inputs—how are those captured, shared, and managed? It’s hard enough to learn how to use but also where to find the inputs (e.g. Cloud environments, instance types, networks, etc.).
If you have lots of dev teams then you also have lots of people at varying stages of Terraform learning and expertise. Abstracting away cloud infrastructure complexities through automation should be applied to Terraform, just like AWS, vCenter, or Ansible before it.
The reason to adopt and use new technology is to improve the process in some way, and the faster you can use sit with the least amount of knowledge required the better.
So what’s the answer? Build automation, orchestration, and security directly into a Terraform plan to decrease errors, accelerate timelines, and vastly reduce learning curves.
…it’s not always easy to share what works across the organization so others can benefit.
Terraform plans and exciting use cases rarely get shared across the organization. Siloed dev teams form in isolation, minimizing the impact of better ways, new processes, or optimized configurations. Keeping a lid on the cool, new, and exciting ways your people are using Terraform only minimizes the potential impact.
Stop inventing and re-inventing the wheel. Harness innovation, breakthroughs, and efficient orchestration by sharing with others across the organization so everyone benefits. How much faster can the team move when everyone is able to rapidly leverage what works?
…is woefully lacking in governance, visibility, and reporting.
Your finance/FinOps team is continuously seeking an accurate view of infrastructure consumption, be that on-prem, private, or public clouds. Since Terraform is an open-source tool it’s easy for an individual or a specific team to use as they see fit. As a result, the same groups often provision and use infrastructure outside of normal channels (e.g. purchase direction via credit card). And when that happens, there is no hope for visibility, compliance, cost control, security, or governance. It’s shadow IT, even when done with the best of intentions. Any developer or group not using org-approved resources is creating blind spots. Secure? Not sure. Visible? Not likely. Automated? Maybe.
A management and cloud operations framework allows you to standardize Terraform plans, automate and orchestrate processes, build security into plans, and gain visibility, tracking, and reporting on Terraform use of infrastructure across the organization.
Terraform truly is a great technology, but there are some costly gaps that must be filled, especially in hybrid/multi-cloud environments. While using Terraform in disparate groups throughout the organization has benefits it may also be creating costly issues that diminish the value, increase cost, and slow down innovation.
Make your Terraform experience better, more efficient, secure, and re-usable so that your whole organization gains the greatest benefits and advantages. No buts about it.