Funzionalità di AWS CodeDeploy

Perché dovrei scegliere CodeDeploy?

AWS CodeDeploy è un servizio che permette di automatizzare l'implementazione di applicazioni in un'ampia gamma di servizi di elaborazione, tra cui Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate, AWS Lambda e le istanze eseguite on-premises. CodeDeploy automatizza completamente l'implementazione delle applicazioni eliminando la necessità di operazioni manuali. CodeDeploy protegge le applicazioni dai tempi di inattività durante le operazioni di distribuzione grazie agli aggiornamenti continui e al rilevamento dell'integrità dell'implementazione. CodeDeploy fornisce un controllo centralizzato delle implementazioni tramite la Console di gestione AWS, l'Interfaccia della linea di comando AWS (AWS CLI), gli SDK o le API, consentendoti di avviare, controllare e monitorare le implementazioni. È possibile visualizzare i singoli eventi di configurazione relativi all'avanzamento delle distribuzioni. CodeDeploy tiene traccia e conserva lo storico recente delle distribuzioni, per permettere indagini sulla timeline e lo storico delle modifiche delle distribuzioni passate.

CodeDeploy è indipendente dalla piattaforma e dal linguaggio e può essere usata con qualsiasi applicazione, permettendo di riutilizzare il codice di configurazione esistente. Inoltre la distribuzione di applicazioni può essere facilmente integrata nei processi di distribuzione di software o nella toolchain di distribuzione continua esistenti utilizzando le API CodeDeploy.

Distribuzioni automatizzate

L'implementazione di un'applicazione può essere facilmente ripetuta su diversi gruppi di istanze con CodeDeploy. CodeDeploy utilizza un modello di installazione basato su file e comandi che consente di implementare qualunque applicazione e di riutilizzare il codice di configurazione esistente. Lo stesso codice di configurazione può essere impiegato per ottenere distribuzioni e testare aggiornamenti in modo coerente in tutte le diverse fasi di distribuzione, testing e produzione per istanze Amazon EC2. L'eliminazione di interventi manuali dalle fasi del processo di implementazione ne aumenta la rapidità e l'affidabilità.

CodeDeploy permette di integrare l'implementazione di software e attività di dimensionamento per mantenere l'applicazione sempre aggiornata in ambienti di produzione dinamici. Per le istanze Amazon EC2, CodeDeploy si integra con Auto Scaling. Auto Scaling permette di scalare automaticamente la capacità di Amazon EC2 secondo condizioni personalizzate, ad esempio i picchi di traffico. CodeDeploy riceve una notifica ogni volta che viene avviata una nuova istanza in un gruppo Auto Scaling ed esegue automaticamente l'implementazione dell'applicazione sulla nuova istanza prima che venga aggiunta a un bilanciatore del carico Elastic Load Balancing (ELB).

CodeDeploy può essere utilizzato per automatizzare le implementazioni di software su diversi ambienti di sviluppo, test e produzione in esecuzione su qualunque istanza, incluse le istanze nei data center, purché siano in grado di connettersi agli endpoint pubblici di AWS. In questo modo, è possibile utilizzare un solo servizio per implementare applicazioni in modo uniforme su architetture ibride.

Tempi di inattività ridotti al minimo

Con CodeDeploy, l'aggiornamento di un'applicazione a una nuova revisione non comporta tempi di inattività. AWS CodeDeploy può eseguire implementazioni blu/verdi su istanze Amazon EC2, un servizio Amazon Elastic Container Service (Amazon ECS) (con entrambi i tipi di avvio, Amazon EC2 e Fargate) o una funzione Lambda. Con una distribuzione blue/green la nuova versione dell'applicazione viene lanciata insieme alla vecchia versione. Quando la revisione è stata testata ed è pronta, CodeDeploy può spostare il traffico dalla versione precedente alla nuova versione, in base alle tue specifiche.

Il servizio è in grado di applicare un aggiornamento su un gruppo di istanze Amazon EC2 interrompendone solo una piccola parte alla volta. CodeDeploy avanza progressivamente nelle istanze permettendo alle applicazioni di rimanere disponibili e continuare a essere utilizzate per il traffico. Per quanto riguarda le funzioni Lambda, il traffico in entrata sarà gradualmente instradato dalla versione precedente a quella nuova.

Il rilevamento dell'integrità dell'implementazione opera in sinergia con gli aggiornamenti continui e consente di mantenere elevata la disponibilità delle applicazioni durante le attività di implementazione. Possono verificarsi tempi di inattività nel caso in cui vengano distribuiti aggiornamenti con errori. CodeDeploy monitora l'implementazione e la interromperà se si verifica un numero eccessivo di errori.

Un'implementazione in corso può essere interrotta in qualunque momento tramite la console, AWS CLI o un SDK AWS. Se si desidera riprendere in un secondo momento l'implementazione interrotta, è sufficiente implementare nuovamente la revisione. Inoltre, è possibile eseguire un rollback immediato implementando nuovamente la revisione precedente.

Controllo centralizzato

È possibile avviare, controllare e monitorare le implementazioni di software direttamente dalla console o tramite AWS CLI, gli SDK o le API di AWS. In caso di errori, è possibile contrassegnare lo script che li provoca. È anche possibile impostare notifiche push che permettono di monitorare lo stato delle implementazioni tramite SMS o e-mail utilizzando Amazon Simple Notification Service (Amazon SNS).

Un'applicazione può essere distribuita su più gruppi di distribuzione. I gruppi di distribuzione sono utilizzati per far corrispondere una determinata configurazione a un ambiente preciso, ad esempio ambienti temporanei o di produzione. Una revisione può essere testata in un ambiente temporaneo e poi distribuita in produzione quando è ritenuta sicura e adatta.

CodeDeploy tiene traccia e conserva la cronologia recente delle implementazioni. Permette di visualizzare quali versioni dell'applicazione sono attualmente distribuite in ciascuno dei gruppi di distribuzione di destinazione. È possibile esaminare lo storico delle modifiche e i tassi di successo delle distribuzioni precedenti in gruppi di distribuzione specifici. È anche possibile consultare una cronologia delle ultime distribuzioni per individuare quelle andate a buon fine e gli eventuali errori.

Adozione semplificata

CodeDeploy utilizza un modello di installazione basato su file e comandi che consente di implementare qualunque applicazione e di riutilizzare il codice di configurazione esistente. CodeDeploy utilizza un solo file di configurazione AppSpec per eseguire operazioni, test o verifiche per ciascun evento nel ciclo di vita o fase dell'implementazione. I comandi possono essere in qualunque codice, come uno script della shell, un programma personalizzato o anche uno strumento di gestione di configurazione.

Grazie alle API CodeDeploy, integrare l'implementazione di applicazioni con una toolchain di distribuzione software esistente è semplice. AWS CodePipeline e alcuni partner AWS forniscono integrazioni CodeDeploy predefinite per servizi di integrazione e distribuzione continue (CI/CD), semplificando l'implementazione automatica dell'applicazione aggiornata.

Ricevi notifiche

È possibile creare notifiche per eventi che incidono sulle distribuzioni. Le notifiche avranno il formato delle notifiche di Amazon SNS. Ogni notifica include un messaggio sullo stato e un link alle risorse il cui evento ha generato la notifica in questione.