Blau/Grün ist ein Bereitstellungsmodell, das zwei Docker-Hosts verwendet, die Sie in einem Kubernetes-Cluster identisch bereitstellen und konfigurieren. Mit dem Blau/Grün-Bereitstellungsmodell reduzieren Sie die Ausfallzeiten, die in Ihrer Umgebung auftreten können, wenn Ihre Pipelines in Code Stream Ihre Anwendungen bereitstellen.

Die Blau/Grün-Instanzen in Ihrem Bereitstellungsmodell dienen jeweils einem anderen Zweck. Immer nur eine Instanz akzeptiert den Live-Datenverkehr, der Ihre Anwendung bereitstellt, und jede Instanz akzeptiert diesen Datenverkehr zu bestimmten Zeiten. Die Blau-Instanz empfängt die erste Version Ihrer Anwendung, und die Grün-Instanz empfängt die zweite.

Der Lastausgleichsdienst in Ihrer Blau/Grün-Umgebung legt fest, welche Route der Live-Datenverkehr während der Bereitstellung Ihrer Anwendung nimmt. Durch die Verwendung des Blau/Grün-Modells bleibt Ihre Umgebung betriebsbereit, Benutzer bemerken keine Ausfallzeiten, und Ihre Pipeline integriert Ihre Anwendung kontinuierlich und stellt sie kontinuierlich in Ihrer Produktionsumgebung bereit.

Die Pipeline, die Sie in Code Stream erstellen, stellt Ihr Blau/Grün-Bereitstellungsmodell in zwei Phasen dar. Eine Phase ist für die Entwicklung und die andere Phase ist für die Produktion.

Der Arbeitsbereich der Code Stream-Pipeline unterstützt Docker und Kubernetes für CI- und benutzerdefinierte Aufgaben.

Informationen zum Konfigurieren des Arbeitsbereichs finden Sie unter Konfigurieren des Pipeline-Arbeitsbereichs.

Tabelle 1. Aufgaben in der Entwicklungsphase für die Blau/Grün-Bereitstellung
Aufgabentyp Aufgabe
Kubernetes Erstellen Sie einen Namespace für Ihre Blau/Grün-Bereitstellung.
Kubernetes Erstellen Sie einen geheimen Schlüssel für Docker-Hub.
Kubernetes Erstellen Sie den Dienst, der für die Bereitstellung der Anwendung verwendet wird.
Kubernetes Erstellen Sie die Blau-Bereitstellung.
Abfrage Überprüfen Sie die Blau-Bereitstellung.
Kubernetes Entfernen Sie den Namespace.
Tabelle 2. Aufgaben in der Produktionsphase für die Blau/Grün-Bereitstellung
Aufgabentyp Aufgabe
Kubernetes Grün ruft die Dienstdetails von Blau ab.
Kubernetes Rufen Sie die Details für den Grün-Replikatsatz ab.
Kubernetes Erstellen Sie die Grün-Bereitstellung und verwenden Sie den geheimen Schlüssel, um das Container-Image abzurufen.
Kubernetes Aktualisieren Sie den Dienst.
Abfrage Stellen Sie sicher, dass die Bereitstellung auf der Produktions-URL erfolgreich war.
Kubernetes Beenden Sie die Blau-Bereitstellung.
Kubernetes Entfernen Sie die Blau-Bereitstellung.

Um Ihre Anwendung in Ihrem eigenen Blau/Grün-Bereitstellungsmodell bereitzustellen, erstellen Sie eine Pipeline in Code Stream, die zwei Phasen umfasst. Die erste Phase umfasst die Blau-Aufgaben, die Ihre Anwendung für die Blau-Instanz bereitstellen. Die zweite Phase umfasst Grün-Aufgaben, die Ihre Anwendung für die Grün-Instanz bereitstellen.

Sie können Ihre Pipeline mithilfe der intelligenten Pipeline-Vorlage für CICD erstellen. Die Vorlage erstellt Ihre Pipeline-Phasen und -Aufgaben für Sie und enthält die Bereitstellungsauswahl.

Wenn Sie Ihre Pipeline manuell erstellen, müssen Sie die Pipeline-Phasen planen. Ein Beispiel finden Sie unter Planen eines nativen CICD-Builds in Code Stream vor dem manuellen Hinzufügen von Aufgaben.

In diesem Beispiel verwenden Sie die intelligente Pipeline-Vorlage für CICD, um Ihre Blau/Grün-Pipeline zu erstellen.

Voraussetzungen

  • Vergewissern Sie sich, dass Sie auf einen funktionierenden Kubernetes-Cluster auf AWS zugreifen können.
  • Vergewissern Sie sich, dass Sie eine Blau/Grün-Bereitstellungsumgebung eingerichtet haben und Ihre Blau/Grün-Instanzen so konfiguriert haben, dass sie identisch sind.
  • Erstellen Sie einen Kubernetes-Endpoint in Code Stream, der Ihr Anwendungs-Image im Kubernetes-Cluster auf AWS bereitstellt.
  • Machen Sie sich mit der Verwendung der intelligenten Pipeline-Vorlage für CICD vertraut. Weitere Informationen hierzu finden Sie unter Planen eines nativen CICD-Builds in Code Stream vor der Verwendung der intelligenten Pipeline-Vorlage.

Prozedur

  1. Klicken Sie auf Pipelines > Neue Pipeline > Intelligente Vorlagen > CI-/CD-Vorlage.
  2. Geben Sie die Informationen für den CI-Abschnitt der intelligenten Pipeline-Vorlage für CICD ein und klicken Sie auf Weiter.
  3. Abschließen des CD-Abschnitts der intelligenten Pipeline-Vorlage
    1. Wählen Sie die Umgebungen für Ihre Anwendungsbereitstellung aus. Beispiel: Dev und Prod.
    2. Wählen Sie den Dienst aus, den die Pipeline für die Bereitstellung verwenden soll.
    3. Wählen Sie im Bereitstellungsbereich den Cluster-Endpoint für die Dev- und die Prod-Umgebung aus.
    4. Wählen Sie für das Produktionsbereitstellungsmodell Blau/Grün aus und klicken Sie auf Erstellen.

    Wählen Sie in der intelligenten Pipeline-Vorlage den Dienst und die Bereitstellungen aus und klicken Sie auf Blau/Grün für das Produktionsbereitstellungsmodell.

Ergebnisse

Herzlichen Glückwunsch! Sie haben die intelligente Pipeline-Vorlage verwendet, um eine Pipeline zu erstellen, die Ihre Anwendung für Ihre Blau/Grün-Instanzen in Ihrem Kubernetes-Produktionscluster auf AWS bereitstellt.

Beispiel: YAML-Beispielcode für einige Blau/Grün-Bereitstellungsaufgaben

Der YAML-Code, der in den Kubernetes-Pipeline-Aufgaben für Ihre Blau/Grün-Bereitstellung angezeigt wird, ähnelt möglicherweise den folgenden Beispielen zum Erstellen des Namespace, des Diensts und der Bereitstellung. Wenn Sie ein Image aus einem privaten Repository herunterladen müssen, muss die YAML-Datei einen Abschnitt mit dem geheimen Docker-Konfigurationsschlüssel enthalten. Weitere Informationen finden Sie im CD-Abschnitt von Planen eines nativen CICD-Builds in Code Stream vor der Verwendung der intelligenten Pipeline-Vorlage.

Nachdem die intelligente Pipeline-Vorlage Ihre Pipeline erstellt hat, können Sie die Aufgaben nach Bedarf für Ihre eigene Bereitstellung ändern.

YAML-Code zum Erstellen eines Beispiel-Namespace:

apiVersion: v1
kind: Namespace
metadata:
  name: codestream-82855
  namespace: codestream-82855

YAML-Code zum Erstellen eines Beispieldiensts:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: codestream-demo
  name: codestream-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  ports:
  - port: 80
  selector:
    app: codestream-demo
    tier: frontend
  type: LoadBalancer

YAML-Code zum Erstellen einer Beispielbereitstellung:

apiVersion: extensions/v1
kind: Deployment
metadata:
  labels:
    app: codestream-demo
  name: codestream-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  replicas: 1
  selector:
    matchLabels:
      app: codestream-demo
      tier: frontend
  template:
    metadata:
      labels:
        app: codestream-demo
        tier: frontend
    spec:
      containers:
      - image: ${input.image}:${input.tag}
        name: codestream-demo
        ports:
        - containerPort: 80
          name: codestream-demo
      imagePullSecrets:
      - name: jfrog-2
      minReadySeconds: 0

Nächste Maßnahme

Weitere Informationen zur Verwendung von Code Stream finden Sie unter Lernprogramme für die Verwendung von Code Stream.

Informationen zum Rollback einer Bereitstellung finden Sie unter Vorgehensweise zum Rollback meiner Bereitstellung in Code Stream.

Weitere Referenzen finden Sie unter Weitere Ressourcen für Code Stream-Administratoren und -Entwickler.