Azure IaC på næste niveau: Azure Verified Modules

Infrastructure-as-Code (IaC), særligt med Terraform, er en væsentlig del af vores Azure Foundation og et grundlæggende element i enhver cloud-transformation. En struktureret brug af IaC accelererer både adoptionen af cloudtjenester og udviklingen af nye produkter. Dermed melder spørgsmålet sig: Hvordan kommer man bedst i gang?

Azure IaC på næste niveau: Azure Verified Modules

Azure Verified Module - IaC efter Microsofts best practices

Microsoft har taget fat om emnet og med Azure Verified Modules (AVM) skabt et framework til struktureret deployment af ressourcer i Azure efter best practices.

AVM findes i tre forskellige varianter:

  • Resource Modules - deployment af en defineret cloud-ressource
  • Pattern Modules - deployment af et defineret cloud-workload
  • Utility Modules - hjælpemoduler, som anvendes af Resource eller Pattern Modules

For at sikre en ensartet standard har Microsoft fastlagt en række krav, som enhver ny AVM-ressource skal overholde. Det gælder både for Terraform og for Microsoft Azures eget IaC-sprog Bicep.

Hvert AVM er tildelt en bestemt medarbejder hos Microsoft, som er ansvarlig for oprettelsen, videreudviklingen og behandlingen af issues.

Samtlige tilgængelige moduler er open source (MIT-licens) og tilgængelige i offentlige GitHub-repositories under den generelle Azure GitHub-organisation. Hvis et modul volder problemer, eller en ny parameter mangler, har alle mulighed for at rapportere et issue eller aktivt bidrage til udviklingen.

Hvordan kommer man i gang med AVM?

AVM fungerer som alle andre moduler i Terraform eller Bicep; de kaldes uafhængigt og modtager samtlige nødvendige parametre. Kravene til oprettelsen af AVM'er betyder, at antallet af nødvendige parametre reduceres til et minimum, så indgangen bliver ukompliceret.

Eksempel med Terraform: Til deployment af en virtuel maskine med en ekstra data disk kræves som minimum følgende ressourcer i Azure:

  • azurerm_windows_virtual_machine oder azurerm_linux_virtual_machine
  • azurerm_network_interface
  • azurerm_managed_disk
  • azurerm_virtual_machine_data_disk_attachment<

Hver af disse ressourcer har visse obligatoriske parametre, som ofte går igen, for eksempel navnet på ressourcegruppen, målregionen eller betegnelsen på selve ressourcen.

Med AVM forenkles kaldet i din egen kode til en enkelt ressource med de nødvendige parametre, som derefter viderebehandles i modulet. Da AVM allerede har de mest udbredte best practices fra Microsoft indbygget, er talrige parametre forsynet med standardværdier, hvilket gør yderligere konfiguration overflødig. Et eksempel er, at mange moduler fastsætter TLS 1.2 som standardværdi eller blokerer offentlig adgang.

Hvad gør jeg, hvis der endnu ikke findes et AVM til min ressource?

Open source-licensen for AVM gør det muligt selv at gå i gang med udviklingen på grundlag af frameworket. Hvis en medarbejder hos Microsoft på et senere tidspunkt tager fat på at oprette en officiel AVM-ressource, er der mulighed for, helt i open source-ånden, at bidrage med det forarbejde, der allerede er lavet.

GKVM - glueckkanja ❤️ Open Source

Hos glueckkanja følger vi netop denne tilgang og støtter også vores kunder i udviklingen af moduler, der bygger på AVM-frameworket og efterfølgende gøres offentligt tilgængelige.

Vi kalder disse moduler GKVM (GlueckKanja Verified Modules), fordi de ikke kun tager højde for kravene i AVM, men også lader vores egne erkendelser fra talrige projekter indgå.

GKVM Resouce Modules:

GKVM Pattern Modules:

Vi sætter pris på ethvert issue, der hjælper med at udbygge modulerne med flere funktioner.

Flere ressourcer

Kontakt os nu

Vil I vide mere om Infrastructure as Code på Azure? Vi viser jer gerne, hvordan I med Azure Verified Modules arbejder hurtigere, mere standardiseret og mere holdbart i skyen. Uanset om det handler om de første skridt eller en skalerbar implementering, støtter vi jer med erfaring og best practices. Vi glæder os til at høre fra jer.

Lignende indlæg