Scegliere lo strumento da riga di comando appropriato

Completato

Ogni azione eseguita nel portale di Azure si traduce nell'esecuzione del codice in un'API in background per creare, leggere, aggiornare o eliminare le risorse di Azure. Gli strumenti da riga di comando di Azure sono wrapper per l'API che consentono di automatizzare il provisioning delle risorse di Azure su larga scala.

Opzioni di automazione in Azure

Quattro strumenti da riga di comando vengono comunemente usati per automatizzare le risorse di Azure: l'interfaccia della riga di comando di Azure, Azure PowerShell, Bicep e Terraform.

Come vengono confrontati gli strumenti?

L'interfaccia della riga di comando di Azure, Azure PowerShell, Bicep e Terraform presentano analogie, ma ognuno offre vantaggi distinti. Avendo l'incarico di effettuare il provisioning di Archiviazione di Azure, quali funzionalità degli strumenti offrono il miglior vantaggio nell'ambiente in uso?

La tabella seguente identifica le funzionalità di ogni strumento da riga di comando di Azure. Nella tabella:

  • L'icona Sì indica che la funzionalità è true per lo strumento da riga di comando specificato.
  • L'icona No indica che la funzionalità è false per lo strumento da riga di comando specificato.
Funzionalità Interfaccia della riga di comando di Azure Azure PowerShell Bicep Terraform
IaC imperativo Sì Sì No No
IaC dichiarativo No No Sì Sì
Nativo di Azure Sì Sì Sì No
Indipendente dal cloud No No No Sì
Può essere eseguito in Windows, Linux e macOS Sì Sì Sì Sì
Può creare, modificare ed eliminare risorse di Archiviazione di Azure Sì Sì Sì Sì

Esaminare in modo più approfondito ogni strumento. Quali funzionalità dell'interfaccia della riga di comando di Azure rispetto ad Azure PowerShell, e di Bicep rispetto a Terraform, rendono uno o più strumenti adatti all'ambiente in uso?

Confronto tra interfaccia della riga di comando di Azure e Azure PowerShell

L'interfaccia della riga di comando di Azure e Azure PowerShell sono strumenti da riga di comando che consentono di creare e gestire le risorse di Azure.

Interfaccia della riga di comando di Azure

  • Interfaccia della riga di comando multipiattaforma installabile in Windows, Linux e macOS
  • Eseguibile in Azure Cloud Shell, PowerShell, Bash, Cmd.exeo un contenitore Docker
  • Si basa su Python
  • L'impostazione predefinita è l'output di una stringa JSON, anche se sono disponibili altre opzioni di formato, ad esempio tabella, YAML e TSV
  • Consente di eseguire query per l'output dei comandi usando la sintassi di query JMESPath.
  • Usa i comandi organizzati in gruppi, ad esempio az vm, e sottogruppi, ad esempio az vm disk
  • Ha una sintassi che segue un modello reference name -command -parameter -parameter value semplice
  • Supporta operazioni asincrone

Azure PowerShell

  • Modulo PowerShell multipiattaforma che viene eseguito in Windows, Linux e macOS
  • Eseguibile in locale in PowerShell, in Azure Cloud Shell o in un contenitore Docker
  • Si basa su .NET Standard
  • Fornisce il completamento tramite tabulazione e IntelliSense predittivo
  • Restituisce oggetti .NET
  • Usa i nomi dei comandi Verb-Noun per facilitare l'individuazione

Confronto tra Bicep e Terraform

Bicep

Bicep è un linguaggio specifico di dominio (DSL) che usa la sintassi dichiarativa per distribuire le risorse di Azure. In un file Bicep si definisce l'infrastruttura da distribuire in Azure. Si usa quindi questo file nell'intero ciclo di vita dello sviluppo per distribuire l'infrastruttura. Le risorse vengono distribuite in modo coerente.

Bicep offre sintassi concisa, indipendenza dai tipi affidabile e supporto per il riutilizzo del codice. Bicep offre un'esperienza di creazione ottimale per le soluzioni IaC in Azure.

Terraform

Hashicorp Terraform è uno strumento IaC open source per il provisioning e la gestione dell'infrastruttura cloud. Codifica l'infrastruttura nei file di configurazione che descrivono lo stato desiderato per la topologia. Terraform consente di gestire qualsiasi infrastruttura, ad esempio cloud pubblici, cloud privati e servizi SaaS (Software as a Service), usando i provider Terraform.

Quale strumento da riga di comando di Azure è ideale per l'utente?

Quando si sceglie uno strumento, tenere in considerazione l'esperienza precedente e l'ambiente di lavoro corrente. Ecco un riepilogo delle opzioni:

  • La sintassi dell'interfaccia della riga di comando di Azure è simile allo scripting di Bash.
  • Azure PowerShell è un modulo di PowerShell. I comandi seguono uno schema di denominazione Verb-Noun e i dati vengono restituiti come oggetti.
  • Bicep è un DSL che usa la sintassi dichiarativa per distribuire le risorse di Azure.
  • Terraform è uno strumento IaC open source per il provisioning e la gestione dell'infrastruttura cloud.

Scegliere lo strumento che usa l'esperienza e accorcia la curva di apprendimento. Mantenere la mente aperta migliorerà le abilità dell'utente. Usare uno strumento diverso quando è opportuno.