Progettare una soluzione di distribuzione automatica dell'app
Con il passaggio al cloud, molti team hanno adottato metodi di sviluppo Agile. Questi team devono eseguire l'iterazione rapidamente e distribuire ripetutamente le loro soluzioni nel cloud. I team devono assicurarsi che la loro infrastruttura sia in uno stato affidabile. Il codice dell'applicazione deve essere gestito tramite un processo unificato.
Per soddisfare queste sfide di progettazione per Tailwind Traders, si sta esaminando come automatizzare le distribuzioni usando la pratica dell'infrastruttura come codice. Verranno ora esaminate due soluzioni di Azure per la distribuzione e l'automazione delle applicazioni: modelli di Azure Resource Manager e Automazione di Azure.
Informazioni sui modelli di Azure Resource Manager
I modelli di Azure Resource Manager (ARM) sono file che definiscono l'infrastruttura e la configurazione per la distribuzione. Quando si scrive un modello ARM, si adotta un approccio dichiarativo al provisioning delle risorse. I modelli di ARM descrivono ogni risorsa nella distribuzione, ma non descrivono come distribuire le risorse.
L'uso dei modelli di ARM per il provisioning delle risorse offre molti vantaggi. Quando si esaminano i vantaggi, considerare il modo in cui i modelli di ARM possono essere usati nella soluzione di architettura di Tailwind Traders.
I modelli ARM sono idempotenti, ovvero è possibile distribuire ripetutamente lo stesso modello e ottenere lo stesso risultato.
Quando viene inviata una distribuzione di modelli di ARM ad Azure Resource Manager, le risorse nel modello di ARM vengono distribuite in parallelo. Questa funzionalità di orchestrazione consente di completare le distribuzioni più velocemente.
Il parametro
WhatIf
, disponibile in PowerShell e nell'interfaccia della riga di comando di Azure, consente di visualizzare in anteprima le modifiche apportate all'ambiente prima della distribuzione del modello di ARM. Questo parametro contiene informazioni dettagliate su eventuali creazioni, modifiche ed eliminazioni apportate dal modello.I modelli ARM inviati a Resource Manager vengono convalidati prima del processo di distribuzione. Questa convalida segnala eventuali errori nel modello prima del provisioning delle risorse.
È possibile suddividere i modelli di ARM in componenti più piccoli e collegarli tra loro in fase di distribuzione.
È possibile integrare i modelli di ARM in diversi strumenti CI/CD, ad esempio Azure Pipelines e GitHub Actions.
Con gli script di distribuzione, è possibile eseguire script Bash o PowerShell dall'interno dei modelli di ARM. Attraverso l'estendibilità, è possibile usare un singolo modello per distribuire una soluzione completa.
Formati di modello di ARM
Per i modelli di ARM e le distribuzioni di risorse di Azure sono disponibili due formati, JSON e Bicep. JavaScript Object Notation (JSON) è un formato di file a standard aperto che può essere usato da più linguaggi. Bicep è un linguaggio specifico di dominio sviluppato di recente per la creazione di modelli usando una sintassi più semplice. È possibile usare l'interfaccia della riga di comando di Bicep per decompilare qualsiasi modello JSON in un modello Bicep.
Informazioni sui modelli di Azure Bicep
Bicep è un linguaggio dei modelli di ARM usato per distribuire in modo dichiarativo risorse di Azure. Bicep è un linguaggio specifico di dominio progettato per uno scenario o dominio specifico. Bicep viene usato per creare modelli di Resource Manager.
Esistono molti motivi per scegliere Bicep come set di strumenti principale per le distribuzioni basate su infrastruttura come codice.
Bicep è nativo dell'ecosistema di Azure. Quando vengono rilasciate o aggiornate nuove risorse di Azure, Bicep le supporta dal primo giorno.
I modelli JSON e Bicep sono completamente integrati nella piattaforma Azure. Con le distribuzioni basate su Resource Manager, è possibile monitorare l'avanzamento della distribuzione nel portale di Azure.
Bicep è un prodotto completamente supportato dal supporto tecnico Microsoft.
Tutto lo stato è archiviato in Azure. Gli utenti possono collaborare e avere la certezza che gli aggiornamenti vengano gestiti come previsto.
Se si usano già i modelli JSON come linguaggio dichiarativo dei modelli, non è difficile eseguire la transizione a Bicep. È possibile usare l'interfaccia della riga di comando di Bicep per decompilare qualsiasi modello in un modello Bicep.
Informazioni utili su Automazione di Azure
Automazione di Azure offre un servizio di automazione e configurazione basato sul cloud che supporta la gestione coerente di ambienti Azure e non Azure. Automazione di Azure offre un controllo completo in tre aree del servizio: automazione dei processi, gestione della configurazione e gestione degli aggiornamenti. Verranno ora esaminati i dettagli di questo servizio e si vedrà come può essere implementato nell'architettura dell'applicazione Tailwind Traders.
Servizio | Descrizione |
---|---|
Automazione dei processi | L'automazione dei processi consente di automatizzare attività di gestione del cloud frequenti, che richiedono molto tempo e sono soggette a errori. Questo servizio consente di concentrarsi sulle attività che apportano valore aggiunto. Riducendo gli errori e migliorando l'efficienza, è anche possibile ridurre i costi operativi. Il servizio consente di creare runbook graficamente, in PowerShell, o utilizzando Python. |
Gestione della configurazione | La gestione della configurazione consente l'accesso a due funzionalità: Rilevamento modifiche e inventario e State Configuration di Automazione di Azure. Il servizio supporta il rilevamento delle modifiche tra servizi, daemon, software, registro di sistema e file nell'ambiente in uso. Il rilevamento delle modifiche consente di diagnosticare le modifiche indesiderate e generare avvisi. |
Gestione aggiornamenti | Il servizio di gestione degli aggiornamenti include la funzionalità Gestione aggiornamenti per i sistemi Windows e Linux in ambienti ibridi. La funzionalità consente di creare distribuzioni pianificate che orchestrano l'installazione degli aggiornamenti all'interno di una finestra di manutenzione definita. |