Architettura di Azure Pipelines per IaaS
Importante
CI/CD per le applicazioni IaaS è una variante di Progettazione di una pipeline CI/CD con Azure DevOps. Questo articolo è incentrato sulle specifiche della distribuzione di applicazioni Web in Azure Macchine virtuali.
Azure Macchine virtuali è un'opzione per l'hosting di applicazioni personalizzate quando si vuole una gestione flessibile e granulare del calcolo. Le macchine virtuali devono essere soggette allo stesso livello di rigore tecnico delle offerte PaaS (Platform-as-a-Service) per tutto il ciclo di vita dello sviluppo. Ad esempio, l'implementazione di pipeline di compilazione e versione automatizzate per eseguire il push delle modifiche alle macchine virtuali.
Questo articolo descrive un flusso di lavoro DevOps di alto livello per la distribuzione delle modifiche delle applicazioni alle macchine virtuali usando l'integrazione continua (CI) e le procedure di distribuzione continua (CD) con Azure Pipelines.
Architettura
Scaricare un file di Visio di questa architettura.
Flusso di dati
Questa sezione presuppone che l'architettura di base di Azure Pipelines sia stata letta e si concentra solo sulle specifiche della distribuzione di un carico di lavoro in Azure Macchine virtuali.
Pipeline di richieste pull - Uguale alla linea di base
Pipeline CI : uguale alla baseline, ad eccezione degli artefatti di compilazione creati per la distribuzione di un'app Web in IaaS è un pacchetto di distribuzione Web
Trigger - della pipeline CDUguale alla linea di base
Versione cd per la gestione temporanea : uguale alla baseline con 2 eccezioni: 1) l'artefatto di compilazione scaricato è il pacchetto distribuzione Web e 2) il pacchetto viene distribuito in una macchina virtuale di Azure di staging.
Rilascio cd nell'ambiente di produzione : uguale alla baseline con 2 eccezioni:
a. Il rilascio nell'ambiente di produzione viene eseguito aggiornando Gestione traffico di Azure per lo scambio di staging e produzione. Questa strategia può essere eseguita con un profilo di Gestione traffico con due endpoint, in cui la produzione è abilitata e la gestione temporanea è disabilitata. Per scambiare staging e produzione, disabilitare la produzione e abilitare la gestione temporanea.
b. È possibile eseguire un rollback aggiornando Gestione traffico di Azure per lo scambio di produzione e gestione temporanea.Monitoraggio - uguale alla linea di base
Componenti
Questa sezione presuppone che sia stata letta la sezione Componenti dell'architettura di base di Azure Pipelines e si concentra solo sulle specifiche della distribuzione di un carico di lavoro in Azure Macchine virtuali.
Le macchine virtuali di Azure offrono un'infrastruttura virtualizzata sicura, a scalabilità elevata e su richiesta con Windows o Linux Server. Macchine virtuali vengono usati in questa architettura per ospitare i carichi di lavoro.
set di scalabilità di macchine virtuali consente di creare e gestire un gruppo di macchine virtuali con carico bilanciato identiche. Il numero di istanze di macchine virtuali può aumentare o diminuire automaticamente in risposta alla domanda o a una pianificazione definita. I set di scalabilità possono essere usati anche per ospitare i carichi di lavoro.
Gestione traffico di Azure è un servizio di bilanciamento del carico del traffico basato su DNS che è possibile usare per distribuire il traffico agli endpoint configurati. In questa architettura Gestione traffico è il singolo punto di ingresso per i client ed è configurato con più endpoint, che rappresentano la macchina virtuale di produzione e la macchina virtuale di staging. L'endpoint macchina virtuale di produzione è abilitato e la gestione temporanea è disabilitata.
Alternativi
Questo articolo è incentrato sull'uso di Gestione traffico di Azure come servizio di bilanciamento del carico. Azure offre varie opzioni di bilanciamento del carico che è possibile prendere in considerazione.
Considerazioni
Questa sezione presuppone che sia stata letta la sezione considerazioni nell'architettura di base di Azure Pipelines e si concentra solo sulle considerazioni specifiche per la distribuzione di un carico di lavoro in Azure Macchine virtuali.
Eccellenza operativa
Poiché Gestione traffico è basato su DNS, la memorizzazione nella cache client degli indirizzi IP introduce latenza. Anche se è possibile abilitare un endpoint e disabilitare un altro in Gestione traffico, i client continueranno a usare l'indirizzo IP memorizzato nella cache fino alla scadenza del TTL (Dns Time-to-Live). Prendere in considerazione le opzioni di bilanciamento del carico che agiscono al livello 4 o al livello 7.
Prendere in considerazione l'implementazione di ambienti oltre la gestione temporanea e la produzione per abilitare operazioni come rollback, test di accettazione manuale e test delle prestazioni. L'azione di usare lo staging come ambiente di rollback impedisce di poter usare tale ambiente per altri scopi.