DEV Community

Cover image for Azure Verified Modules using Terraform
Marcel.L
Marcel.L

Posted on

Azure Verified Modules using Terraform

Overview

This post is also part of a LIVE session delivered at Global Azure 2024 (See below for the recording).

image.png

Today we are going to talk about Azure Verified Modules (AVM) and how to use them in Terraform.

But fist what are they? Microsoft Azure Verified Modules (AVM) are a curated set of infrastructure-as-code (IaC) modules that are compliant with the Azure Well-Architected Framework and is actively maintained, tested and verified by Microsoft. These modules are designed to help you build secure, scalable, and resilient cloud environments on Azure.

You can use Azure Verified Modules (AVM) in either a Bicep or Terraform configuration where configuration options are uniform and consistent across multiple modules, in terms of best practices and security. Because of this uniform and consistent configuration framework and design pattern, similarities in options across multiple modules is a key feature of Azure Verified Modules (AVM).

This is achieved by having the same configuration variables/parameters across all modules in the same pattern and features, namely interfaces, which makes it easier to use and understand the modules and attain a consistent configuration across all modules.

With Infrastructure as Code (IAC) there are a few challenges. One of the biggest is the effort required to write and maintain modules, especially in a fast-paced environment like Azure where innovation is constant. Many Microsoft partners, developers and community supporter develop their own modules, but the level of maintenance and support can vary widely.

Relying on community-shared modules can be risky due to uncertainty about their upkeep. That's where Microsoft has seen the opportunity to invest time, people, and resources to address this challenge ny introducing Azure Verified Modules (AVM).

Benefits of Azure Verified Modules

  • Supported by Microsoft FTEs directly.
  • Modules undergo thorough testing to ensure functionality.
  • Modules follow consistent design patterns and features which improve usability and maintainability.

Interfaces

Examples of Consistent feature interfaces to name a few:

  • Diagnostic Settings
  • Role Assignments
  • Resource Locks
  • Tags
  • Managed Identities
  • Private Endpoints
  • Customer Managed Keys
  • Azure Monitor Alerts

Live Demo Recording

Have a look at my session recording for a live demo of AMV with Terraform at timestamp - 1h10m:

Labs

Also check out these amazing labs to learn more:

Author

Like, share, follow me on: 🐙 GitHub | 🐧 Twitter | 👾 LinkedIn

Top comments (0)