Next Level Azure IaC: Azure Verified Modules

L'Infrastructure as Code (IaC), in particolare con Terraform, è una parte essenziale della nostra Azure Foundation e un elemento fondamentale di ogni trasformazione cloud. Un uso strutturato dell'IaC accelera l'adozione dei servizi cloud e lo sviluppo di nuovi prodotti. A questo punto sorge la domanda: qual è il modo migliore per iniziare?

Next Level Azure IaC: Azure Verified Modules

Azure Verified Module - IaC secondo le best practice Microsoft

Microsoft ha affrontato il tema e con gli Azure Verified Modules (AVM) ha creato un framework per il deployment strutturato di risorse in Azure secondo le best practice.

Gli AVM esistono in tre varianti:

  • Resource Modules, per il deployment di una specifica risorsa cloud
  • Pattern Modules, per il deployment di un workload cloud definito
  • Utility Modules, moduli di supporto utilizzati dai Resource o Pattern Modules

Per garantire uno standard uniforme, Microsoft ha stabilito una serie di requisiti che ogni nuova risorsa AVM deve rispettare. Questo vale sia per Terraform sia per Bicep, il linguaggio IaC proprietario di Microsoft Azure.

A ciascun AVM è assegnato uno specifico collaboratore di Microsoft, responsabile della creazione, dello sviluppo e della gestione dei problemi.

Tutti i moduli disponibili sono accessibili come Open Source (licenza MIT) in repository GitHub pubblici della Azure GitHub Organisation. Se un modulo crea difficoltà o se manca un nuovo parametro, chiunque può segnalare un problema o contribuire attivamente allo sviluppo.

Come iniziare con AVM

Gli AVM funzionano come qualsiasi altro modulo in Terraform o Bicep: vengono richiamati in modo indipendente e ricevono tutti i parametri necessari. I requisiti per la creazione degli AVM fanno sì che i parametri obbligatori siano ridotti al minimo, per garantire un ingresso semplice.

Esempio Terraform: per il deployment di una macchina virtuale con un data disk aggiuntivo sono necessarie almeno le seguenti risorse in Azure:

  • azurerm_windows_virtual_machine oppure azurerm_linux_virtual_machine
  • azurerm_network_interface
  • azurerm_managed_disk
  • azurerm_virtual_machine_data_disk_attachment<

Ognuna di queste risorse ha parametri obbligatori che ricorrono spesso, come il nome del resource group, la regione di destinazione o il nome della risorsa stessa.

Con AVM la chiamata nel proprio codice viene semplificata a un'unica risorsa con i parametri necessari, che vengono poi elaborati all'interno del modulo. Poiché gli AVM integrano già le best practice più comuni di Microsoft, molti parametri sono impostati con valori di default, evitando configurazioni aggiuntive. Un esempio, presente in molti moduli, è l'impostazione di TLS 1.2 come valore predefinito o il blocco dell'accesso pubblico.

Cosa fare se non esiste ancora un AVM per la mia risorsa

La licenza Open Source degli AVM consente di iniziare autonomamente lo sviluppo sulla base del framework. Se in un secondo momento un collaboratore di Microsoft prende in carico la creazione di una risorsa AVM ufficiale, è possibile, nello spirito dell'Open Source, contribuire con il lavoro preliminare già svolto.

GKVM - glueckkanja ❤️ Open Source

In glueckkanja seguiamo esattamente questo approccio e supportiamo i nostri clienti anche nello sviluppo di moduli basati sul framework AVM, che vengono poi resi pubblici.

Chiamiamo questi moduli GKVM (GlueckKanja Verified Modules), perché non solo rispettano i requisiti degli AVM, ma integrano anche le nostre esperienze personali maturate in numerosi progetti.

GKVM Resource Modules:

GKVM Pattern Modules:

Ogni issue che aiuta ad ampliare i moduli con nuove funzionalità è benvenuto.

Risorse di approfondimento

Contattaci ora

Vuoi saperne di più su Infrastructure as Code su Azure? Ti mostriamo volentieri come lavorare nel cloud in modo più rapido, standardizzato e sostenibile con gli Azure Verified Modules. Che si tratti dei primi passi o di un'implementazione scalabile, ti supportiamo con esperienza e best practice. Aspettiamo il tuo contatto.

Articoli simili