How Terraform Is Used Today
Think about how a lot of companies use Terraform today. They usually have a collection of Terraform modules that they use to repeatedly deploy cloud resources so they don’t have to do everything from scratch each time they need to build a new system. Lots of companies either require (or more likely aspire) to use Terraform for the creation of all cloud resources but as you’re probably aware, this turns out to be pretty tricky to do in practice.
If you want to do all your cloud development using Terraform then you need a team of Terraform experts who have all the processes, modules, and tools in place to support your entire company’s cloud needs without becoming bottlenecks. For most companies, this is just an unrealistic expectation, one that they learn the hard way leads to missed deadlines, developer burnout, and low morale. Many companies ultimately find themselves with some resources and environments managed by Terraform and some created through other means such as cloud consoles. This leads to gaps in visibility where all kinds of dangerous security, compliance, cost, and reliability-related issues creep in.