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à.
Che cos'è CodeDeploy?
CodeDeploy è un servizio di distribuzione che automatizza le distribuzioni di applicazioni su istanze Amazon EC2, istanze locali, funzioni Lambda serverless o servizi Amazon ECS.
È possibile distribuire una varietà quasi illimitata di contenuti di applicazioni, tra cui:
-
Codice
-
Funzioni serverless AWS Lambda
-
File Web e di configurazione
-
Eseguibili
-
Pacchetti
-
Script
-
File multimediali
CodeDeploy può distribuire contenuti applicativi eseguiti su un server e archiviati in bucket GitHub , repository o repository Bitbucket di Amazon S3. CodeDeploy può anche implementare una funzione Lambda serverless. Non è necessario apportare modifiche al codice esistente prima di poterlo utilizzare. CodeDeploy
CodeDeploy ti semplifica le seguenti operazioni:
-
Il rilascio rapido di nuove funzionalità.
-
Aggiorna le versioni delle AWS Lambda funzioni.
-
Evitare tempi di inattività durante la distribuzione dell'applicazione.
-
La gestione della complessità dell'aggiornamento delle applicazioni, senza molti dei rischi associati alle distribuzioni manuali soggette a errori.
Il servizio si dimensiona con l'infrastruttura in modo da permetterti di distribuire facilmente a una sola o a migliaia di istanze.
CodeDeploy funziona con vari sistemi per la gestione della configurazione, il controllo del codice sorgente, l'integrazione continua
La CodeDeploy console offre anche un modo per cercare rapidamente le risorse, come repository, progetti di creazione, applicazioni di distribuzione e pipeline. Scegli Go to resource (Vai alla risorsa) o premi il tasto /
e digita il nome della risorsa. Qualsiasi corrispondenza verrà visualizzata nell'elenco. Le ricerche rispettano la distinzione tra maiuscole e minuscole. Puoi visualizzare solo le risorse per le quali disponi dell'autorizzazione di visualizzazione. Per ulteriori informazioni, consulta Gestione delle identità e degli accessi per l' AWS CodeDeploy.
Argomenti
Vantaggi di AWS CodeDeploy
CodeDeploy offre i seguenti vantaggi:
-
Applicazioni server, serverless e containerless. CodeDeployconsente di distribuire sia applicazioni tradizionali su server sia applicazioni che distribuiscono una versione con AWS Lambda funzioni serverless o un'applicazione Amazon ECS.
-
Implementazioni automatizzate. CodeDeploy automatizza completamente le implementazioni delle applicazioni negli ambienti di sviluppo, test e produzione. CodeDeploysi adatta alla tua infrastruttura in modo da poter eseguire l'implementazione su una o migliaia di istanze.
-
Ridurre al minimo i tempi di inattività. Se l'applicazione utilizza la piattaforma di elaborazione EC2/on-premise, CodeDeploy aiuta a massimizzare la disponibilità dell'applicazione. Durante una distribuzione sul posto, CodeDeploy esegue un aggiornamento continuo tra le istanze di Amazon EC2. È possibile specificare il numero di istanze da mettere offline alla volta per gli aggiornamenti. Durante una distribuzione blu/verde, l'ultima revisione dell'applicazione è installata sulle istanze di sostituzione. Il traffico è reindirizzato a queste istanze quando si sceglie, immediatamente o non appena terminato il test, il nuovo ambiente. Per entrambi i tipi di implementazione, CodeDeploy monitora lo stato dell'applicazione in base alle regole configurate.
-
Interrompere ed eseguire il rollback. È possibile arrestare ed eseguire il rollback automaticamente o manualmente sulle distribuzioni in caso di errore.
-
Controllo centralizzato. È possibile avviare e monitorare lo stato delle distribuzioni tramite la CodeDeploy console o il. AWS CLI Riceverai un report che elenca quando è stata distribuita ogni revisione dell'applicazione e su quali istanze Amazon EC2.
-
Facile da adottare. CodeDeploy è indipendente dalla piattaforma e funziona con qualsiasi applicazione. È possibile riutilizzare facilmente il codice di configurazione. CodeDeploy può anche integrarsi con il processo di rilascio del software o la toolchain di distribuzione continua.
-
Distribuzioni simultanee Se disponi di più di un'applicazione che utilizza la piattaforma di calcolo EC2/on-premise, CodeDeploy puoi distribuirle contemporaneamente sullo stesso set di istanze.
Panoramica delle piattaforme di elaborazione CodeDeploy
CodeDeploy è in grado di distribuire applicazioni su tre piattaforme di elaborazione:
EC2/On-premise: descrive le istanze di server fisici che possono essere istanze cloud Amazon EC2, server locali o entrambi. Le applicazioni create utilizzando la piattaforma di calcolo EC2/on-premise possono essere composte da file eseguibili, file di configurazione, immagini e altro ancora.
Le implementazioni che utilizzano la piattaforma di elaborazione EC2/on-premise gestiscono il modo in cui il traffico viene indirizzato alle istanze utilizzando un tipo di distribuzione locale o blu/verde. Per ulteriori informazioni, consulta Panoramica dei tipi di implementazione CodeDeploy .
AWS Lambda: utilizzato per distribuire applicazioni costituite da una versione aggiornata di una funzione Lambda. AWS Lambda gestisce la funzione Lambda in un ambiente di calcolo serverless costituito da una struttura di calcolo ad alta disponibilità. Tutta l'amministrazione delle risorse di calcolo viene eseguita da. AWS Lambda Per ulteriori informazioni, vedere Serverless Computing and Applications
. Per ulteriori informazioni sulle AWS Lambda funzioni Lambda, vedere. AWS Lambda Puoi gestire il modo in cui il traffico viene spostato verso le versioni aggiornate della funzione Lambda durante un'implementazione scegliendo una configurazione canary, lineare o. all-at-once
-
Amazon ECS: utilizzato per distribuire un'applicazione containerizzata Amazon ECS come set di attività. CodeDeploy esegue una distribuzione blu/verde installando una versione aggiornata dell'applicazione come nuovo set di attività sostitutivo. CodeDeploy reindirizza il traffico di produzione dal set di attività dell'applicazione originale al set di attività sostitutivo. Il set di attività originale viene terminato una volta completata la distribuzione. Per ulteriori informazioni su Amazon ECS, consulta Amazon Elastic Container Service
. Puoi gestire il modo in cui il traffico viene spostato verso il set di attività aggiornato durante una distribuzione scegliendo una configurazione canaria, lineare o. all-at-once
Nota
Le distribuzioni blu/green di Amazon ECS sono supportate utilizzando entrambi e. CodeDeploy AWS CloudFormation I dettagli relativi a queste distribuzioni sono descritti nelle sezioni successive.
La tabella seguente descrive come i CodeDeploy componenti vengono utilizzati con ciascuna piattaforma di elaborazione. Per ulteriori informazioni, consultare:
CodeDeploy componente | EC2/locale | AWS Lambda | Amazon ECS |
---|---|---|---|
Gruppo di distribuzione | Distribuisce una revisione a un set di istanze. | Implementa una nuova versione di una funzione Lambda serverless su un'infrastruttura di elaborazione ad alta disponibilità. | Speciifica il servizio Amazon ECS con l'applicazione containerizzata da distribuire come set di attività, un listener di produzione e di test opzionale utilizzato per servire il traffico verso l'applicazione distribuita, quando reindirizzare il traffico e terminare il set di attività originale dell'applicazione distribuita e le impostazioni opzionali di attivazione, allarme e rollback. |
Implementazione | Implementa una nuova revisione composta da un'applicazione e un file. AppSpec AppSpec specifica come distribuire l'applicazione sulle istanze di un gruppo di distribuzione. | Sposta il traffico di produzione da una versione di una funzione Lambda a una nuova versione della stessa funzione. Il AppSpec file specifica quale versione della funzione Lambda distribuire. | Implementa una versione aggiornata di un'applicazione containerizzata Amazon ECS come nuovo set di attività sostitutivo. CodeDeploy reindirizza il traffico di produzione dal set di attività con la versione originale al nuovo set di attività sostitutivo con la versione aggiornata. Quando la distribuzione giunge a completamento, il set di attività originale viene terminato. |
Configurazione dell'implementazione | Impostazioni che determinano la velocità di distribuzione e il numero minimo di istanze che devono essere integre in qualsiasi momento durante una distribuzione. | Impostazioni che determinano in che modo il traffico viene spostato verso le versioni aggiornate della funzione Lambda. | Impostazioni che determinano in che modo il traffico viene spostato verso il set di attività Amazon ECS aggiornato. |
Revision | Una combinazione di AppSpec file e file di applicazione, come file eseguibili, file di configurazione e così via. | Un AppSpec file che specifica la funzione Lambda da distribuire e le funzioni Lambda che possono eseguire test di convalida durante gli hook degli eventi del ciclo di vita della distribuzione. |
Un AppSpec file che specifica:
|
Applicazione | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione EC2/on-premise utilizza la piattaforma di calcolo EC2/on-premise. | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione utilizzata per una AWS Lambda distribuzione utilizza la piattaforma di calcolo AWS Lambda serverless. | Raccolta di gruppi di distribuzione e revisioni. Un'applicazione utilizzata per una distribuzione Amazon ECS utilizza la piattaforma di calcolo Amazon ECS. |
Panoramica dei tipi di implementazione CodeDeploy
CodeDeploy offre due opzioni di tipo di distribuzione:
Distribuzione sul posto: l'applicazione su ogni istanza del gruppo di distribuzione viene interrotta, viene installata la revisione più recente dell'applicazione e la nuova versione dell'applicazione viene avviata e convalidata. È possibile utilizzare un sistema di bilanciamento del carico in modo che ogni istanza venga annullata durante la distribuzione e quindi ripristinata in servizio al termine della distribuzione. Solo le distribuzioni che utilizzano la piattaforma di elaborazione EC2/on-premise possono utilizzare distribuzioni sul posto. Per ulteriori informazioni sulle implementazioni sul posto, consulta. Panoramica di una distribuzione sul posto
Nota
AWS Le distribuzioni Lambda e Amazon ECS non possono utilizzare un tipo di distribuzione sul posto.
Implementazione blu/verde: il comportamento della distribuzione dipende dalla piattaforma di elaborazione utilizzata:
-
Blu/verde su una piattaforma di calcolo EC2/locale: le istanze in un gruppo di distribuzione (l'ambiente originale) vengono sostituite da un diverso set di istanze (l'ambiente sostitutivo) utilizzando questi passaggi:
-
Le istanze vengono fornite per l'ambiente sostitutivo.
-
La revisione più recente dell'applicazione viene installata sulle istanze sostitutive.
-
Si verifica un tempo di attesa opzionale per attività come il test delle applicazioni e la verifica del sistema.
-
Le istanze nell'ambiente sostitutivo vengono registrate con uno o più sistemi di bilanciamento del carico Elastic Load Balancing, causando il reindirizzamento del traffico verso di essi. Le istanze nell'ambiente originale vengono cancellate e possono essere terminate o mantenute in esecuzione per altri usi.
Nota
Se utilizzi una piattaforma di elaborazione EC2/on-premise, tieni presente che le distribuzioni blu/green funzionano solo con le istanze Amazon EC2.
-
-
Blu/verde su una piattaforma di calcolo AWS Lambda Amazon ECS o Amazon: il traffico viene spostato in incrementi in base a una configurazione canaria, lineare o di distribuzione. all-at-once
-
Implementazioni blu/verdi tramite AWS CloudFormation: il traffico viene spostato dalle risorse attuali alle risorse aggiornate come parte di un aggiornamento dello stack. AWS CloudFormation Attualmente sono supportate solo le distribuzioni blu/verdi di ECS.
Per ulteriori informazioni sulle implementazioni blu/verde, consulta Panoramica di una distribuzione blu/verde.
-
Nota
Utilizzando l' CodeDeploy agente, è possibile eseguire una distribuzione su un'istanza a cui si è effettuato l'accesso senza la necessità di un'applicazione, di un gruppo di distribuzione o persino di un account. AWS Per informazioni, consulta Utilizzare l' CodeDeploy agente per convalidare un pacchetto di distribuzione su un computer locale.
Panoramica di una distribuzione sul posto
Nota
AWS Le distribuzioni Lambda e Amazon ECS non possono utilizzare un tipo di distribuzione sul posto.
Ecco come funziona una distribuzione sul posto:
-
Innanzitutto, si creano contenuti distribuibili sulla macchina di sviluppo locale o in un ambiente simile, quindi si aggiunge un file (file) AppSpec con le specifiche dell'applicazione. Il AppSpec file è unico per. CodeDeploy Definisce le azioni di distribuzione che si CodeDeploy desidera eseguire. Raggruppi il contenuto distribuibile e il AppSpec file in un file di archivio, quindi lo carichi in un bucket Amazon S3 o in un repository. GitHub Questo file di archivio viene chiamato revisione dell'applicazione (o semplicemente revisione).
-
Successivamente, fornisci CodeDeploy informazioni sulla tua distribuzione, ad esempio da quale bucket o GitHub repository Amazon S3 estrarre la revisione e su quale set di istanze Amazon EC2 distribuirne il contenuto. CodeDeploy chiama un insieme di istanze Amazon EC2 un gruppo di distribuzione. Un gruppo di distribuzione contiene istanze Amazon EC2 con tag individuali, istanze Amazon EC2 in gruppi Amazon EC2 Auto Scaling o entrambi.
Ogni volta che carichi con successo una nuova revisione di un'applicazione che desideri distribuire al gruppo di distribuzione, quel bundle viene impostato come revisione di destinazione per il gruppo di distribuzione. In altre parole, la revisione dell'applicazione attualmente destinata alla distribuzione è la revisione target, che è anche la revisione che viene utilizzata per le distribuzioni automatiche.
-
Successivamente, l' CodeDeploy agente di ogni istanza esegue un sondaggio CodeDeploy per determinare cosa e quando estrarre dal GitHub bucket o dal repository Amazon S3 specificato.
-
Infine, l' CodeDeploy agente di ogni istanza estrae la revisione di destinazione dal bucket GitHub o dal repository Amazon S3 e, utilizzando le istruzioni nel file, distribuisce AppSpec i contenuti nell'istanza.
CodeDeploy tiene traccia delle distribuzioni in modo da poter conoscere lo stato della distribuzione, i parametri di configurazione della distribuzione, lo stato dell'istanza e così via.
Panoramica di una distribuzione blu/verde
Una distribuzione blu/verde viene utilizzata per aggiornare le applicazioni riducendo al minimo le interruzioni causate dalle modifiche di una nuova versione dell'applicazione. CodeDeploy effettua il provisioning della nuova versione dell'applicazione insieme a quella precedente prima di reindirizzare il traffico di produzione.
-
AWS Lambda: il traffico viene spostato da una versione di una funzione Lambda a una nuova versione della stessa funzione Lambda.
-
Amazon ECS: il traffico viene spostato da un'attività impostata nel servizio Amazon ECS a un'attività aggiornata e sostitutiva impostata nello stesso servizio Amazon ECS.
-
EC2/On-premise: il traffico viene spostato da un set di istanze nell'ambiente originale a un set di istanze sostitutivo.
Tutte le implementazioni AWS Lambda e Amazon ECS sono di colore blu/verde. Una distribuzione EC2/locale può essere locale o blu/verde. Una distribuzione blu/verde offre una serie di vantaggi rispetto a una distribuzione locale:
-
È possibile installare e testare un'applicazione nel nuovo ambiente di sostituzione e distribuirla alla produzione semplicemente reindirizzando il traffico.
-
Se utilizzi la piattaforma di elaborazione EC2/on-premise, tornare alla versione più recente di un'applicazione è più rapido e affidabile. Questo perché il traffico può essere instradato nuovamente verso le istanze originali a patto che non siano state terminate. Con una distribuzione in loco, è necessario eseguire il rollback delle versioni ridistribuendo la versione precedente dell'applicazione.
-
Se utilizzi la piattaforma di calcolo EC2/on-premise, vengono fornite nuove istanze per una distribuzione blu/verde e riflettono la maggior parte delle configurazioni del server. up-to-date In questo modo, è possibile evitare i tipi di problemi talvolta associati alle istanze con esecuzione prolungata.
-
Se utilizzi la piattaforma di calcolo AWS Lambda, puoi controllare come il traffico viene spostato dalla versione originale della funzione Lambda alla nuova versione della AWS funzione Lambda. AWS
-
Se utilizzi la piattaforma di calcolo Amazon ECS, puoi controllare come il traffico viene spostato dal set di attività originale al nuovo set di attività.
Una distribuzione blu/verde con AWS CloudFormation può utilizzare uno dei seguenti metodi:
-
AWS CloudFormation modelli per le distribuzioni: quando si configurano le distribuzioni con i AWS CloudFormation modelli, le distribuzioni vengono attivate dagli aggiornamenti. AWS CloudFormation Quando modifichi una risorsa e carichi una modifica al modello, un aggiornamento dello stack avvia la nuova distribuzione. AWS CloudFormation Per un elenco delle risorse che puoi utilizzare nei AWS CloudFormation modelli, consulta. AWS CloudFormation modelli di CodeDeploy riferimento
-
Distribuzioni blu/verdi tramite AWS CloudFormation: È possibile utilizzare AWS CloudFormation per gestire le distribuzioni blu/verde tramite aggiornamenti dello stack. È possibile definire le risorse blu e verdi, oltre a specificare le impostazioni di routing e stabilizzazione del traffico, all'interno del modello di stack. Quindi, se aggiorni risorse selezionate durante un aggiornamento dello stack, AWS CloudFormation genera tutte le risorse verdi necessarie, sposta il traffico in base ai parametri di routing del traffico specificati ed elimina le risorse blu. Per ulteriori informazioni, consulta Automatizza le distribuzioni blu/green di Amazon ECS tramite CodeDeploy l'utilizzo nella Guida per l'utente. AWS CloudFormationAWS CloudFormation
Nota
Supportato solo per le distribuzioni blu/green di Amazon ECS.
Il modo in cui configuri una distribuzione blu/verde dipende dalla piattaforma di calcolo utilizzata dalla distribuzione.
Implementazione Blue/Green su una piattaforma di elaborazione AWS Lambda Amazon ECS o Amazon ECS
Se utilizzi la piattaforma di calcolo Amazon ECS AWS Lambda o Amazon ECS, devi indicare in che modo il traffico viene spostato dalla funzione originale AWS Lambda o dal set di attività Amazon ECS alla nuova funzione o set di attività. Per indicare come viene spostato il traffico, devi specificare una delle seguenti configurazioni di distribuzione:
-
canarino
-
lineare
-
all-at-once
Per informazioni su come viene spostato il traffico in una configurazione canaria, lineare o di all-at-once distribuzione, vedere. Configurazione dell'implementazione
Per i dettagli sulla configurazione della distribuzione Lambda, consulta. Configurazioni di distribuzione su una piattaforma di elaborazione AWS Lambda
Per dettagli sulla configurazione di distribuzione di Amazon ECS, consultaConfigurazioni di distribuzione su una piattaforma di calcolo Amazon ECS.
Implementazione Blue/Green su una piattaforma di elaborazione EC2/on-premise
Nota
È necessario utilizzare le istanze Amazon EC2 per distribuzioni blu/green sulla piattaforma di elaborazione EC2/on-premise. Le istanze locali non sono supportate per il tipo di distribuzione blu/verde.
Se utilizzi la piattaforma di elaborazione EC2/on-premise, vale quanto segue:
È necessario disporre di una o più istanze Amazon EC2 con tag di identificazione Amazon EC2 o di un gruppo Amazon EC2 Auto Scaling. Le istanze devono soddisfare anche i seguenti requisiti:
-
Ogni istanza Amazon EC2 deve avere il profilo di istanza IAM corretto collegato.
-
L' CodeDeploy agente deve essere installato e in esecuzione su ogni istanza.
Nota
In genere, devi anche disporre di una revisione dell'applicazione in esecuzione sulle istanze nell'ambiente originale, ma questo non è un requisito per una distribuzione blu/verde.
Quando crei un gruppo di distribuzione che viene utilizzato in distribuzioni blu/verdi, puoi scegliere il modo in cui l'ambiente di sostituzione viene specificato:
Copia un gruppo Amazon EC2 Auto Scaling esistente: durante la distribuzione blu/verde CodeDeploy , crea le istanze per l'ambiente sostitutivo durante la distribuzione. Con questa opzione, CodeDeploy utilizza il gruppo Amazon EC2 Auto Scaling specificato come modello per l'ambiente sostitutivo, incluso lo stesso numero di istanze in esecuzione e molte altre opzioni di configurazione.
Scegli le istanze manualmente: puoi specificare le istanze da conteggiare come sostitutive utilizzando i tag delle istanze Amazon EC2, i nomi dei gruppi di Amazon EC2 Auto Scaling o entrambi. Se scegli questa opzione, non devi specificare le istanze per l'ambiente di sostituzione fino a quando non crei una distribuzione.
Come funziona:
-
Disponi già di istanze o di un gruppo Amazon EC2 Auto Scaling che funge da ambiente originale. La prima volta che si esegue una distribuzione blu/verde, in genere si utilizzano istanze che sono state già usate in una distribuzione locale.
-
In un' CodeDeploy applicazione esistente, crei un gruppo di distribuzione blu/verde in cui, oltre alle opzioni richieste per una distribuzione sul posto, specifichi quanto segue:
-
Il sistema di bilanciamento del carico o i sistemi di bilanciamento del carico che indirizzano il traffico dall'ambiente originale all'ambiente sostitutivo durante il processo di distribuzione blu/verde.
-
Se reinstradare il traffico verso l'ambiente di sostituzione immediatamente o attendere di reinstradarlo manualmente.
-
La velocità in cui il traffico viene instradato verso le istanze di sostituzione.
-
Se le istanze sostituite vengono terminate o lasciate in esecuzione.
-
-
Crei una distribuzione per questo gruppo di distribuzione durante la quale si verifica quanto segue:
-
Se scegli di copiare un gruppo Amazon EC2 Auto Scaling, le istanze vengono fornite per l'ambiente sostitutivo.
-
La revisione dell'applicazione che specifichi per la distribuzione viene installata sulle istanze di sostituzione.
-
Se è stato specificato un tempo di attesa nelle impostazioni del gruppo di distribuzione, la distribuzione viene messa in pausa. Questo è il momento in cui puoi eseguire i test e le verifiche nell'ambiente di sostituzione. Se non reinstradi manualmente il traffico prima della fine del periodo di attesa, la distribuzione viene arrestata.
-
Le istanze nell'ambiente sostitutivo vengono registrate con un sistema di bilanciamento del carico Elastic Load Balancing e il traffico inizia a essere indirizzato verso di esse.
-
Viene annullata la registrazione delle istanze nell'ambiente originale e, in base a ciò che hai specificato nel gruppo di distribuzione, tali istanze vengono terminate o lasciate in esecuzione.
-
Distribuzione Blue/Green tramite AWS CloudFormation
Puoi gestire le implementazioni CodeDeploy blu/verdi modellando le tue risorse con un modello. AWS CloudFormation
Quando si modellano le risorse blu/verdi utilizzando un AWS CloudFormation modello, si crea un aggiornamento dello stack che aggiorna il set di attività. AWS CloudFormation Il traffico di produzione passa dal set di attività originale del servizio a un set di attività sostitutivo tutto in una volta, con distribuzioni lineari e tempi di bake o con distribuzioni canary. L'aggiornamento dello stack avvia una distribuzione in. CodeDeploy È possibile visualizzare lo stato e la cronologia della distribuzione in CodeDeploy, ma in altro modo non è possibile creare o gestire CodeDeploy risorse esterne al AWS CloudFormation modello.
Nota
Per le distribuzioni blu/green AWS CloudFormation, non è necessario creare un' CodeDeploy applicazione o un gruppo di distribuzione.
Questo metodo supporta solo le distribuzioni blu/green di Amazon ECS. Per ulteriori informazioni sulle distribuzioni blu/green tramite, consulta. AWS CloudFormationCrea una distribuzione Amazon ECS blue/green tramite AWS CloudFormation
Ci piacerebbe conoscere la tua opinione
Apprezziamo il tuo feedback. Per contattarci, visita il forum. CodeDeploy
Argomenti