Zum Erstellen einer CICD-Pipeline (Continuous Integration und Continuous Delivery) in Code Stream können Sie die intelligente Pipeline-Vorlage für CICD verwenden. Zum Planen Ihres nativen CICD-Builds sammeln Sie die Informationen für die intelligente Pipeline-Vorlage, bevor Sie sie zum Erstellen der Pipeline in diesem Beispielplan verwenden.

Zum Erstellen einer CICD-Pipeline müssen Sie sowohl die CI- (Continuous Integration, Kontinuierliche Integration) als auch die CD-Phase (Continuous Delivery, Kontinuierliche Bereitstellung) Ihrer Pipeline planen.

Nachdem Sie die Informationen in der intelligenten Pipeline-Vorlage eingegeben und gespeichert haben, erstellt die Vorlage eine Pipeline, die die Phasen und Aufgaben enthält. Außerdem wird das Bereitstellungsziel des Images basierend auf den ausgewählten Umgebungstypen (z. B. „Entwicklung“ oder „Produktion“) angegeben. Die Pipeline veröffentlicht Ihr Container-Image und führt die Aktionen durch, die zur Ausführung des Images erforderlich sind. Nachdem Ihre Pipeline ausgeführt wurde, können Sie Trends über die Pipeline-Ausführungen hinweg überwachen.

Wenn eine Pipeline ein Image aus dem Docker-Hub enthält, müssen Sie vor der Pipeline-Ausführung sicherstellen, dass cURL oder wget in das Image eingebettet wurde. Wenn die Pipeline ausgeführt wird, lädt Code Stream eine binäre Datei herunter, die cURL oder wget zum Ausführen von Befehlen verwendet.

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

Planen der CI-Phase

Zum Planen der CI-Phase Ihrer Pipeline richten Sie die externen und internen Anforderungen ein und bestimmen die Informationen, die für den CI-Abschnitt der intelligenten Pipeline-Vorlage benötigt werden. Zusammenfassung.

In diesem Beispiel wird ein Docker-Arbeitsbereich verwendet.

Endpoints und Repositorys, die Sie benötigen:

  • Ein Quellcode-Repository, in das Entwickler ihren Code einchecken. Code Stream übergibt den aktuellen Code an die Pipeline, wenn Entwickler Änderungen vornehmen.
  • Ein Endpoint des Diensttyps „GitHub-Enterprise“, „GitLab-Enterprise“ oder „Bitbucket-Enterprise“ für das Repository, in dem sich der Quellcode der Entwickler befindet.
  • Ein Docker-Endpoint für den Docker-Build-Host, der die Build-Befehle in einem Container ausführt.
  • Ein Kubernetes-Endpoint, damit Code Stream Ihr Image auf einem Kubernetes-Cluster bereitstellen kann.
  • Ein Builder-Image, das den Container erstellt, auf dem die Tests für die kontinuierliche Integration ausgeführt werden.
  • Ein Image-Registrierungs-Endpoint, damit der Docker-Build-Host das Builder-Image daraus abrufen kann.

Sie benötigen Zugriff auf ein Projekt. Ein Projekt, in dem Ihre gesamte Arbeit, einschließlich Ihrer Pipeline, Endpoints und Dashboards, gruppiert wird. Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Code Stream sind. Falls nicht, bitten Sie einen Code Stream-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Code Stream.

Sie brauchen einen Git-Webhook, der es Code Stream ermöglicht, den Git-Auslöser zu verwenden, der Ihre Pipeline auslöst, wenn Entwickler Codeänderungen vornehmen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden des Git-Auslösers in Code Stream zum Ausführen einer Pipeline.

Ihre Build-Toolsets:

  • Ihr Build-Typ, z. B. Maven.
  • Alle von Ihnen verwendeten Tools für die Nachbearbeitung von Builds, einschließlich JUnit, JaCoCo, Checkstyle und FindBugs.

Ihr Veröffentlichungstool:

  • Ein Tool, wie z. B. Docker, das den Build-Container bereitstellt.
  • Ein Image-Tag, bei dem es sich entweder um die Commit-ID oder die Build-Nummer handelt.

Ihr Build-Arbeitsbereich:

  • Ein Docker-Build-Host, der den Docker-Endpoint darstellt.
  • Eine Image-Registrierung. Der CI-Abschnitt der Pipeline ruft das Image aus dem ausgewählten Registrierungs-Endpoint ab. Der Container führt die CI-Aufgaben aus und stellt das Image bereit. Wenn bei der Registrierung Anmeldedaten benötigt werden, müssen Sie einen Image-Registrierungs-Endpoint erstellen und diesen dann hier auswählen, damit der Host das Image aus der Registrierung abrufen kann.
  • URL für das Builder-Image, das den Container erstellt, auf dem die Aufgaben für die kontinuierliche Integration ausgeführt werden.

Planen der CD-Phase

Zum Planen der CD-Phase Ihrer Pipeline richten Sie die externen und internen Anforderungen ein und bestimmen die Informationen, die in den CD-Abschnitt der intelligenten Pipeline-Vorlage eingegeben werden sollten.

Endpoints, die Sie benötigen:

  • Ein Kubernetes-Endpoint, damit Code Stream Ihr Image auf einem Kubernetes-Cluster bereitstellen kann.

Umgebungstypen und Dateien:

  • Alle Umgebungstypen, in denen Code Stream Ihre Anwendung bereitstellt, z. B. „Entwicklung“ und „Produktion“. Die intelligente Pipeline-Vorlage erstellt die Phasen und Aufgaben in Ihrer Pipeline basierend auf den ausgewählten Umgebungstypen.
    Tabelle 1. Von der intelligenten Pipeline-Vorlage für CICD erstellte Pipeline-Phasen
    Pipeline-Inhalt Funktionsweise
    Build-/Veröffentlichungsphase Erstellt und testet Ihren Code, erstellt das Builder-Image und veröffentlicht das Image auf Ihrem Docker-Host.
    Entwicklungsphase Verwendet einen Amazon Web Services-Entwicklungscluster (AWS), um das Image zu erstellen und bereitzustellen. In dieser Phase können Sie einen Namespace auf dem Cluster sowie einen geheimen Schlüssel erstellen.
    Produktionsphase Verwendet eine Produktionsversion der VMware Tanzu Kubernetes Grid Integrated Edition (zuvor als VMware Enterprise PKS bezeichnet), um das Image in einem Kubernetes-Produktionscluster bereitzustellen.
  • Eine Kubernetes-YAML-Datei, die Sie im CD-Abschnitt der intelligenten Pipeline-Vorlage für CICD auswählen.

    Die Kubernetes-YAML-Datei enthält drei erforderliche Abschnitte für Namespace, Dienst und Bereitstellung und einen optionalen Abschnitt für den geheimen Schlüssel. Wenn Sie eine Pipeline erstellen möchten, indem Sie ein Image aus einem privaten Repository herunterladen, müssen Sie einen Abschnitt mit dem geheimen Docker-Konfigurationsschlüssel hinzufügen. Wenn die von Ihnen erstellte Pipeline nur öffentlich verfügbare Images verwendet, ist kein geheimer Schlüssel erforderlich. Die folgende YAML-Beispieldatei enthält vier Abschnitte.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: codestream
      namespace: codestream
    ---  
    apiVersion: v1
    data:
      .dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZ1234567890lci5pby92MS8iOnsidXNlcm5hbWUiOiJhdXRvbWF0aW9uYmV0YSIsInBhc3N3b3JkIjoiVk13YXJlQDEyMyIsImVtYWlsIjoiYXV0b21hdGlvbmJldGF1c2VyQGdtYWlsLmNvbSIsImF1dGgiOiJZWFYwYjIxaGRHbHZibUpsZEdFNlZrMTNZWEpsUURFeU13PT0ifX19
    kind: Secret
    metadata:
      name: dockerhub-secret
      namespace: codestream
    type: kubernetes.io/dockerconfigjson
    ---   
    apiVersion: v1
    kind: Service
    metadata:
      name: codestream-demo
      namespace: codestream
      labels:
        app: codestream-demo
    spec:
      ports:
        - port: 80
      selector:
        app: codestream-demo
        tier: frontend
      type: LoadBalancer 
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: codestream-demo
      namespace: codestream
      labels:
        app: codestream-demo
    spec:
      replicas: 10
      selector:
        matchLabels:
          app: codestream-demo
          tier: frontend
      template:
        metadata:
          labels:
            app: codestream-demo
            tier: frontend
        spec:
          containers:
          - name: codestream-demo
            image: automationbeta/codestream-demo:01
            ports:
            - containerPort: 80
              name: codestream-demo
          imagePullSecrets:
          - name: dockerhub-secret

    Klicken Sie zum Anwenden der Datei in der intelligenten Vorlage auf Auswählen und wählen Sie die Kubernetes-YAML-Datei aus. Klicken Sie anschließend auf Verarbeiten. Die intelligente Pipeline-Vorlage zeigt die verfügbaren Dienste und Bereitstellungsumgebungen an. Sie wählen einen Dienst, den Cluster-Endpoint und die Bereitstellungsstrategie aus. Um beispielsweise das Canary-Bereitstellungsmodell zu verwenden, wählen Sie Canary aus und geben den Prozentsatz für die Bereitstellungsphase ein:

    Die intelligente Pipeline-Vorlage kann Canary-, paralleles Upgrade und Blau/Grün-Bereitstellungen für kontinuierliche Integration und kontinuierliche Bereitstellung verarbeiten.

Ein Beispiel für die Verwendung der intelligenten Pipeline-Vorlage zum Erstellen einer Pipeline für eine Blau/Grün-Bereitstellung finden Sie unter Vorgehensweise zum Bereitstellen meiner Anwendung in Code Stream für meine Blau/Grün-Bereitstellung.

Vorgehensweise zum Erstellen der CICD-Pipeline mithilfe der intelligenten Pipeline-Vorlage

Nachdem Sie alle Informationen gesammelt und alles Notwendige eingerichtet haben, erhalten Sie hier Informationen zum Erstellen einer Pipeline anhand der intelligenten Pipeline-Vorlage für CICD.

Klicken Sie unter „Pipelines“ auf Neue Pipeline > Intelligente Vorlagen.

Wenn Sie eine Pipeline erstellen, können Sie eine intelligente Pipeline-Vorlage verwenden.

Sie wählen die intelligente Pipeline-Vorlage für CICD aus.

Sie können eine Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung erstellen, indem Sie auf die Vorlage für die intelligente CICD-Pipeline-Vorlage klicken.

Sie füllen die Vorlage aus und speichern die Pipeline mit den von ihr erstellten Phasen. Wenn Sie abschließende Änderungen vornehmen müssen, können Sie die Pipeline bearbeiten und speichern.

Die intelligente CICD-Pipeline-Vorlage erstellt die Pipeline mit Phasen, die Ihre Anwendung erstellen und veröffentlichen, und stellt sie in Entwicklungs- und Produktionsumgebungen bereit.

Anschließend aktivieren Sie die Pipeline und führen sie aus. Nach der Ausführung der Pipeline finden Sie hier einige Dinge, nach denen Sie suchen können:

  • Stellen Sie sicher, dass Ihre Pipeline erfolgreich war. Klicken Sie auf Ausführungen und suchen Sie nach Ihrer Pipeline. Wenn sie fehlgeschlagen ist, korrigieren Sie alle Fehler und führen Sie sie erneut aus.
  • Stellen Sie sicher, dass der Git-Webhook ordnungsgemäß funktioniert. Auf der Git-Registerkarte Aktivität werden die Ereignisse angezeigt. Klicken Sie auf Auslöser > Git > Aktivität.
  • Sehen Sie sich das Pipeline-Dashboard an und untersuchen Sie die Trends. Klicken Sie auf Dashboards und suchen Sie nach Ihrem Pipeline-Dashboard. Sie können auch ein benutzerdefiniertes Dashboard erstellen, um zusätzliche KPIs zu melden.

Ein detailliertes Beispiel finden Sie unter Vorgehensweise zur kontinuierlichen Integration von Code aus einem GitHub- oder GitLab-Repository in eine Pipeline in Code Stream.