Introduzione
Seguendo le istruzioni descritte in Automatizzare le distribuzioni di contenitori Docker con Azure Pipelines, è stato possibile migliorare una pipeline di versione per compilare e pubblicare un'applicazione ASP.NET Core come contenitore Docker, che è stata quindi distribuita nel servizio app di Azure. Questa migrazione a un progetto basato su contenitori ha comportato numerosi vantaggi per il team del prodotto. Inoltre, l'adozione di tecnologie per i contenitori ha il potenziale per sbloccare varie opportunità innovative per il futuro.
Man mano che le organizzazioni di sviluppo si espandono, aumenta anche la complessità delle soluzioni offerte. Man mano che vari prodotti e servizi diventano più interdipendenti, emergono requisiti di sviluppo e operatività diversi per vari componenti all'interno di un'applicazione specifica. Un modo per migliorare l'efficienza dell'architettura consiste nel refactoring di tali componenti come microservizi separati.
Un microservizio è un piccolo servizio autonomo progettato per essere indipendente e per soddisfare una funzionalità aziendale specifica. I contenitori offrono un'ottima base tecnica per la compilazione e la distribuzione di questi servizi, ma si pone una nuova domanda: come si gestiscono tutti questi contenitori in uso?
In questo caso, le tecnologie di orchestrazione, ad esempio Kubernetes, possono essere utili. Kubernetes è una piattaforma progettata per la gestione di carichi di lavoro e servizi in contenitori. È un'ottima scelta per le organizzazioni che hanno un numero crescente di contenitori che devono essere distribuiti, integrati e monitorati in vari ambienti.
In questo modulo si seguirà l'analisi di un modo per usare Kubernetes in Azure compiuta dal web team di Tailspin Toys. Verranno fornite informazioni su come aggiornare una pipeline di versione per compilare, pubblicare e distribuire più contenitori Docker in un cluster Kubernetes.
Sebbene questo modulo sia incentrato sulle attività principali necessarie per compilare e distribuire l'app contenitore, è importante tenere a mente che tutte le altre funzionalità di Azure Pipelines sono ancora disponibili per le distribuzioni di contenitori in Kubernetes. Puoi integrare i test, definire più fasi ed eseguire altre attività esattamente come per le applicazioni esistenti. In questo modulo ometteremo queste attività per non creare confusione.
Obiettivi di apprendimento
Al termine di questo modulo si sarà in grado di:
- Illustrare i vantaggi di Kubernetes e quando usarlo.
- Creare risorse di Azure per supportare un cluster Kubernetes.
- Aggiornare una pipeline di versione di base per compilare, pubblicare e distribuire più contenitori Docker nel cluster Kubernetes.
- Monitorare la compilazione e la distribuzione di un progetto.
Prerequisiti
I moduli di questo percorso di apprendimento sono da seguire in successione. Per seguire l'avanzamento di questa serie fin dall'inizio, completare i percorsi di apprendimento Introduzione ad Azure DevOps e Creare applicazioni con Azure DevOps.
Per iniziare questo percorso di apprendimento dall'inizio, seguire questo collegamento: Distribuire applicazioni con Azure DevOps. Questo modulo riprende dal punto in cui si concludono le distribuzioni dei contenitori Automate Docker con Azure Pipelines.
Questo modulo presuppone anche che l'utente abbia una conoscenza di base di Kubernetes, sebbene non sia necessaria per completarlo. Se non si ha esperienza dell'argomento, è consigliabile completare prima il percorso di apprendimento Amministrare i contenitori in Azure.
Nota
Azure Pipelines supporta una vasta gamma di linguaggi e tipi di applicazione. In questo modulo si userà un'applicazione .NET, ma è possibile applicare i modelli appresi qui ai propri progetti che usano i linguaggi e i framework di programmazione preferiti.
Presentazione del team
Nei moduli precedenti è stato presentato il team Web di Tailspin Toys che sta lavorando a Space Game. Il team Web del progetto Space Game è di nuovo disponibile per collaborare con il lettore in questo modulo:
Andy è il responsabile dello sviluppo.
Amita lavora al controllo di qualità.
Tim è il responsabile operativo.
Mara si è appena unita al team come sviluppatrice. Il suo superiore è Andy.
Mara ha già avuto modo di usare DevOps. Sta aiutando il team ad adottare un processo più automatizzato che usa Azure DevOps.