Post

avm-alz VS caf-enterprise

avm-alz VS caf-enterprise

HCL Azure


This will be a short and straightforward post highlighting the key differences I’ve found between the new landing zone module AVM-ALZ and the legacy CAF Enterprise module.

Just for context, the CAF Enterprise module has been deprecated and will no longer receive new features, although it is still supported as of today. However, the new AVM-ALZ module is now the recommended approach for new deployments.


CAF Enterprise

  • It is a single module that includes submodules for core, identity, management, and connectivity.

  • Being monolithic, it tends to be complex and creates dependencies between submodules. (For example, if you want to separate environments or identities to avoid a blast radius, you would need to duplicate the module code and set some parameters to false. This approach makes the code harder to maintain and understand).

  • The main provider is AzureRM, which limits available features since not all Azure resources are supported. (It is also often difficult to customize, reducing flexibility in many use cases).






















AVM-ALZ

  • Built as separate modules, providing a more modular and flexible structure.
  • Highly customizable to fit different scenarios and organizational needs.
  • Uses both AzAPI and AzureRM providers, enabling faster support for new Azure resources, improved customization, and better performance.



















Conclusion

While the previous CAF had its complexities and challenges, I believe it served its purpose well. However, as the environment evolved and new features were introduced, I believe its maintainers felt this update was the best approach.

I recommend accessing the official project documentation to perform the deployment. You can also see that there are other modules available that can be used to complement your landing zone.

References: Documentation, Terraform Pattern Modules

This post is licensed under CC BY 4.0 by the author.