CodeDeploy Zustand der Instanz - AWS CodeDeploy

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CodeDeploy Zustand der Instanz

CodeDeploy überwacht den Integritätsstatus der Instances in einer Bereitstellungsgruppe. Bereitstellungen schlagen fehl, wenn die Anzahl fehlerfreier Instances unter die Mindestanzahl fehlerfreier Instances fällt, die für die Bereitstellungsgruppe während einer Bereitstellung angegeben wurden. Wenn beispielsweise 85 % der Instances während einer Bereitstellung fehlerfrei bleiben müssen und die Bereitstellungsgruppe 10 Instances enthält, schlägt die gesamte Bereitstellung fehl, wenn die Bereitstellung auf einer einzigen Instance fehlschlägt. Das liegt daran, dass wenn eine Instance offline geschaltet wird, sodass die neuste Anwendungsrevision installiert werden kann, die Anzahl verfügbarer fehlerfreier Instances bereits auf 90 % fällt. Eine ausgefallene Instance plus eine weitere Offline-Instance würden bedeuten, dass nur 80% der Instances fehlerfrei und verfügbar sind. CodeDeploywürde die gesamte Bereitstellung fehlschlagen.

Denken Sie unbedingt daran, dass für den Erfolg einer allgemeinen Bereitstellung Folgendes gelten muss:

  • CodeDeploy kann für jede Instanz in der Bereitstellung bereitgestellt werden.

  • Es muss die Bereitstellung auf mindestens einer Instance erfolgreich sein. Das bedeutet, dass selbst wenn der minimale Wert für fehlerfreie Hosts 0 ist, die Bereitstellung auf mindestens einer Instanz erfolgreich sein muss (d. h. mindestens eine Instanz muss fehlerfrei sein), damit die gesamte Bereitstellung erfolgreich ist.

Gesundheitsstatus

CodeDeploy weist jeder Instanz zwei Integritätsstatuswerte zu: Versionsstatus und Instanzstatus.

Revisionszustand

Der Revisionszustand basiert auf der Anwendungsrevision, die derzeit auf der Instance installiert ist. Sie hat die folgenden Statuswerte:

  • Aktuell: Die auf der Instance installierte Revision stimmt mit der Revision für die letzte erfolgreiche Bereitstellung der Bereitstellungsgruppe überein.

  • Alt: Die auf der Instance installierte Revision stimmt mit einer älteren Version der Anwendung überein.

  • Unbekannt: Die Anwendungsrevision wurde nicht erfolgreich auf der Instance installiert.

Instance-Zustand

Der Instance-Zustand basiert darauf, ob Bereitstellungen auf einer Instance erfolgreich waren. Er hat die folgenden Werte:

  • Fehlerfrei: Die letzte Bereitstellung auf der Instance war erfolgreich.

  • Fehlerhaft: Der Versuch, eine Revision auf der Instance bereitzustellen, ist fehlgeschlagen, oder eine Revision wurde noch nicht auf der Instance bereitgestellt.

CodeDeploy verwendet Revisionsstatus und Instanzstatus, um die Bereitstellung für die Instanzen der Bereitstellungsgruppe in der folgenden Reihenfolge zu planen:

  1. Fehlerhafter Instance-Zustand.

  2. Unbekannter Revisionszustand.

  3. Alter Revisionszustand.

  4. Aktueller Revisionszustand.

Wenn die gesamte Bereitstellung erfolgreich ist, wird die Revision aktualisiert und die Werte für den Zustand der Bereitstellungsgruppe werden entsprechend der neusten Bereitstellung aktualisiert.

  • Alle aktuellen Instances mit erfolgreicher Bereitstellung behalten den Status „Aktuell“. Andernfalls wechselt ihr Status zu „Unbekannt“.

  • Alle alten oder unbekannten Instances mit erfolgreicher Bereitstellung erhalten den Status „Aktuell“. Andernfalls behalten Sie den Status „Alt“ bzw. „Unbekannt“.

  • Alle fehlerfreien Instances mit erfolgreicher Bereitstellung behalten den Status „Fehlerfrei“. Andernfalls wechselt ihr Status zu „Fehlerhaft“.

  • Alle fehlerhaften Instances mit erfolgreicher Bereitstellung erhalten den Status „Fehlerfrei“. Andernfalls behalten Sie den Status „Fehlerhaft“.

Wenn die gesamte Bereitstellung fehlschlägt oder angehalten wird:

  • Für jede Instanz, für die CodeDeploy versucht wurde, die Anwendungsrevision bereitzustellen, ist der Instanzstatus auf fehlerfrei oder fehlerhaft gesetzt, je nachdem, ob der Bereitstellungsversuch für diese Instanz erfolgreich war oder fehlgeschlagen ist.

  • Für jede Instanz, für die CodeDeploy nicht versucht wurde, die Anwendungsrevision bereitzustellen, wird der aktuelle Instanzintegritätswert beibehalten.

  • Die Revision der Bereitstellungsgruppe bleibt gleich.

Ungefähr die Mindestanzahl fehlerfreier Instanzen

Die erforderliche Mindestanzahl fehlerfreier Instances wird im Rahmen der Bereitstellungskonfiguration definiert.

Wichtig

Während einer Blau/Grün-Bereitstellung gelten die Bereitstellungskonfiguration und der Mindestwert für fehlerfreie Hosts für Instances in der Ersatzumgebung, nicht für die in der Originalumgebung. Wenn jedoch die Registrierung von Instances in der Originalumgebung beim Load Balancer aufgehoben wird, wird die gesamte Bereitstellung als fehlgeschlagen gekennzeichnet, wenn die Registrierung nur einer einzigen Original-Instance nicht erfolgreich aufgehoben werden kann.

CodeDeploy bietet drei standardmäßige Bereitstellungskonfigurationen, für die üblicherweise Mindestwerte für fehlerfreie Hosts verwendet wurden:

Name der Standardbereitstellungskonfiguration Vordefinierter Mindestwert für fehlerfreie Hosts
CodeDeployDefault. OneAtEine Zeit 1
CodeDeployDefault. HalfAtEine Zeit 50 %
CodeDeployDefault.AllAtOnce 0

Weitere Informationen zu Standardbereitstellungskonfigurationen finden Sie unter Arbeiten mit Bereitstellungskonfigurationen in CodeDeploy.

Sie können benutzerdefinierte Bereitstellungskonfigurationen erstellen CodeDeploy , um Ihre eigenen Mindestwerte für einen fehlerfreien Host zu definieren. Sie können diese Werte als Ganzzahlen oder Prozentwerte definieren, wenn Sie die folgenden Operationen verwenden:

CodeDeploy ermöglicht es Ihnen, eine Mindestanzahl fehlerfreier Instanzen für die Bereitstellung für zwei Hauptzwecke anzugeben:

  • Um bestimmen zu können, ob die gesamte Bereitstellung erfolgreich ist oder fehlschlägt. Die Bereitstellung ist erfolgreich, wenn die Anwendungsrevision erfolgreich auf mindestens der Mindestanzahl fehlerfreier Instances bereitgestellt wurde.

  • Um die Anzahl an Instances bestimmen zu können, die während einer Bereitstellung fehlerfrei sein müssen, damit die Bereitstellung fortgesetzt wird.

Sie können die Mindestanzahl fehlerfreier Instances für Ihre Bereitstellungsgruppe als eine Anzahl von Instances oder als einen Prozentsatz der Gesamtzahl von Instances angeben. Wenn Sie einen Prozentsatz angeben, CodeDeploy rechnet der Prozentsatz zu Beginn der Bereitstellung in die entsprechende Anzahl von Instanzen um und rundet alle Bruchteile der Instanzen auf.

CodeDeploy verfolgt den Integritätsstatus der Instanzen der Bereitstellungsgruppe während des Bereitstellungsprozesses und bestimmt anhand der für die Bereitstellung angegebenen Mindestanzahl fehlerfreier Instanzen, ob die Bereitstellung fortgesetzt werden soll. Das Grundprinzip besagt, dass eine Bereitstellung nicht dazu führen darf, dass die Anzahl fehlerfreier Instances unter die angegebene Mindestanzahl fällt. Die einzige Ausnahme zu dieser Regel gilt, wenn eine Bereitstellungsgruppe zu Anfang weniger als die angegebene Mindestanzahl fehlerfreier Instances aufweist. In diesem Fall wird die Anzahl fehlerfreier Instances durch den Bereitstellungsvorgang nicht weiter reduziert.

Anmerkung

CodeDeploy versucht, die Bereitstellung für alle Instances in einer Bereitstellungsgruppe durchzuführen, auch für diejenigen, die sich derzeit im Status Gestoppt befinden. Bei der Berechnung der Mindestanzahl fehlerfreier Hosts hat eine angehaltene Instance dieselbe Wirkung wie eine fehlerhafte Instance. Um Bereitstellungsfehler aufgrund von zu vielen angehaltenen Instances zu beheben, starten Sie entweder Instances neu oder ändern Sie ihre Tags, um sie aus der Bereitstellungsgruppe auszuschließen.

CodeDeploy startet den Bereitstellungsprozess, indem versucht wird, die Anwendungsrevision für die fehlerhaften Instanzen der Bereitstellungsgruppe bereitzustellen. CodeDeploy Ändert bei jeder erfolgreichen Bereitstellung den Integritätsstatus der Instanz auf Fehlerfrei und fügt sie den fehlerfreien Instanzen der Bereitstellungsgruppe hinzu. CodeDeploy vergleicht dann die aktuelle Anzahl fehlerfreier Instances mit der angegebenen Mindestanzahl fehlerfreier Instances.

  • Wenn die Anzahl der fehlerfreien Instanzen kleiner oder gleich der angegebenen Mindestanzahl fehlerfreier Instanzen ist, wird die Bereitstellung CodeDeploy abgebrochen, um sicherzustellen, dass die Anzahl der fehlerfreien Instanzen nicht mit mehr Bereitstellungen abnimmt.

  • Wenn die Anzahl der fehlerfreien Instanzen die angegebene Mindestanzahl fehlerfreier Instanzen um mindestens eins übersteigt, wird die CodeDeploy Anwendungsrevision für die ursprüngliche Gruppe fehlerfreier Instanzen bereitgestellt.

Wenn eine Bereitstellung auf einer fehlerfreien Instance fehlschlägt, wird der Integritätsstatus dieser Instance in „Fehlerhaft“ CodeDeploy geändert. Im Verlauf der Bereitstellung wird die aktuelle Anzahl fehlerfreier Instanzen CodeDeploy aktualisiert und mit der angegebenen Mindestanzahl fehlerfreier Instanzen verglichen. Wenn die Anzahl der fehlerfreien Instanzen zu einem beliebigen Zeitpunkt des Bereitstellungsprozesses auf die angegebene Mindestanzahl fällt, wird die Bereitstellung CodeDeploy beendet. Dadurch wird verhindert, dass die nächste Bereitstellung fehlschlägt, weil die Anzahl fehlerfreier Instances unter die angegebene Mindestanzahl fällt.

Anmerkung

Achten Sie darauf, dass die angegebene Mindestanzahl fehlerfreier Instances kleiner ist als die Gesamtzahl der Instances in der Bereitstellungsgruppe. Wenn Sie einen Prozentsatz angeben, bedenken Sie, dass dieser aufgerundet wird. Andernfalls ist die Anzahl der fehlerfreien Instanzen zu Beginn der Bereitstellung bereits kleiner oder gleich der angegebenen Mindestanzahl fehlerfreier Instanzen, sodass die gesamte Bereitstellung CodeDeploy sofort fehlschlägt.

CodeDeploy verwendet außerdem die angegebene Mindestanzahl fehlerfreier Instanzen und die tatsächliche Anzahl fehlerfreier Instanzen, um zu bestimmen, ob und wie die Anwendungsversion für mehrere Instanzen bereitgestellt werden soll. Standardmäßig wird die Anwendungsrevision auf so vielen Instanzen wie möglich CodeDeploy bereitgestellt, ohne dass das Risiko besteht, dass die Anzahl der fehlerfreien Instanzen unter die angegebene Mindestanzahl fehlerfreier Instanzen fällt.

Um die Anzahl der Instanzen zu ermitteln, auf denen gleichzeitig bereitgestellt werden soll, CodeDeploy wird die folgende Berechnung verwendet:

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

Beispielsweise:

  • Wenn Ihre Bereitstellungsgruppe aus 10 Instances besteht und Sie die Mindestanzahl fehlerfreier Instanzen auf 9 festlegen CodeDeploy , wird jeweils nur eine Instanz bereitgestellt.

  • Wenn Ihre Bereitstellungsgruppe aus 10 Instances besteht und Sie die Mindestanzahl fehlerfreier Instances auf 3 festlegen, erfolgt die CodeDeploy Bereitstellung im ersten Batch auf 7 Instances gleichzeitig und im zweiten Batch auf die restlichen 3 Instances.

  • Wenn Ihre Bereitstellungsgruppe aus 10 Instances besteht und Sie die Mindestanzahl fehlerfreier Instances auf 0 setzen, CodeDeploy erfolgt die Bereitstellung auf 10 Instances gleichzeitig.

Beispiele

In den folgenden Beispielen wird von einer Bereitstellungsgruppe mit 10 Instances ausgegangen.

Mindestanzahl fehlerfreier Instances: 95 %

CodeDeploy rundet die Mindestanzahl fehlerfreier Instanzen auf 10 Instanzen auf, was der Anzahl fehlerfreier Instanzen entspricht. Die gesamte Bereitstellung schlägt umgehend fehl, ohne dass die Revision auf einer einzigen Instance bereitgestellt wurde.

Mindestanzahl fehlerfreier Instances: 9

CodeDeploy stellt die Revision jeweils für eine Instanz bereit. Wenn die Bereitstellung auf einer der Instanzen fehlschlägt, schlägt die gesamte Bereitstellung CodeDeploy sofort fehl, da die Anzahl der fehlerfreien Instanzen der Mindestanzahl intakter Instanzen entspricht. Die Ausnahme zu dieser Regel besagt, dass wenn die letzte Instance fehlschlägt, die Bereitstellung trotzdem erfolgreich ist.

CodeDeploy setzt die Bereitstellung fort, eine Instanz nach der anderen, bis eine Bereitstellung fehlschlägt oder die gesamte Bereitstellung abgeschlossen ist. Wenn alle 10 Bereitstellungen erfolgreich sind, hat die Bereitstellungsgruppe jetzt 10 fehlerfreie Instances.

Mindestanzahl fehlerfreier Instances: 8

CodeDeploy stellt die Revision auf zwei Instanzen gleichzeitig bereit. Wenn zwei dieser Bereitstellungen fehlschlagen, schlägt die gesamte Bereitstellung CodeDeploy sofort fehl. Die Ausnahme zu dieser Regel besagt, dass wenn die letzte Instance die zweite ist, die fehlschlägt, die Bereitstellung trotzdem erfolgreich ist.

Mindestanzahl fehlerfreier Instances: 0

CodeDeploy stellt die Revision gleichzeitig für die gesamte Bereitstellungsgruppe bereit. Mindestens eine Bereitstellung einer Instance muss erfolgreich sein, damit die allgemeine Bereitstellung erfolgreich ist. Wenn 0 Instances fehlerfrei sind, schlägt die Bereitstellung fehl. Dies liegt an der Anforderung, dass mindestens eine Instanz nach Abschluss der gesamten Bereitstellung fehlerfrei sein muss, um eine Gesamtbereitstellung als erfolgreich zu kennzeichnen, auch wenn der Mindestwert für fehlerfreie Instanzen 0 ist.

Ungefähr die Mindestanzahl fehlerfreier Instanzen pro Availability Zone

Anmerkung

In diesem Abschnitt werden die Begriffe Instance und Host synonym verwendet, um sich auf Amazon EC2 EC2-Instances zu beziehen.

Wenn Sie für Instances in mehreren Availability Zones bereitstellen, können Sie optional die zonal configuration Funktion aktivieren, mit der Sie die Bereitstellung jeweils in einer Availability Zone durchführen können CodeDeploy .

Wenn diese Funktion aktiviert ist, CodeDeploy wird sichergestellt, dass die Anzahl der fehlerfreien Hosts über den Werten „Mindestanzahl fehlerfreier Hosts pro Zone“ und „Mindestanzahl fehlerfreier Hosts“ liegt. Wenn die Anzahl der fehlerfreien Hosts unter einen der Werte fällt, schlägt die Bereitstellung in allen Availability CodeDeploy Zones fehl.

Um die Anzahl der Hosts zu berechnen, auf denen die Bereitstellung gleichzeitig erfolgen soll, werden sowohl die Werte „Mindestanzahl fehlerfreier Hosts pro Zone“ als auch die Werte für „mindestens fehlerfreie Hosts“ CodeDeploy verwendet. CodeDeploy verwendet die geringere Anzahl von Berechnungen [A] und, wo und [B] sind: [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]

Nachdem die Anzahl der Hosts bestimmt wurde, auf denen die Bereitstellung gleichzeitig erfolgen soll CodeDeploy , erfolgt die Bereitstellung auf Hosts in Batches dieser Anzahl, jeweils eine Availability Zone, mit einer optionalen Pause (oder „Bake-Time“) zwischen den Zonen.

Beispiel

Wenn Ihre Bereitstellung wie folgt konfiguriert ist:

  • [total-hosts] ist 200

  • [minimum-healthy-hosts] ist 160

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

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

Dann …

  • [A] = 200 - 160 = 40

  • [B] = 100 - 50 = 50

  • 40ist weniger als 50

CodeDeploy Wird daher sofort auf 40 Hosts bereitgestellt.

In diesem Szenario verläuft die Bereitstellung wie folgt:

  1. CodeDeploy wird in der ersten Availability Zone bereitgestellt:

    1. CodeDeploy wird auf den ersten 40 Hosts bereitgestellt.

    2. CodeDeploy wird auf den nächsten 40 Hosts bereitgestellt.

    3. CodeDeploy wird auf den verbleibenden 20 Hosts bereitgestellt.

      Die Bereitstellung in der ersten Availability Zone ist jetzt abgeschlossen.

  2. (Optional) CodeDeploy wartet, bis die Bereitstellung in der ersten Zone wie in der Einstellung Überwachungsdauer oder Monitordauer hinzufügen für die erste Zone festgelegt ist, „läuft“. Wenn es keine Probleme gibt, CodeDeploy fährt fort.

  3. CodeDeploy wird in der zweiten Availability Zone bereitgestellt:

    1. CodeDeploy wird auf den ersten 40 Hosts bereitgestellt.

    2. CodeDeploy wird auf den nächsten 40 Hosts bereitgestellt.

    3. CodeDeploy wird auf den verbleibenden 20 Hosts bereitgestellt.

      Die Bereitstellung in der zweiten und letzten Availability Zone ist jetzt abgeschlossen.

Weitere Informationen zur Funktion für die zonale Konfiguration und zur Angabe der Mindestanzahl fehlerfreier Instances pro Availability Zone finden Sie unterzonal configuration.