Terraform has always had a big lead over ARM for Azure, in that it’s actually a pleasure to use vs ARM’s human-unfriendly cumbersome JSON format. It does have a big downside in that new Azure features can be slow to make it into the AzureRM provider, but that was less of a problem when the rate of change was lower.
Now Microsoft are really getting behind Project Bicep - an intermediate Domain Specific Language that seeks to take the verbosity and drudgery out of ARM template generation. An MS Ignite presentation indicated that you don’t have to transpile into ARM before deployment now. I would rather they put the time and effort into Terraform instead (they use and support Terraform, but clearly wanted their own thing), but I don’t run Microsoft.
As well as receiving a lot of development and marketing love, plus the improved ease of use above, Bicep also gets the “all Azure features are supported from day 1” bonus of ARM. This is increasingly relevant, as the rate of change just keeps climbing.
Terraform adoption in Azure houses just got harder to justify & will continue to get harder as Bicep develops.
To what extent is HashiCorp concerned about this?
Are the 2 products in competition, or friendly rivalry? (ignoring the much wider applicability of Terraform, as I’m just talking about Azure here)
Can developments in each product be used to level up both, as MS and HashiCorp are already working together?
What can HashiCorp do to keep up and exceed Bicep? (e.g. address the API & feature lag experienced by 3rd party Infrastructure as Code providers; integrate Terraform Cloud auditing and management with Azure; …)
I’ve been using Terraform for a while and love it, but for colleagues new to Infrastructure as Code on Azure, it’s no longer a cookie-cutter “use Terraform, as ARM is horrible”.