I'm curious about the current trend among newer companies when it comes to Infrastructure as Code (IaC) tools. Specifically, do DevOps teams still favor Terraform, or are they leaning more towards native IaC services like CloudFormation or Bicep? Terraform has been popular due to its excellent multi-platform support, particularly for companies migrating from on-premises setups. However, I wonder if startups find platform-specific tools easier and more integrated without the hassle of managing state files or additional command-line interfaces. What tools are you using for IaC in your new company, and do you think native solutions have improved enough to compete with Terraform?
11 Answers
I've always stuck with Terraform; it’s just easier to build upon that knowledge no matter where you end up working. More transferable skills, you know?
Native IaC services only manage a single type of resource efficiently. Terraform lets you handle a range of resources, mixing them together seamlessly. It’s versatile in a way that CloudFormation just isn’t.
We went with the CDK for serverless applications, and while it was useful, I still prefer Terraform for major infrastructures. CDK has its quirks since it’s built on CloudFormation, which can cause headaches.
From what I’ve seen, about 90% of teams still stick to Terraform; others are testing the waters with Pulumi—the native options are less common.
I wouldn’t recommend going all-in on native IaC. Most organizations use a variety of services, and you don’t want to limit yourself to a single provider's ecosystem. With Terraform, you can adapt without switching tools.
If I’m starting fresh, my go-to is still Terraform. It depends on your team's skills and speed of delivery. If your team has stronger dev chops, maybe Pulumi or a native tool like CDK would be a good bet.
That's a fair point! But wouldn't it be smarter for new users, who are completely fresh to IaC, to start with a native tool? It might help them get up to speed faster.
Terraform or OpenTofu are solid choices. Almost every tool you can think of has a Terraform provider. Native tools like Bicep are pretty limited, especially if you’re not solely focused on Azure.
True! Terraform's community support is fantastic, and even though I know it's worth it for new teams to learn, I'm curious if they actually do or just stick to the easier native options.
Bicep isn’t terrible, but its limitations can be really frustrating, especially for managing resources across different files.
OpenTofu is gaining traction, and many projects still run on Terraform. But I see a mix with tools like Crossplane and FluxCD for client projects.
We’re using Pulumi now, but in previous roles, Terraform was always the first choice.
Let me know how Pulumi works out for you! I'm with the team and always looking for feedback.
I'm all about Terraform, but it's not foolproof. You really need to understand best practices; otherwise, you'll end up with a messy situation. One major tip is to regularly test a clean rebuild of your environment. If you skip this, you might find yourself stuck with dependencies that can't be resolved later.
Exactly! We’ve got detailed documentation just for setting up a new cluster, and it’s crucial to consider first-time applications too.
We nuke and rebuild our test environment daily for this very reason, keeps everything fresh!
CloudFormation was an option even before Terraform, but it’s never been a good one. Bicep only works with Azure and is also pretty subpar. Plus, with Terraform, you can find a lot more professionals who are comfortable using it, unlike the native tools.
That perspective makes a lot of sense! While native tools might seem faster due to integration, have you faced any limitations with them that Terraform doesn’t have?
It sounds like some places are sticking with CDK just to avoid migrating to Terraform, huh?