Esercitazione: Distribuire un'applicazione contenitore con CI/CD in un cluster di Service Fabric

Questa esercitazione è la seconda di una serie e illustra come configurare l'integrazione continua e la distribuzione continua per un'applicazione contenitore di Azure Service Fabric usando Visual Studio e Azure DevOps. È necessaria un'applicazione di Service Fabric esistente. Viene usata come esempio l'applicazione creata in Distribuire un'applicazione .NET in un contenitore Windows in Azure Service Fabric.

Nella seconda parte della serie si apprenderà come:

  • Aggiungere il controllo del codice sorgente al progetto
  • Creare una definizione di compilazione in Visual Studio Team Explorer
  • Creare una definizione di versione in Visual Studio Team Explorer
  • Distribuire automaticamente e aggiornare un'applicazione

Prerequisiti

Prima di iniziare questa esercitazione:

Preparare un profilo di pubblicazione

Dopo aver distribuito un'applicazione contenitore, si è pronti per configurare l'integrazione continua. Prima di tutto, preparare un profilo di pubblicazione all'interno dell'applicazione destinato all'uso da parte del processo di distribuzione eseguito in Azure DevOps. Il profilo di pubblicazione deve essere configurato impostando il cluster preparato in precedenza come destinazione. Avviare Visual Studio e aprire un progetto di applicazione di Service Fabric esistente. In Esplora soluzioni fare clic con il pulsante destro del mouse sull'applicazione e scegliere Pubblica.

Scegliere un profilo di destinazione all'interno del progetto di applicazione da usare per il flusso di lavoro di integrazione continua, ad esempio Cloud. Specificare l'endpoint di connessione del cluster. Selezionare la casella di controllo Aggiorna l'applicazione in modo che l'applicazione venga aggiornata per ogni distribuzione in Azure DevOps. Fare clic sul collegamento ipertestuale Salva per salvare le impostazioni per il profilo di pubblicazione e quindi fare clic su Annulla per chiudere la finestra di dialogo.

Push profile

Condividere la soluzione di Visual Studio in un nuovo repository GIT di Azure DevOps

Condividere i file di origine dell'applicazione in un progetto team in Azure DevOps, per poter generare le compilazioni.

Creare un nuovo repository Git locale per il progetto selezionando Aggiungi al controllo del codice sorgente ->Git sulla barra di stato nell'angolo in basso a destra di Visual Studio.

Nella visualizzazione Push in Team Explorer selezionare il pulsante Pubblica repository GIT nella sezione Esegui push in Azure DevOps.

Screenshot of the Team Explorer - Synchronization window in Visual Studio. Under Push to Azure DevOps, the Publish to Git Repo button is highlighted.

Controllare la posta elettronica e selezionare l'organizzazione nell'elenco a discesa Account. Può essere necessario configurare un'organizzazione, se non è già presente. Immettere il nome del repository e selezionare Pubblica repository.

Screenshot of the Push to Azure DevOps window. The settings for Email, Account, Repository name, and the Publish Repository button are highlighted.

Con la pubblicazione del repository viene creato un nuovo progetto team nell'account con lo stesso nome del repository locale. Per creare il repository in un progetto team esistente, fare clic su Avanzate accanto al nome del repository e selezionare un progetto team. È possibile visualizzare il codice sul Web selezionando Visualizza nel Web.

Configurare il recapito continuo con Azure Pipelines

Una definizione di compilazione di Azure DevOps descrive un flusso di lavoro costituito da un set di istruzioni di compilazione che vengono eseguite in sequenza. Creare una definizione di compilazione che produca un pacchetto di applicazione di Service Fabric, e altri artefatti, per la distribuzione in un cluster di Service Fabric. Altre informazioni sulle definizioni di compilazione di Azure DevOps.

Una definizione di versione di Azure DevOps descrive un flusso di lavoro che distribuisce un pacchetto di applicazione in un cluster. Se usate insieme, la definizione di compilazione e la definizione di versione eseguono l'intero flusso di lavoro a partire dai file di origine fino alla creazione di un'applicazione funzionante nel cluster. Altre informazioni sulle definizioni di versione di Azure DevOps.

Creare una definizione di compilazione

Per aprire il nuovo progetto team, passare a https://dev.azure.com in un Web browser e selezionare l'organizzazione, seguita dal nuovo progetto.

Selezionare l'opzione Pipeline nel riquadro a sinistra, quindi fare clic su Nuova pipeline.

Nota

Se non viene visualizzato il modello di definizione di compilazione, assicurarsi che la funzionalità Nuova esperienza di creazione pipeline YAML sia disattivata. Questa funzionalità viene configurata all'interno della sezione Funzionalità di anteprima dell'account DevOps.

New Pipeline

Selezionare Azure Repos Git come origine, il nome del proprio progetto team, il repository del progetto e il ramo predefinito master o le compilazioni manuale e pianificata. Fare clic su Continua.

In Seleziona un modello selezionare il modello Applicazione Azure Service Fabric con supporto Docker e quindi fare clic su Applica.

Choose build template

In Attività selezionare Hosted VS2017 come pool di agenti.

Select tasks

Fare clic su Tag images (Contrassegna immagini).

In Tipo di registro contenitori selezionare Registro Azure Container. Selezionare una sottoscrizione di Azure, quindi fare clic su Autorizza. Selezionare un Registro Azure Container.

Select Docker Tag images

Fare clic su Push images (Esegui push di immagini).

In Tipo di registro contenitori selezionare Registro Azure Container. Selezionare una sottoscrizione di Azure, quindi fare clic su Autorizza. Selezionare un Registro Azure Container.

Select Docker Push images

Nella scheda Trigger abilitare l'integrazione continua selezionando Abilita l'integrazione continua. In Filtri per rami fare clic su + Aggiungi e Specifica rami verrà automaticamente impostato su master.

Nella finestra di dialogo Salva pipeline di compilazione e accoda fare clic su Salva e accoda per avviare manualmente una compilazione.

Select triggers

Le compilazioni vengono attivate anche al momento del push o dell'archiviazione. Per controllare lo stato di avanzamento della compilazione, passare alla scheda Compilazioni . Dopo aver verificato che la compilazione venga eseguita correttamente, definire una definizione di versione che distribuisce l'applicazione in un cluster.

Creare una definizione di versione

Selezionare l'opzione Pipeline nel riquadro a sinistra, quindi Versioni, quindi + Nuova pipeline. In Seleziona un modello selezionare il modello Distribuzione di Azure Service Fabric dall'elenco e quindi fare clic su Applica.

Choose release template

Selezionare Attività, Ambiente 1 e quindi + Nuovo per aggiungere una nuova connessione cluster.

Add cluster connection

Nella visualizzazione Add new Service Fabric Connessione ion (Aggiungi nuovo service fabric) selezionare Certificate Based (Certificato basato su certificato) o Microsoft Entra ID authentication (Autenticazione CON ID Microsoft Entra). Specificare "mysftestcluster" come nome della connessione e "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" come endpoint del cluster oppure specificare l'endpoint del cluster in cui si esegue la distribuzione.

Per l'autenticazione basata su certificato, aggiungere l'Identificazione personale certificato del server del certificato del server usato per creare il cluster. In Certificato client aggiungere la codifica Base 64 del file del certificato client. Per informazioni su come ottenere la rappresentazione con codifica Base 64 del certificato, vedere la finestra di dialogo popup della Guida per il campo. Aggiungere anche la Password per il certificato. È possibile usare il certificato del cluster o del server se non è disponibile un certificato client separato.

Per le credenziali di Microsoft Entra, aggiungere l'identificazione personale del certificato server del certificato server usato per creare il cluster e le credenziali da usare per connettersi al cluster nei campi Nome utente e Password.

Fare clic su Aggiungi per salvare la connessione cluster.

In Fase agente fare clic su Distribuisci applicazione di Service Fabric. Fare clic su Impostazioni di Docker e quindi su Configura le impostazioni di Docker. In Origine credenziali registro selezionare Azure Resource Manager Service Connection (Connessione al servizio Azure Resource Manager). Selezionare quindi la sottoscrizione di Azure.

Release pipeline agent

Aggiungere quindi un elemento alla pipeline in modo da consentire alla definizione della versione di trovare l'output dalla compilazione. Selezionare Pipeline e Artefatti->+Aggiungi. In Origine (definizione di compilazione) selezionare la definizione di compilazione creata in precedenza. Fare clic su Aggiungi per salvare l'elemento di compilazione.

Add artifact

Abilitare il trigger di distribuzione continua in modo che la versione venga creata automaticamente al termine della compilazione. Fare clic sull'icona a forma di fulmine nell'elemento, abilitare il trigger e fare clic su Salva per salvare la definizione di versione.

Enable trigger

Selezionare + Versione -> Crea una versione -> Crea per creare manualmente una versione. È possibile monitorare lo stato della versione nella scheda Versioni.

Verificare che la distribuzione venga completata correttamente e che l'applicazione sia in esecuzione nel cluster. Aprire un Web browser e passare a http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Si noti la versione dell'applicazione, in questo esempio è "1.0.0.20170616.3".

Eseguire commit e push delle modifiche, attivare la compilazione di una versione

Per verificare che la pipeline di integrazione continua funzioni correttamente, è possibile archiviare alcune modifiche al codice in Azure DevOps.

Durante la scrittura del codice, le modifiche vengono rilevate automaticamente da Visual Studio. Eseguire il commit delle modifiche nel repository Git locale selezionando l'icona delle modifiche in sospeso (Pending changes icon shows a pencil and a number.) dalla barra di stato in basso a destra.

Nella visualizzazione Modifiche in Team Explorer aggiungere un messaggio che descrive l'aggiornamento ed eseguire il commit delle modifiche.

Commit all

Selezionare l'icona della barra di stato delle modifiche non pubblicate (Unpublished changes) o la visualizzazione Sincronizza in Team Explorer. Selezionare Esegui push per aggiornare il codice in Azure DevOps.

Push changes

Il push delle modifiche in Azure DevOps attiva automaticamente una compilazione. Quando la definizione di compilazione viene completata correttamente, viene creata automaticamente una versione con avvio dell'aggiornamento dell'applicazione nel cluster.

Per controllare lo stato di avanzamento della compilazione, passare alla scheda Compilazioni in Team Explorer in Visual Studio. Dopo aver verificato che la compilazione viene eseguita correttamente, definire una definizione di versione per la distribuzione dell'applicazione in un cluster.

Verificare che la distribuzione venga completata correttamente e che l'applicazione sia in esecuzione nel cluster. Aprire un Web browser e passare a http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Prendere nota della versione dell'applicazione, che in questo esempio è "1.0.0.20170815.3".

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the app version

Aggiornare l'applicazione

Apportare modifiche al codice nell'applicazione. Salvare le modifiche ed eseguirne il commit, come descritto nei passaggi precedenti.

Dopo l'avvio dell'aggiornamento dell'applicazione, è possibile controllare lo stato di aggiornamento in Service Fabric Explorer:

Screenshot of the Voting app in Service Fabric Explorer. An

L'aggiornamento dell'applicazione potrebbe richiedere alcuni minuti. Una volta completato l'aggiornamento, l'applicazione eseguirà la versione successiva, in questo esempio la versione "1.0.0.20170815.4".

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the updated app version

Passaggi successivi

Questa esercitazione ha descritto come:

  • Aggiungere il controllo del codice sorgente al progetto
  • Creare una definizione di compilazione
  • Creare una definizione di versione
  • Distribuire automaticamente e aggiornare un'applicazione

La parte successiva dell'esercitazione comprende informazioni su come configurare il monitoraggio del contenitore.