CodeDeploy salute dell'istanza - 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à.

CodeDeploy salute dell'istanza

CodeDeploy monitora lo stato di integrità delle istanze in un gruppo di distribuzione. Le distribuzioni non riescono se il numero di istanze integre è inferiore al numero minimo di istanze integre specificato per il gruppo di distribuzione durante la distribuzione. Ad esempio, se durante l'implementazione deve rimanere integro l'85% delle istanze e il gruppo di distribuzione contiene 10 istanze, è sufficiente che la distribuzione a una sola istanza non riesca per compromettere l'esito dell'intera distribuzione. Questo perché, già quando un'istanza viene portata offline per consentire l'installazione dell'ultima versione dell'applicazione, il numero di istanze integre disponibili scende a 90%. Un'istanza fallita più un'altra istanza offline significherebbe che solo l'80% delle istanze è integro e disponibile. CodeDeployfallirà l'implementazione complessiva.

È importante ricordare che perché la distribuzione generale riesca, devono verificarsi le seguenti condizioni:

  • CodeDeploy è in grado di eseguire la distribuzione su ogni istanza della distribuzione.

  • La distribuzione ad almeno un'istanza ha esito positivo. Ciò significa che, anche se il valore minimo di istanze correttamente in esecuzione è 0, perché la distribuzione generale riesca, è necessario che la distribuzione di almeno una istanza abbia esito positivo (ovvero deve essere integra almeno un'istanza).

Health status (Stato di integrità)

CodeDeploy assegna due valori di stato di integrità a ciascuna istanza: integrità della revisione e integrità dell'istanza.

Integrità della revisione

L'integrità della revisione si basa sulla revisione dell'applicazione attualmente installata nell'istanza. Include i seguenti valori di stato:

  • Corrente: la revisione installata nell'istanza corrisponde alla revisione per l'ultima distribuzione riuscita del gruppo di distribuzione.

  • Precedente: la revisione installata nell'istanza corrisponde a una versione precedente dell'applicazione.

  • Sconosciuta: la revisione dell'applicazione non è stata installata con successo nell'istanza.

Integrità dell'istanza

L'integrità dell'istanza si basa sulla riuscita o meno delle distribuzioni a un'istanza. Include i seguenti valori:

  • Integra: l'ultima distribuzione all'istanza ha avuto esito positivo.

  • Non integra: il tentativo di distribuire una revisione all'istanza ha avuto esito negativo o non è stata ancora distribuita una revisione all'istanza.

CodeDeploy utilizza lo stato della revisione e lo stato dell'istanza per pianificare la distribuzione nelle istanze del gruppo di distribuzione nell'ordine seguente:

  1. Istanza non integra.

  2. Integrità revisione sconosciuta.

  3. Revisione precedente.

  4. Revisione corrente.

Se la distribuzione complessiva ha esito positivo, la revisione viene aggiornata e i valori dello stato di integrità del gruppo di distribuzione vengono aggiornati per riflettere l'ultima distribuzione.

  • Un'istanza corrente interessata da una distribuzione riuscita mantiene lo stato corrente. In caso contrario, passa allo stato sconosciuta.

  • Un'istanza precedente o sconosciuta interessata da una distribuzione riuscita passa allo stato corrente. In caso contrario, mantiene lo stato precedente o sconosciuta.

  • Un'istanza integra interessata da una distribuzione riuscita mantiene lo stato integra. In caso contrario, passa allo stato non integra.

  • Un'istanza non integra interessata da una distribuzione riuscita passa allo stato integra. In caso contrario, mantiene lo stato non integra.

Se la distribuzione complessiva ha esito negativo o viene interrotta:

  • Per ogni istanza in cui si è CodeDeploy tentato di distribuire la revisione dell'applicazione lo stato dell'istanza è impostato su integro o non integro, a seconda che il tentativo di distribuzione per quell'istanza abbia avuto esito positivo o negativo.

  • Ogni istanza in cui non CodeDeploy ha tentato di distribuire la revisione dell'applicazione mantiene il valore di integrità dell'istanza corrente.

  • La revisione del gruppo di distribuzione resta la stessa.

Informazioni sul numero minimo di istanze integre

Il numero minimo di istanze integre richiesto viene definito come parte di una configurazione della distribuzione.

Importante

Durante una distribuzione blu/verde, la configurazione della distribuzione e il valore minimo di istanze correttamente in esecuzione si applicano alle istanze dell'ambiente di sostituzione, non a quelle dell'ambiente originale. Tuttavia, quando viene annullata la registrazione delle istanze nell'ambiente originale dal sistema di bilanciamento del carico, la distribuzione complessiva viene contrassegnata come non riuscita anche se l'annullamento della registrazione non viene effettuato con successo per una sola istanza originale.

CodeDeploy fornisce tre configurazioni di distribuzione predefinite con valori minimi di host integri di uso comune:

Nome della configurazione di distribuzione predefinita Valori minimi per host integri predefiniti
CodeDeployDefault. OneAtUna volta 1
CodeDeployDefault. HalfAtUna volta 50%
CodeDeployDefault.AllAtOnce 0

Ulteriori informazioni sulle configurazioni di distribuzione predefinite sono disponibili in Utilizzo delle configurazioni di distribuzione in CodeDeploy.

È possibile creare configurazioni di distribuzione personalizzate CodeDeploy per definire i propri valori minimi di integrità dell'host. Puoi definire questi valori come numeri interi o percentuali quando utilizzi le seguenti operazioni:

CodeDeploy consente di specificare un numero minimo di istanze integre per la distribuzione per due scopi principali:

  • Per determinare se la distribuzione complessiva ha esito positivo o negativo. La distribuzione ha esito positivo se la revisione dell'applicazione è stata distribuita con successo ad almeno il numero minimo di istanze integre.

  • Per determinare il numero di istanze che devono essere integre durante una distribuzione affinché quest'ultima possa proseguire.

Puoi specificare il numero minimo di istanze integre per il tuo gruppo di distribuzione come numero di istanze o come percentuale del numero totale di istanze. Se si specifica una percentuale, all'inizio della distribuzione, CodeDeploy converte la percentuale nel numero equivalente di istanze, arrotondando per eccesso le istanze frazionarie.

CodeDeploy tiene traccia dello stato di integrità delle istanze del gruppo di distribuzione durante il processo di distribuzione e utilizza il numero minimo di istanze integre specificato per la distribuzione per determinare se continuare la distribuzione. Il principio di base è che una distribuzione non deve far mai scendere il numero di istanze integre al di sotto del valore minimo specificato. L'unica eccezione a questa regola può verificarsi quando un gruppo di distribuzione include inizialmente un numero minimo di istanze integre inferiore a quello minimo specificato. In quel caso, il processo di distribuzione non riduce ulteriormente il numero di istanze integre.

Nota

CodeDeploy tenterà di eseguire la distribuzione su tutte le istanze di un gruppo di distribuzione, anche su quelle attualmente in uno stato Interrotto. Nel calcolo del numero minimo di istanze integre, un'istanza interrotta ha lo stesso impatto di un'istanza non riuscita. Per risolvere il problema di distribuzioni non riuscite a causa di un numero eccessivo di istanze interrotte, riavvia le istanze o modificane i tag per escluderle dal gruppo di distribuzione.

CodeDeploy avvia il processo di distribuzione tentando di distribuire la revisione dell'applicazione sulle istanze non integre del gruppo di distribuzione. Per ogni distribuzione riuscita, CodeDeploy modifica lo stato di integrità dell'istanza in integro e la aggiunge alle istanze integre del gruppo di distribuzione. CodeDeploy quindi confronta il numero attuale di istanze integre con il numero minimo specificato di istanze integre.

  • Se il numero di istanze integre è inferiore o uguale al numero minimo specificato di istanze integre, CodeDeploy annulla la distribuzione per garantire che il numero di istanze integre non diminuisca con un numero maggiore di distribuzioni.

  • Se il numero di istanze integre è superiore al numero minimo specificato di istanze integre di almeno una, CodeDeploy distribuisce la revisione dell'applicazione nel set originale di istanze integre.

Se una distribuzione su un'istanza integra fallisce, CodeDeploy modifica lo stato di integrità dell'istanza in non integro. Man mano che la distribuzione procede, CodeDeploy aggiorna il numero attuale di istanze integre e lo confronta con il numero minimo specificato di istanze integre. Se il numero di istanze integre scende al numero minimo specificato in qualsiasi momento del processo di distribuzione, interrompe la distribuzione. CodeDeploy Questa misura previene la possibilità che la prossima distribuzione abbia esito negativo facendo scendere il numero di istanze integre al di sotto di quello minimo specificato.

Nota

Assicurati che il numero minimo di istanze integre che specifichi sia inferiore al numero totale di istanze nel gruppo di distribuzione. Se specifichi un valore percentuale, ricorda che verrà arrotondato. In caso contrario, all'avvio della distribuzione, il numero di istanze integre sarà già inferiore o uguale al numero minimo specificato di istanze integre e l'implementazione complessiva CodeDeploy fallirà immediatamente.

CodeDeploy utilizza inoltre il numero minimo specificato di istanze integre e il numero effettivo di istanze integre per determinare se e come distribuire la revisione dell'applicazione su più istanze. Per impostazione predefinita, CodeDeploy distribuisce la revisione dell'applicazione nel maggior numero possibile di istanze senza il rischio che il numero di istanze integre scenda al di sotto del numero minimo specificato di istanze integre.

Per determinare il numero di istanze su cui distribuire contemporaneamente, utilizza il seguente calcolo: CodeDeploy

[total-hosts] - [minimum-healthy-hosts] = [number-of-hosts-to-deploy-to-at-once]

Per esempio:

  • Se il gruppo di distribuzione ha 10 istanze e il numero minimo di istanze integre è impostato su 9, esegue la CodeDeploy distribuzione su 1 istanza alla volta.

  • Se il gruppo di distribuzione ha 10 istanze e il numero minimo di istanze integre è impostato su 3, CodeDeploy esegue la distribuzione su 7 istanze contemporaneamente nel primo batch e quindi sulle 3 rimanenti nel secondo batch.

  • Se il gruppo di distribuzione ha 10 istanze e il numero minimo di istanze integre è impostato su 0, esegue la CodeDeploy distribuzione su 10 istanze contemporaneamente.

Examples (Esempi)

I seguenti esempi presuppongono un gruppo di distribuzione con 10 istanze.

Valore mimino di istanze integre: 95%

CodeDeploy arrotonda il numero minimo di istanze integre a 10 istanze, pari al numero di istanze integre. La distribuzione complessiva ha immediatamente esito negativo senza che la revisione venga distribuita ad alcuna istanza.

Valore mimino di istanze integre: 9

CodeDeploy distribuisce la revisione su un'istanza alla volta. Se la distribuzione su una delle istanze fallisce, fallisce CodeDeploy immediatamente l'implementazione complessiva perché il numero di istanze integre è uguale al numero minimo di istanze integre. Come eccezione a questa regola, se l'ultima istanza non riesce, la distribuzione ha comunque esito positivo.

CodeDeploy continua la distribuzione, un'istanza alla volta, fino a quando una distribuzione non fallisce o la distribuzione complessiva non viene completata. Se tutte e 10 le distribuzioni hanno esito positivo, il gruppo di distribuzione includerà 10 istanze integre.

Valore mimino di istanze integre: 8

CodeDeploy distribuisce la revisione su due istanze alla volta. Se due di queste distribuzioni falliscono, fallisce CodeDeploy immediatamente l'intera distribuzione. Come eccezione a questa regola, se l'ultima istanza è la seconda a non riuscire, la distribuzione complessiva avrà comunque esito positivo.

Valore mimino di istanze integre: 0

CodeDeploy distribuisce la revisione all'intero gruppo di distribuzione contemporaneamente. Almeno una distribuzione a un'istanza deve riuscire per far sì che la distribuzione complessiva abbia esito positivo. Se 0 istanze sono integre, la distribuzione ha esito negativo. Ciò è dovuto al requisito che, per contrassegnare una distribuzione complessiva come riuscita, almeno un'istanza deve essere integra al termine della distribuzione complessiva, anche se il valore minimo delle istanze integre è 0.

Circa il numero minimo di istanze integre per zona di disponibilità

Nota

Questa sezione utilizza i termini istanza e host in modo intercambiabile per fare riferimento alle istanze Amazon EC2.

Se esegui la distribuzione su istanze in diverse zone di disponibilità, puoi facoltativamente abilitare la zonal configuration funzionalità, che consente la distribuzione in una zona di disponibilità CodeDeploy alla volta.

Quando questa funzionalità è abilitata, CodeDeploy farà in modo che il numero di host integri rimanga al di sopra dei valori «numero minimo di host integri per zona» e «numero minimo di host integri». Se il numero di host integri scende al di sotto di entrambi i valori, la distribuzione CodeDeploy non riesce in tutte le zone di disponibilità.

Per calcolare il numero di host su cui eseguire la distribuzione contemporaneamente, CodeDeploy utilizza sia il valore «numero minimo di host integri per zona» che il valore di «host integri minimi». CodeDeploy utilizzerà il minor numero di calcoli [A] e, dove e dove sono: [B] [A] [B]

[A] = [total-hosts] - [min-healthy-hosts] = [number-of-hosts-to-deploy-to-at-once]
[B] = [total-hosts-per-AZ] - [min-healthy-hosts-per-AZ] = [number-of-hosts-to-deploy-to-at-once-per-AZ]

Dopo aver determinato il numero di host su cui effettuare la distribuzione contemporaneamente, esegue la CodeDeploy distribuzione sugli host in batch composti da quel numero, una zona di disponibilità alla volta, con una pausa (o «tempo di cottura») opzionale tra le zone.

Esempio

Se la tua distribuzione è configurata in questo modo:

  • [total-hosts] è 200

  • [minimum-healthy-hosts] è 160

  • [total-hosts-per-AZ] è 100

  • [minimum-healthy-hosts-per-AZ] è 50

Allora...

  • [A] = 200 - 160 = 40

  • [B] = 100 - 50 = 50

  • 40è inferiore a 50

Pertanto, CodeDeploy verrà distribuito agli 40 host contemporaneamente.

In questo scenario, la distribuzione si svolge come segue:

  1. CodeDeploy si distribuisce nella prima zona di disponibilità:

    1. CodeDeploy viene distribuito sui primi 40 host.

    2. CodeDeploy viene distribuito sugli host successivi40.

    3. CodeDeploy viene distribuito sugli host 20 rimanenti.

      La distribuzione nella prima zona di disponibilità è ora completa.

  2. (Facoltativo) CodeDeploy attende che la distribuzione nella prima zona «riprenda», come definito dall'impostazione Durata del monitoraggio o Aggiungi una durata del monitoraggio per la prima zona. Se non ci sono problemi, CodeDeploy continua.

  3. CodeDeploy si distribuisce nella seconda zona di disponibilità:

    1. CodeDeploy viene distribuito sui primi 40 host.

    2. CodeDeploy viene distribuito sugli host successivi40.

    3. CodeDeploy viene distribuito sugli host 20 rimanenti.

      La distribuzione nella seconda e ultima zona di disponibilità è ora completa.

Per ulteriori informazioni sulla funzionalità di configurazione zonale e su come specificare il numero minimo di istanze integre per zona di disponibilità, vedere. zonal configuration