Our team knows Terraform from AWS, but the Azure project coming up is more involved than our previous one. We ran into some Azure provider feature gaps before, so I'm considering Bicep. How would you weigh the tradeoffs?
Should we stick with Terraform for a more complex Azure project, or try Bicep?
Answers
I'd start with Terraform if the team already understands its workflow and state management. You won't be able to lift AWS modules straight into Azure, but the language and operating model will still be familiar.
Check Azure Verified Modules before building everything from scratch. For features missing from the AzureRM provider, the AzAPI provider is another option for working with Azure resources through the ARM API.
Reply to this answer
Bicep is worth evaluating if Azure is going to be the long-term focus. Support for new Azure features may arrive sooner there than in AzureRM, which matters if the project depends on something the provider doesn't expose yet.
I'd make a list of the actual features you need and check both tools rather than choosing based on a general expectation about coverage. Also check whether your existing infrastructure security scanner supports Bicep.
Reply to this answer
Test the resource lifecycle, not just the initial deployment. In particular, check how you'd remove resources and review changes with Bicep's what-if operation. Those concerns came up separately from feature coverage and could affect the way you run the project.
Reply to this answer
For the provider gaps you hit last time, check the current provider support and look for existing issue reports. If you can reproduce a gap and it hasn't been reported, filing an issue gives maintainers something concrete to investigate.
Juzzle:
And if AzAPI covers a gap, it's still worth checking whether that adds complexity the team wants to maintain.
Reply to this answer
Add your answer
Answers are reviewed before publication.
Fizzen:
Good point. Familiarity still helps even if the cloud-specific modules need a rewrite.