Skip to main content
NetApp Solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Sicherung in CI/CD-Pipelines mit NetApp Astra Control integrieren

Beitragende

Überblick

Eine der häufigsten Nutzungsmöglichkeiten von DevOps-Workflows ist die Continuous Integration und CI/CD-Pipelines (Continuous Deployment), die während der Entwickler neuen Code erstellen, integrieren und auf Applikationen automatisierte Test-Suites ausführen. DevOps-Engineers und Site-Reliability Engineers (SREs) verfügen in der Regel über Pipelines, die verschiedenen Workflows für die Entwicklung von neuen Funktionen, für Regressionstests, Bug Fixes, Qualitätstechnik und andere Funktionen im Entwicklungsprozess gewidmet sind.

Mit dem zunehmenden Automatisierungsgrad von Teams fühlen sich die Veränderungen bei Produktionsapplikationen als unübersichtlich. Daher bevorzugen einige Teams den Schutz von Produktionsapplikationen oder Services in ihrer Produktion. Neben dem Schutz von Code- und Container-Images möchten sie auch den Applikationsstatus, Konfigurationsdaten (wie Kubernetes-Objekte und Ressourcen, die mit der Applikation verknüpft sind) und die persistenten Daten einer Applikation schützen.

In diesem Anwendungsfall schauen wir uns eine Pipeline für die Förderung bis zur Produktion genauer an, die eine neue Version einer Applikation implementiert: Zuerst in eine Staging-Umgebung und dann in eine Produktionsumgebung. Dieses Beispiel gilt gleichermaßen für die großen Public Clouds und auch für eine On-Premises-Umgebung. Obwohl wir die Bereitstellung einer Version der App zeigen, kann die Pipeline auch mit anderen Strategien wie blau/grün oder canary Deployment verwendet werden. Als Teil der CI/CD-Pipeline werden wir die Anwendung durch ein komplettes Applikations-Backup schützen. Ein applikationsgerechtes Backup der Applikation in der Produktion mit seinen Daten, Zustand und Konfiguration kann für zahlreiche DevOps-Workflows nützlich sein.

DevOps mit NetApp Astra: Anwendungsfall 1-Architektur

Die Anwendung zur Validierung dieses Anwendungsfalls war "Magento", Eine E-Commerce-Lösung mit webbasiertem Frontend, eine Elasticsearch-Instanz für Such- und Analysefunktionen sowie eine MariaDB-Datenbank, die alle Shopping-Bestands- und Transaktionsdetails erfasst. Diese Container-Applikation wurde in einem Red hat OpenShift-Cluster installiert. Jeder POD in der Applikation verwendete persistente Volumes zum Speichern von Daten. Die persistenten Volumes wurden automatisch durch NetApp Astra Trident erstellt, den Container-Storage Interface-konformen Storage-Orchestrator für Kubernetes. Er ermöglicht die Bereitstellung von Storage auf NetApp Storage-Systemen. Darüber hinaus wurde die betreffende Applikation durch Astra Control Center verwaltet, mit der anschließend Applikations-Backups ausgelöst werden konnten, die den Zustand der Applikation zusammen mit den in persistenten Volumes gespeicherten Daten speicherten. Wir haben das verwendet "NetApp Astra Control Python SDK" Um den Prozess der Auslösung von Applikations-Backups zu automatisieren, der dann in eine CI/CD-Pipeline eingeführt wurde. Diese Pipeline wurde mit dem beliebten CI/CD-Tool namens erstellt und ausgeführt ["Jenkins"] Zum Automatisieren des Ablaufes zum Erstellen, Sichern und Implementieren der Applikation

Gehen wir die Voraussetzungen und Verfahren durch, um Schutz in eine CI/CD-Pipeline einzuführen.

Voraussetzungen für die Validierung von Anwendungsfällen

Folgende Tools oder Plattformen wurden implementiert und als Voraussetzungen konfiguriert:

  1. Red hat OpenShift Container Platform

  2. NetApp Astra Trident wird auf OpenShift mit konfiguriertem NetApp ONTAP System per Backend installiert

  3. Eine Standardspeicherklasse mit Verweis auf ein NetApp ONTAP-Back-End ist konfiguriert

  4. NetApp Astra Control Center wird auf einem OpenShift-Cluster installiert

  5. OpenShift-Cluster wurde dem Astra Control Center als gemanagter Cluster hinzugefügt

  6. Jenkins wird auf einem OpenShift-Cluster installiert und mit einem Agent-Node konfiguriert, auf dem eine Docker Engine installiert ist

Installieren der Anwendung

Beginnen wir mit der Erstinstallation der Applikation in den Staging- und Produktionsumgebungen. Für diesen Anwendungsfall ist dieser Schritt eine Voraussetzung, daher wird er manuell durchgeführt. Die CI/CD-Pipeline kommt für nachfolgende Builds und Implementierungen von Workflows als Folge neuer Versionsversionen der Applikation zum Einsatz.

Die Produktionsumgebung ist in diesem Anwendungsbeispiel ein Namespace genannt magento-prod, Und die entsprechende Staging-Umgebung ist ein Namespace genannt magento-staging Konfiguration auf dem Red hat OpenShift-Cluster Gehen Sie wie folgt vor, um die Anwendung zu infüllen:

  1. Installieren Sie die Magento-Anwendung mit dem bitnami-Steuerkarton in der Produktionsumgebung. Wir verwenden RWX PVS für Magento- und MariaDB-Pods.

    [netapp-user@rhel7 na_astra_control_suite]$ helm install --version 14 magento bitnami/magento -n magento-prod --create-namespace --set image.tag=2.4.1-debian-10-r11,magentoHost=10.63.172.243,persistence.magento.accessMode=ReadWriteMany,persistence.apache.accessMode=ReadWriteMany,mariadb.master.persistence.accessModes[0]=ReadWriteMany
    Hinweis Magento bitnami Steueround erfordert einen Load Balancer Service, um den Magento GUI Service auszusetzen. Wir haben genutzt "MetalLB" Für die Bereitstellung eines On-Premises-Load-Balancer-Service in diesem Beispiel.
  2. Stellen Sie nach wenigen Minuten sicher, dass alle Pods und Services ausgeführt werden.

    [netapp-user@rhel7 na_astra_control_suite]$ oc get pods -n magento-prod
    NAME                                                     READY   STATUS    RESTARTS   AGE
    magento-9d658fd96-qrxmt                                  1/1     Running   0          49m
    magento-elasticsearch-coordinating-only-69869cc5-768rm   1/1     Running   0          49m
    magento-elasticsearch-data-0                             1/1     Running   0          49m
    magento-elasticsearch-master-0                           1/1     Running   0          49m
    magento-mariadb-0                                        1/1     Running   0          49m
  3. Wiederholen Sie den gleichen Vorgang für die Staging-Umgebung.

Verwalten Sie die Anwendung Magento im Astra Control Center

  1. Navigieren Sie zu Anwendungen, und wählen Sie die Registerkarte ermittelte Anwendungen aus.

  2. Klicken Sie in der Produktionsumgebung auf die Ellipse gegenüber der Magento-Anwendung (`magento-prod`Und klicken Sie auf Verwalten.

  3. Die Anwendung Magento wird nun vom Astra Control Center verwaltet. Alle von Astra Control unterstützten Vorgänge können auf der Anwendung ausgeführt werden. Beachten Sie auch die Version der Anwendung.

    Magento-Version vor dem Upgrade prüfen
  4. Wiederholen Sie die Schritte für die Verwaltung der Magento-Anwendung in der Staging-Umgebung (magento-staging).

CI/CD-Pipeline mit integriertem Schutz

Bei der Arbeit mit neuen Applikationsversionen verwenden wir eine CI/CD-Pipeline zum Erstellen des Container-Images, Erstellen von Backups sowohl der Staging- als auch der Produktionsumgebung, Bereitstellen der neuen Version der Applikation in der Staging-Umgebung, Warten auf Genehmigung der Beförderung in die Produktion. Anschließend können Sie die neue Version der Applikation in der Produktionsumgebung implementieren. Gehen Sie wie folgt vor, um eine CI/CD-Pipeline zu verwenden:

  1. Melden Sie sich bei Jenkins an, und erstellen Sie die erforderlichen Anmeldedaten: Eine für Magento-Credo, eine für MariaDB-Admin-Credo und die dritte für MariaDB-Root-Creds.

  2. Navigieren Sie zu verwalten Jenkins > Anmeldeinformationen verwalten, und klicken Sie auf die entsprechende Domäne.

  3. Klicken Sie auf Anmeldeinformationen hinzufügen, und legen Sie den Benutzernamen fest, der das Passwort und den Umfang auf „Global“ gesetzt hat. Geben Sie den Benutzernamen, das Passwort und eine ID für die Anmeldeinformationen ein, und klicken Sie auf OK.

    Anmeldedaten Erstellen
  4. Wiederholen Sie das gleiche Verfahren für die anderen beiden Anmeldedaten.

  5. Gehen Sie zurück zum Dashboard, erstellen Sie eine Pipeline, indem Sie auf Neues Element klicken und dann auf Pipeline klicken.

  6. Kopieren Sie die Pipeline aus der Jenkinsdatei "Hier".

  7. Fügen Sie die Pipeline in den Jenkins-Pipeline-Abschnitt ein, und klicken Sie dann auf Speichern.

  8. Füllen Sie die Parameter der Jenkins-Pipeline mit den entsprechenden Details aus, einschließlich der Ruderdiagrammversion, der zu aktualisierenden Magento-Anwendungsversion, der Astra-Toolkit-Version, dem FQDN des Astra Control Center, dem API-Token und der Instanz-ID. Geben Sie die Docker-Registrierung, den Namespace und die Magento-IP sowohl in Produktions- als auch in Staging-Umgebungen an, und geben Sie auch die Anmeldeinformationen für die erstellten Anmeldeinformationen an.

    MAGENTO_VERSION = '2.4.1-debian-10-r14'
    CHART_VERSION = '14'
    RELEASE_TYPE = 'MINOR'
    ASTRA_TOOLKIT_VERSION = '2.0.2'
    ASTRA_API_TOKEN = 'xxxxxxxx'
    ASTRA_INSTANCE_ID = 'xxx-xxx-xxx-xxx-xxx'
    ASTRA_FQDN = 'netapp-astra-control-center.org.example.com'
    DOCKER_REGISTRY = 'docker.io/netapp-solutions-cicd'
    PROD_NAMESPACE = 'magento-prod'
    PROD_MAGENTO_IP = 'x.x.x.x'
    STAGING_NAMESPACE = 'magento-staging'
    STAGING_MAGENTO_IP = 'x.x.x.x'
    MAGENTO_CREDS = credentials('magento-cred')
    MAGENTO_MARIADB_CREDS = credentials('magento-mariadb-cred')
    MAGENTO_MARIADB_ROOT_CREDS = credentials('magento-mariadb-root-cred')
  9. Klicken Sie Auf Jetzt Erstellen. Die Pipeline beginnt mit der Ausführung und führt die einzelnen Schritte durch. Das Anwendungsabbild wird zuerst erstellt und in die Container-Registrierung hochgeladen.

    Fortschritt Der Verkaufskanäle
  10. Die Applikations-Backups werden über Astra Control initiiert.

    Backup initiiert
  11. Nachdem die Backup-Phasen erfolgreich abgeschlossen sind, überprüfen Sie die Backups aus dem Astra Control Center.

    Backup erfolgreich
  12. Anschließend wird die neue Version der Applikation in der Staging-Umgebung bereitgestellt.

    Staging-Implementierung gestartet
  13. Nach Abschluss dieses Schritts wartet das Programm, bis der Benutzer die Bereitstellung in der Produktion genehmigt. Nehmen Sie in dieser Phase an, dass das QA-Team einige manuelle Tests durchführt und die Produktion genehmigt. Sie können dann auf Genehmigen klicken, um die neue Version der Anwendung in der Produktionsumgebung zu implementieren.

    Warten auf die Werbeaktion
  14. Überprüfen Sie, ob die Produktionsanwendung auch auf die gewünschte Version aktualisiert wird.

    Prod-App aktualisiert

Als Teil der CI/CD-Pipeline haben wir demonstriert, dass sich die Applikation durch ein vollständiges applikationsgerechtes Backup schützen lässt. Da die gesamte Applikation im Rahmen der Pipeline-zwischen den Produktionsförderungen gesichert wurde, können Sie sich sicher in Bezug auf die hochgradig automatisierten Applikationsimplementierungen fühlen. Dieses applikationsgerechte Backup mit Daten, Zustand und Konfiguration der Applikation kann für zahlreiche DevOps-Workflows nützlich sein. Ein wichtiger Workflow wäre ein Rollback zur vorherigen Version der Applikation im Falle unvorhergesehener Probleme.

Obwohl wir einen CI/CD-Workflow durch das Jenkins Tool demonstriert haben, kann das Konzept einfach und effizient auf verschiedene Tools und Strategien hochgerechnet werden. Sehen Sie sich das Video an, um diesen Anwendungsfall in Aktion zu sehen "Hier".