Distribuzioni su una piattaforma di elaborazione EC2/on-premise - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Distribuzioni su una piattaforma di elaborazione EC2/on-premise

Questo argomento fornisce informazioni sui componenti e sul flusso di lavoro delle distribuzioni che utilizzano la piattaforma di calcolo CodeDeploy EC2/on-premise. Per informazioni sulle distribuzioni blu/verdi, consulta Panoramica di una distribuzione blu/verde.

Componenti di distribuzione su una piattaforma di elaborazione EC2/on-premise

Il diagramma seguente mostra i componenti di una CodeDeploy distribuzione su una piattaforma di elaborazione EC2/on-premise.

I componenti di una distribuzione su una piattaforma di calcolo CodeDeploy EC2/on-premise.

Flusso di lavoro di implementazione su una piattaforma di elaborazione EC2/locale

Il seguente diagramma mostra le fasi principali nella distribuzione di revisioni dell'applicazione:

Le fasi principali dell'implementazione delle revisioni delle applicazioni.

Queste fasi includono:

  1. Crea un'applicazione e assegnale un nome che identifichi in modo univoco le revisioni dell'applicazione che desideri distribuire e la piattaforma di elaborazione per la tua applicazione. CodeDeploy utilizza questo nome durante una distribuzione per assicurarsi che faccia riferimento ai componenti di distribuzione corretti, come il gruppo di distribuzione, la configurazione di distribuzione e la revisione dell'applicazione. Per ulteriori informazioni, consulta Crea un'applicazione con CodeDeploy.

  2. L'impostazione di un gruppo di distribuzione specificando un tipo di distribuzione e le istanze in cui si desidera distribuire le revisioni dell'applicazione. Un'implementazione in loco aggiorna le istanze alla revisione dell'applicazione più recente. Una distribuzione blu/verde registra un set di sostituzione di istanze per il gruppo di distribuzione con un sistema di bilanciamento del carico e annulla la registrazione delle istanze originali.

    Puoi specificare i tag applicati alle istanze, i nomi dei gruppi di Amazon EC2 Auto Scaling o entrambi.

    Se specifichi un gruppo di tag in un gruppo di distribuzione, CodeDeploy esegui la distribuzione su istanze a cui è applicato almeno uno dei tag specificati. Se specifichi due o più gruppi di tag, esegue la CodeDeploy distribuzione solo nelle istanze che soddisfano i criteri per ciascuno dei gruppi di tag. Per ulteriori informazioni, consulta Tagging Instances for Deployments.

    In tutti i casi, le istanze devono essere configurate per essere utilizzate in una distribuzione (ovvero devono essere etichettate o appartenere a un gruppo Amazon EC2 Auto Scaling) e avere CodeDeploy l'agente installato e funzionante.

    Ti forniamo un AWS CloudFormation modello che puoi utilizzare per configurare rapidamente un'istanza Amazon EC2 basata su Amazon Linux o Windows Server. Ti forniamo anche l' CodeDeploy agente autonomo in modo che tu possa installarlo su istanze di Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) o Windows Server. Per ulteriori informazioni, consulta Crea un gruppo di distribuzione con CodeDeploy.

    È anche possibile specificare le seguenti opzioni:

    • Notifiche Amazon SNS. Crea trigger che inviano notifiche agli abbonati di un argomento di Amazon SNS quando si verificano eventi specifici, come eventi di successo o di fallimento, nelle distribuzioni e nelle istanze. Per ulteriori informazioni, consulta Monitoring Deployments with Amazon SNS Event Notifications.

    • Gestione della distribuzione basata su allarmi. Implementa il monitoraggio degli CloudWatch allarmi di Amazon per interrompere le implementazioni quando i parametri superano o scendono al di sotto delle soglie impostate. CloudWatch

    • Rollback automatici di distribuzione Configura una distribuzione per eseguire automaticamente il rollback alla revisione precedentemente nota come correttamente funzionante quando una distribuzione non riesce o viene raggiunta una soglia di allarme.

  3. La specifica di una configurazione di distribuzione per indicare a quante istanze le revisioni delle applicazioni devono essere distribuite simultaneamente e descrivere le condizioni di successo e di errore per la distribuzione. Per ulteriori informazioni, consulta View Deployment Configuration Details.

  4. Carica una revisione dell'applicazione su Amazon GitHub S3 o. Oltre ai file che desideri distribuire e agli script che desideri eseguire durante la distribuzione, devi includere un file (file) con le specifiche dell'applicazione. AppSpec Questo file contiene le istruzioni di distribuzione, ad esempio il percorso in cui copiare i file su ogni istanza e quando eseguire lo script di distribuzione. Per ulteriori informazioni, consulta Utilizzo delle revisioni delle applicazioni per CodeDeploy.

  5. La distribuzione della revisione dell'applicazione al gruppo di distribuzione. L' CodeDeploy agente su ogni istanza del gruppo di distribuzione copia la revisione dell'applicazione da Amazon S3 GitHub o sull'istanza. L' CodeDeploy agente quindi separa la revisione e, utilizzando il AppSpec file, copia i file nelle posizioni specificate ed esegue tutti gli script di distribuzione. Per ulteriori informazioni, consulta Crea una distribuzione con CodeDeploy.

  6. Il controllo dei risultati della distribuzione. Per ulteriori informazioni, consulta Monitoraggio delle implementazioni in CodeDeploy.

  7. La ridistribuzione di una revisione. È possibile eseguire questa operazione se hai bisogno di correggere un bug nel contenuto sorgente o eseguire gli script di distribuzione in un ordine diverso o inviare una distribuzione non riuscita. A tale scopo, raggruppa il contenuto sorgente modificato, gli eventuali script di distribuzione e il AppSpec file in una nuova revisione, quindi carica la revisione nel bucket o nell'archivio Amazon S3. GitHub Esegui quindi una nuova distribuzione per lo stesso gruppo di distribuzione con la nuova revisione. Per ulteriori informazioni, consulta Crea una distribuzione con CodeDeploy.

Configurazione delle istanze

È necessario configurare le istanze prima di poter distribuire le revisioni dell'applicazione per la prima volta. Se una revisione di un'applicazione richiede tre server di produzione e due server di backup, puoi lanciare o utilizzare cinque istanze.

Per effettuare manualmente il provisioning delle istanze:

  1. Installa l' CodeDeploy agente sulle istanze. L' CodeDeploy agente può essere installato su istanze di Amazon Linux, Ubuntu Server, RHEL e Windows Server.

  2. Abilita i tag, se utilizzi i tag per identificare le istanze in un gruppo di distribuzione. CodeDeploy si basa sui tag per identificare e raggruppare le istanze in gruppi di distribuzione. CodeDeploy Sebbene nel tutorial Nozioni di base siano utilizzati entrambi, è sufficiente utilizzare una chiave o un valore per definire un tag per un gruppo di distribuzione.

  3. Avvia istanze Amazon EC2 con un profilo di istanza IAM collegato. Il profilo dell'istanza IAM deve essere collegato a un'istanza Amazon EC2 non appena viene avviata per consentire all' CodeDeploy agente di verificare l'identità dell'istanza.

  4. Creazione di un ruolo del servizio Fornisci l'accesso al servizio in modo da CodeDeploy poter espandere i tag nel tuo AWS account.

Per una distribuzione iniziale, il AWS CloudFormation modello fa tutto questo per te. Crea e configura nuove istanze singole di Amazon EC2 basate su Amazon Linux o Windows Server con CodeDeploy l'agente già installato. Per ulteriori informazioni, consulta Utilizzo delle istanze per CodeDeploy.

Nota

Per una distribuzione blu/verde, puoi scegliere tra utilizzare le istanze che già possiedi per l'ambiente sostitutivo o consentire il CodeDeploy provisioning di nuove istanze come parte del processo di distribuzione.

Caricamento della revisione dell'applicazione

Inserite un AppSpec file nella cartella principale nella struttura delle cartelle del contenuto di origine dell'applicazione. Per ulteriori informazioni, consulta Application Specification Files.

Aggrega la struttura della cartella del contenuto sorgente dell'applicazione in un formato di file di archivio come zip, tar o tar compresso. Carica il file di archivio (la revisione) in un GitHub bucket o repository Amazon S3.

Nota

I formati di file di archivio tar e tar compressi (.tar e .tar.gz) non sono supportati per le istanze di Windows Server.

Creazione dei gruppi di applicazioni e di distribuzione

Un gruppo CodeDeploy di distribuzione identifica una raccolta di istanze in base ai relativi tag, ai nomi dei gruppi Amazon EC2 Auto Scaling o a entrambi. Nella stessa istanza possono essere implementate più revisioni dell'applicazione. Una revisione di un'applicazione può essere implementata in più istanze.

Ad esempio, è possibile aggiungere un tag di "Prod" per i tre server di produzione e "Backup" per i due server di backup. Questi due tag possono essere utilizzati per creare due diversi gruppi di distribuzione nell' CodeDeploy applicazione, consentendoti di scegliere quale set di server (o entrambi) deve partecipare a una distribuzione.

È possibile utilizzare diversi gruppi di tag in un gruppo di distribuzione per limitare le distribuzioni a un set di istanze più piccolo. Per informazioni, consulta Tagging Instances for Deployments.

Implementazione della revisione dell'applicazione

Ora sei pronto per distribuire la revisione dell'applicazione da Amazon S3 GitHub o al gruppo di distribuzione. Puoi usare la CodeDeploy console o il comando create-deployment. Ci sono parametri che è possibile specificare per controllare la distribuzione, tra cui la revisione, il gruppo di distribuzione e la configurazione della distribuzione.

Aggiornamento dell'applicazione

È possibile aggiornare l'applicazione e quindi utilizzare la CodeDeploy console o chiamare il comando create-deployment per inviare una revisione.

Distribuzioni interrotte e non riuscite

È possibile utilizzare la CodeDeploy console o il comando stop-deployment per interrompere una distribuzione. Quando si tenta di arrestare la distribuzione, accade una di queste tre cose:

  • La distribuzione si arresta e l'operazione restituisce uno stato di successo. In questo caso, non vengono più eseguiti eventi del ciclo di vita della distribuzione sul gruppo di distribuzione per la distribuzione interrotta. Alcuni file potrebbero essere già stati copiati e alcuni script potrebbero essere già stati eseguiti su una o più istanze nel gruppo di distribuzione.

  • La distribuzione non si arresta immediatamente e l'operazione restituisce uno stato in attesa. In questo caso, alcuni eventi del ciclo di vita di distribuzione potrebbe essere ancora in esecuzione sul gruppo di distribuzione. Alcuni file potrebbero essere già stati copiati e alcuni script potrebbero essere già stati eseguiti su una o più istanze nel gruppo di distribuzione. Una volta completata l'operazione in attesa, le chiamate successive per fermare la distribuzione restituiscono uno stato di successo.

  • La distribuzione non è in grado di arrestarsi e l'operazione restituisce un errore. Per ulteriori informazioni, consulta la sezione ErrorInformationErrori comuni nell' AWS CodeDeploy API Reference.

Come per le distribuzioni arrestate, le distribuzioni non riuscite possono determinare l'esecuzione di alcuni eventi del ciclo di vita della distribuzione su una o più istanze nel gruppo di distribuzione. Per scoprire perché una distribuzione non è riuscita, puoi utilizzare la CodeDeploy console, richiamare il get-deployment-instancecomando o analizzare i dati del file di registro relativi alla distribuzione non riuscita. Per ulteriori informazioni, consulta Revisione dell'applicazione e pulizia dei file di registro e Visualizzazione dei dati di registro per le distribuzioni CodeDeploy EC2/on-premise.

Ridistribuzioni e rollback di distribuzione

CodeDeploy implementa i rollback ridistribuendo, come nuova distribuzione, una revisione precedentemente distribuita.

Puoi configurare un gruppo di distribuzione in modo che esegua automaticamente il rollback della distribuzione quando si soddisfano determinate condizioni, incluso quando una distribuzione non ha successo o viene raggiunta una soglia di monitoraggio degli allarmi. È inoltre possibile sostituire le impostazioni di rollback specificati per un gruppo di distribuzione in una singola distribuzione.

È inoltre possibile scegliere di eseguire il rollback di una distribuzione non riuscita ridistribuendo manualmente una revisione distribuita in precedenza.

In tutti i casi, la distribuzione nuova o su cui è stato eseguito un rollback viene assegnato il relativo ID della distribuzione. L'elenco delle distribuzioni che è possibile visualizzare nella CodeDeploy console mostra quali sono il risultato di una distribuzione automatica.

Per ulteriori informazioni, consulta Ridistribuisci e ripristina una distribuzione con CodeDeploy.