Next Level Azure IaC: Azure Verified Modules
Infrastructure as Code (IaC), særlig med Terraform, er en sentral del av vår Azure Foundation og et grunnleggende element i enhver cloud-transformasjon. En strukturert bruk av IaC gjør at nye cloud-tjenester tas i bruk raskere, og at nye produkter kommer fortere ut. Da melder spørsmålet seg: Hvordan kommer du best i gang?

Azure Verified Modules - IaC etter Microsoft Best Practices
Microsoft har tatt tak i temaet og laget Azure Verified Modules (AVM), et rammeverk for strukturert deployment av ressurser i Azure etter best practices.
AVM finnes i tre ulike varianter:
- Resource Modules - deployment av en definert cloud-ressurs
- Pattern Modules - deployment av en definert cloud workload
- Utility Modules - hjelpemoduler som brukes av Resource eller Pattern Modules
For å sikre en enhetlig standard har Microsoft fastsatt en rekke krav som hver ny AVM-ressurs må oppfylle. Dette gjelder både for Terraform og for Microsoft Azures eget IaC-språk Bicep.
Hver AVM er tildelt en bestemt Microsoft-medarbeider som er ansvarlig for utvikling, videreutvikling og håndtering av problemer.
Alle tilgjengelige moduler er open source (MIT-lisens) i offentlige GitHub-repositorier under den generelle Azure GitHub-organisasjonen. Hvis en modul gir problemer eller en ny parameter mangler, kan hvem som helst melde en issue eller bidra aktivt til utviklingen.
Hvordan kommer du i gang med AVM?
AVM fungerer som alle andre moduler i Terraform eller Bicep; de kalles uavhengig og tar imot alle nødvendige parametre. Kravene til hvordan AVM-er skal bygges gjør at antallet obligatoriske parametre holdes på et minimum, slik at det blir enkelt å komme i gang.
Eksempel Terraform: For deployment av en virtuell maskin med en ekstra data disk trengs det som et minimum følgende ressurser i Azure:
- azurerm_windows_virtual_machine eller azurerm_linux_virtual_machine
- azurerm_network_interface
- azurerm_managed_disk
- azurerm_virtual_machine_data_disk_attachment<
Hver av disse ressursene har visse obligatoriske parametre som ofte går igjen, som navn på ressursgruppen, målregionen eller selve ressursnavnet.
Med AVM forenkles kallet i din egen kode til én ressurs med de nødvendige parametrene, som deretter viderebehandles inne i modulen. Siden AVM allerede har lagt inn de vanligste Microsoft best practices, kommer mange parametre med standardverdier, slik at ekstra konfigurasjon bortfaller. Et eksempel er at mange moduler setter TLS 1.2 som standardverdi eller blokkerer offentlig tilgang.
Hva gjør du hvis det ikke finnes en AVM for ressursen din ennå?
Open source-lisensen til AVM gjør at du kan starte utviklingen på egen hånd med utgangspunkt i rammeverket. Skulle en Microsoft-medarbeider senere sette i gang arbeidet med en offisiell AVM-ressurs, kan forarbeidet ditt bidra inn i utviklingen, helt i tråd med open source-tanken.
GKVM - glueckkanja ❤️ Open Source
Hos glueckkanja følger vi nettopp denne tilnærmingen og støtter kundene våre også med å utvikle moduler bygget på AVM-rammeverket, som deretter gjøres tilgjengelig for offentligheten.
Vi kaller disse modulene GKVM (GlueckKanja Verified Modules), fordi de ikke bare følger kravene til AVM, men også tar med våre egne erfaringer fra en rekke prosjekter.
GKVM Resource Modules:
GKVM Pattern Modules:
Vi setter pris på hver issue som er med på å utvide modulene med flere funksjoner.















