Progettare la pipeline di distribuzione

Completato

In questa unità si progetta una pipeline CI/CD per supportare le esigenze del progetto. Si vuole che il sito Web Di Contoso Video venga pubblicato in servizio Azure Kubernetes (AKS) dopo ogni push riuscito nel ramo principale contrassegnato per il rilascio nell'ambiente di produzione. La progettazione dell'assegnazione di tag semplifica la verifica della versione di ogni distribuzione che passa all'ambiente di produzione.

Si vuole anche distribuire il sito Web in un ambiente di staging per i test dopo ogni push nel ramo principale, indipendentemente dal fatto che il push sia contrassegnato per il rilascio nell'ambiente di produzione. È possibile usare i tag per instradare diverse immagini del contenitore quando vengono push in Registro Azure Container.

Progettare la pipeline

Per progettare la pipeline, prendere in considerazione le attività e i trigger.

Trigger

La pipeline deve attivare due eventi diversi:

  • Push con tag nel ramo principale.
  • Push senza tag nel ramo principale.

I due eventi vengono suddivisi in due trigger separati, perché le azioni per un push con tag sono diverse dalle azioni per un push senza tag. Un push con tag viene distribuito nell'ambiente di produzione, mentre un push senza tag viene distribuito nell'ambiente di gestione temporanea. Il diagramma seguente illustra i due trigger per la pipeline:

Diagram that shows two types of pipeline triggers.

Dopo aver definito i trigger, pianificare il flusso della pipeline stesso.

Passaggio 1: Clonare il repository

I primi passaggi sono i passaggi di compilazione, in cui si prepara una configurazione e si compila l'immagine prima di eseguirne il push nel cluster del servizio Azure Kubernetes. Nei passaggi di compilazione si configurano tutte le informazioni necessarie per il passaggio di distribuzione. In questo caso, il primo passaggio di compilazione dopo aver ricevuto il segnale del trigger è lo stesso per entrambi i trigger, per clonare il repository.

Diagram that shows the procession from triggers to the first build step in a pipeline.

Passaggio 2: Compilare l'immagine

Il passaggio logico successivo consiste nel compilare un'immagine. Per l'esecuzione nell'ambiente del servizio Azure Kubernetes, il sito Web deve essere un'immagine Docker. È necessario compilare la nuova immagine usando il Dockerfile presente nella radice del repository. Ecco dove si tiene conto di trigger diversi.

Per la pipeline di commit con tag , compilare l'immagine e quindi contrassegnarla usando lo stesso tag del push. Ad esempio, se il commit è contrassegnato con v1.0.0, si compila l'immagine come contoso/website:v1.0.0. Se si dispone di un commit senza tag nel ramo principale, si compila l'immagine con il latest tag .

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

Passaggio 3: Eseguire il push dell'immagine in un registro contenitori

Dopo aver compilato l'immagine, eseguirne il push nel registro contenitori contoso e configurare il cluster del servizio Azure Kubernetes per accedere al Registro Azure Kubernetes. Il cluster scarica le immagini dal Registro Container ed esegue le immagini.

Questo è il punto in cui la pipeline converge in un unico passaggio. L'istanza del Registro Container non ha divisioni interne, quindi è possibile eseguire il push di entrambe le immagini nella stessa posizione.

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

Passaggio 4: Distribuire l'applicazione

Il passaggio di distribuzione finale distribuisce il sito Web nella posizione corretta. Se un commit con tag ha attivato la pipeline, distribuire il sito Web nello production spazio dei nomi del cluster del servizio Azure Kubernetes. Se la pipeline è stata attivata con un commit senza tag, eseguire il push nello staging spazio dei nomi dello stesso cluster.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Dopo aver progettato la pipeline del flusso di lavoro, passare alle unità seguenti per configurare l'ambiente del progetto e creare GitHub Actions per clonare, compilare, eseguire il push e la distribuzione nel cluster del servizio Azure Kubernetes.