Why Do ARM and Bicep Templates Require API Versioning?

0
18
Asked By TechNinja99 On

I've been digging into ARM and Bicep templates, and I keep noticing that both require you to specify the resource provider version. It seems like cloud APIs should ideally be backward compatible. If I don't mention a version, shouldn't it just select the latest stable version by default? I get that sometimes you might need to work with an older version, but it feels like there's no need to always specify the API version. You should be able to manage a resource created with an older version even when using a newer version, unless the updates include new mandatory fields.

What are some typical situations that justify the constant need for resource provider versioning when other cloud providers don't necessitate it in their templates?

4 Answers

Answered By CloudNerd82 On

Infrastructure deployments should be deterministic. Relying on the latest version being the same every time is like playing a lottery. You never know if a new version introduced changes that could break your pipeline, which can lead to unnecessary chaos.

Answered By DevWizard45 On

Specifying the version lets you track exactly what setup was used in the past. For instance, if a resource was deployed six years ago, knowing the version helps clarify what options were available at that time. If the vendor focuses less on guaranteeing backward compatibility because of this, that might even enhance future features.

Answered By ApiGuru123 On

One reason to always specify a version is that new API versions can fundamentally alter operations. If you deploy a resource without a specified version, it defaults to the latest one. Later, if you redeploy, the resource might not be the same due to changes in defaults, which can lead to discrepancies. This could be problematic, especially in disaster recovery or migration scenarios where multiple templates could suddenly fail because they’re not compatible with the current defaults.

Answered By VersionControlPro On

Microsoft updates things between versions and eventually deprecates older ones. Expecting backward compatibility forever is a challenging task for API creators, and managing that can stifle innovation.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.