Next Level Azure IaC: Azure Verified Modules
Infrastructure-as-Code (IaC), en met name Terraform, is een wezenlijk onderdeel van onze Azure Foundation en een fundamenteel element van elke cloudtransformatie. Een gestructureerde inzet van IaC versnelt de adoptie van cloudservices en de ontwikkeling van nieuwe producten. Dan blijft de vraag: hoe begin je het beste?

Azure Verified Module - IaC volgens Microsoft best practices
Microsoft heeft het onderwerp opgepakt en met de Azure Verified Modules (AVM) een framework gebouwd voor het gestructureerd deployen van resources in Azure volgens best practices.
AVM bestaat in drie varianten:
- Resource Modules - deployment van een gedefinieerde cloudresource
- Pattern Modules - deployment van een gedefinieerde cloud workload
- Utility Modules - hulpmodules die door Resource of Pattern Modules worden gebruikt
Om een uniforme standaard te waarborgen heeft Microsoft een reeks eisen vastgelegd waaraan elke nieuwe AVM-resource moet voldoen. Dat geldt zowel voor Terraform als voor Bicep, de eigen IaC-taal van Microsoft Azure.
Aan elke AVM is een specifieke medewerker van Microsoft toegewezen die verantwoordelijk is voor het opzetten, doorontwikkelen en oplossen van problemen.
Alle beschikbare modules zijn als open source (MIT-licentie) beschikbaar in publieke GitHub-repositories van de algemene Azure GitHub organisatie. Als een module problemen geeft of een nieuwe parameter ontbreekt, kan iedereen een issue melden of actief aan de ontwikkeling meewerken.
Hoe begin je met AVM?
AVM werkt net als alle andere modules in Terraform of Bicep; ze worden onafhankelijk aangeroepen en krijgen alle benodigde parameters mee. De eisen voor het opzetten van AVMs zorgen ervoor dat het aantal noodzakelijke parameters tot een minimum wordt beperkt, zodat de instap eenvoudig blijft.
Voorbeeld Terraform: voor de deployment van een virtuele machine met een extra data disk zijn in Azure minimaal de volgende resources nodig:
- azurerm_windows_virtual_machine of azurerm_linux_virtual_machine
- azurerm_network_interface
- azurerm_managed_disk
- azurerm_virtual_machine_data_disk_attachment<
Elk van deze resources heeft bepaalde verplichte parameters die vaak terugkeren, zoals de naam van de resourcegroep, de doelregio of de aanduiding van de resource zelf.
Met AVM wordt de aanroep in je eigen code teruggebracht tot één enkele resource met de benodigde parameters, die vervolgens binnen de module verder worden verwerkt. Omdat AVM de meest voorkomende Microsoft best practices al heeft ingebouwd, hebben veel parameters een standaardwaarde, waardoor extra configuratie vervalt. Een voorbeeld daarvan is dat veel modules TLS 1.2 als standaardwaarde vastleggen of publieke toegang blokkeren.
Wat doe ik als er nog geen AVM voor mijn resource is?
De open source licentie van AVM maakt het mogelijk om op basis van het framework zelf met de ontwikkeling te beginnen. Als een medewerker van Microsoft op een later moment het opzetten van een officiële AVM-resource ter hand neemt, kun je met het al verrichte voorwerk helpen, helemaal in de geest van open source.
GKVM - glueckkanja ❤️ Open Source
Bij glueckkanja volgen we precies deze aanpak en ondersteunen we onze klanten ook bij de ontwikkeling van modules die op het AVM-framework zijn gebaseerd en daarna publiek beschikbaar worden gemaakt.
Wij noemen deze modules GKVM (GlueckKanja Verified Modules), omdat ze niet alleen de eisen van AVM volgen, maar ook onze eigen inzichten uit talloze projecten meenemen.
GKVM Resouce Modules:
GKVM Pattern Modules:
Elk issue dat helpt om de modules met meer functies uit te bouwen is welkom.















