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.
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. |
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
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.