Introduzione
Microsoft Azure supporta diversi metodi sia per effettuare il provisioning delle risorse per una macchina virtuale Linux, che per la transizione dei carichi di lavoro esistenti basati su Linux.
Scenario di esempio
Si supponga di essere stati incaricati da una società di servizi finanziari di eseguire la transizione ad Azure dei loro esistenti carichi di lavoro locali basati su Linux. Come servizi necessari per il progetto, è stata selezionata Infrastruttura distribuita come servizio (IaaS) e Piattaforma distribuita come servizio (PaaS) ed è stata completata la pianificazione per le risorse necessarie per la distribuzione. È ora necessario selezionare una metodologia di distribuzione che offra un equilibrio ottimale tra semplicità ed efficienza durante il provisioning delle macchine virtuali di Azure che eseguono Linux. Le opzioni disponibili includono il portale di Azure, l'interfaccia della riga di comando di Azure e i modelli Terraform e Bicep.
Esaminare i metodi di distribuzione primari
Quando si sceglie la metodologia di distribuzione da utilizzare, è consigliabile prendere in considerazione le opzioni che ogni scelta deve offrire.
Portale di Azure
L'approccio più semplice per il provisioning delle risorse di Azure consiste nell'usare il portale di Azure. Il portale di Azure è una console unificata basata sul Web che offre un'alternativa conveniente agli strumenti da riga di comando. La sua interfaccia grafica basata su browser è progettata per facilitare la distribuzione delle risorse e le attività di gestione attraverso la richiesta all'utente di qualsiasi informazione necessaria, fornendo suggerimenti e visualizzando messaggi utili.
Interfaccia della riga di comando di Azure
L'interfaccia della riga di comando di Azure è uno strumento da riga di comando multipiattaforma che è possibile utilizzare per accedere alle sottoscrizioni di Azure e gestire le relative risorse. È possibile eseguire i comandi dell'interfaccia della riga di comando di Azure in modo interattivo in un'interfaccia della console, ad esempio una finestra del prompt dei comandi di Windows o una sessione della shell Linux. È anche possibile incorporare l'interfaccia della riga di comando di Azure negli script che utilizzano i comandi della shell Bash e le utilità GNU per automatizzare il processo.
Terraform
Terraform è uno strumento IaC (Infrastruttura as Code) open source e multipiattaforma che è possibile usare per effettuare il provisioning e la configurazione di un'ampia gamma di ambienti, compresi i cloud pubblici e privati con più fornitori. Mentre l'interfaccia della riga di comando di Azure fornisce un approccio imperativo alla gestione delle risorse, Terraform segue un approccio dichiarativo.
Un approccio imperativo comporta la scrittura di script o l'esecuzione di una sequenza di comandi. L'utente specifica in modo esplicito i passaggi da eseguire per produrre un risultato desiderato. Quando si usano le distribuzioni imperative, l'utente è responsabile della gestione delle dipendenze, della gestione degli errori e degli aggiornamenti delle risorse. L'approccio dichiarativo implica scrivere una definizione che descrive il risultato desiderato, non i passaggi da implementare; gli strumenti determinano il metodo ottimale per restituire tale risultato. Esegue questa operazione controllando lo stato corrente dell'ambiente, confrontandolo con lo stato di destinazione e quindi implementando le modifiche necessarie per renderli identici.
Nota
Red Hat Ansible è un altro strumento open source popolare che è possibile utilizzare per integrare la funzionalità Terraform. Ansible facilita tuttavia il provisioning delle risorse cloud e supporta sia la gestione della configurazione che le distribuzioni di applicazioni.
Bicep
Bicep offre un metodo di provisioning dichiarativo alternativo a Terraform. Anche se è destinato esclusivamente alle risorse di Azure, è possibile trarre vantaggio da diverse funzionalità di integrazione e usabilità che sono comuni tra le tecnologie basate sul cloud Microsoft.
Nota
Per un confronto completo tra Bicep e Terraform consultare Confronto tra Terraform e Bicep.
Azure supporta due tipi di modelli per il provisioning dichiarativo:
Modello di Azure Resource Manager: Il presente modello utilizza il formato di file open-standard JavaScript Object Notation (JSON).
Modello Bicep: Questo modello si basa su un linguaggio specifico del dominio (DSL), recentemente sviluppato da Microsoft per semplificare l'esperienza di creazione di modelli e per migliorare le funzionalità risultanti.
È possibile usare entrambi questi modelli per distribuire praticamente qualsiasi risorsa di Azure. Questi modelli si integrano facilmente anche nei sistemi di controllo delle versioni e nelle pipeline di distribuzione e consentono di migliorare l'automazione e l'affidabilità. Tuttavia, rispetto ai modelli di Azure Resource Manager, i modelli Bicep offrono vari vantaggi aggiuntivi, tra cui una sintassi più concisa e la gestione predefinita delle dipendenze.
Cosa si fa?
In questo modulo si sceglierà il metodo di distribuzione ottimale per il provisioning di macchine virtuali Linux in Azure. La scelta dipenderà dai criteri stabiliti durante la fase della pianificazione della distribuzione.
Qual è l'obiettivo principale?
Al termine di questo modulo sarà possibile effettuare il provisioning di macchine virtuali di Azure che eseguono Linux, usando la metodologia di distribuzione desiderata. Si avrà anche una migliore comprensione dei casi d'uso più adatti per ciascun metodo.