CI/CD mit GitLab, Teil 3: Multi-Stage-Deployment und Wartung erklärt
Moderne Software nutzt Komponenten, die nicht im Git-Repository definiert sind. Zur Sicherstellung der Integrität werden mehrstufige CI/CD-Pipelines eingesetzt.
- Mike Rothenhäusler
Nur sehr wenige Softwaresysteme sind vollständig in einem Git-Repository definiert. Vielmehr sind externe Datenbanken, Laufzeitumgebungen oder Orchestrierungsplattformen oft integraler Bestandteil einer Anwendung. Viele cloudbasierte Anwendungen bestehen sogar zum überwiegenden Teil aus Drittanbieterkomponenten – die Entwicklungsleistung besteht im Wesentlichen aus deren Verknüpfung und Konfiguration.
Für die Umsetzung von CI/CD (Continuous Integration / Continuous Delivery) stellt das eine Herausforderung dar, denn die Elemente sind erst einmal weder lokal verfügbar noch in einer CI-Pipeline zugänglich. Für Unit-Tests kann man externe Abhängigkeiten durch Attrappen (Mocks) ersetzen und das im zweiten Teil des Tutorials beschriebene Testing anwenden.
- Die Codeverwaltungsplattform GitLab ermöglicht CI/CD mit der integrierten Funktion GitLab CI. Für kleine Projekte ist sie kostenlos.
- Softwaresysteme verwenden in den meisten Fällen externe Ressourcen, zum Beispiel Datenbanken oder Orchestrierungsplattformen. Das erschwert das Testen des Softwareverhaltens innerhalb einer CI/CD-Pipeline.
- GitLab CI liefert verschiedene Funktionen, um externe Ressourcen zu emulieren, darunter Docker-Container innerhalb des Jobs, API-Stubs und Infrastructure-as-Code-UnterstĂĽtzung.
Man stößt dabei aber schnell an Grenzen. Die Entwicklung passender Mocks ist aufwendig und mit steigender Komplexität nimmt die Fehleranfälligkeit zu. Die Integration der selbst programmierten Anwendungsteile in die extern bereitgestellten Komponenten lässt sich letztlich nur überprüfen, wenn man beide in einer möglichst produktionsnahen Konfiguration bereitstellen und testen kann. Soll am Ende einer CI/CD-Pipeline das Deployment in eine Staging- oder Produktionsumgebung stehen, führt ohnehin kein Weg daran vorbei, dort die gesamte Infrastruktur aufzubauen und zu steuern.
Das war die Leseprobe unseres heise-Plus-Artikels "CI/CD mit GitLab, Teil 3: Multi-Stage-Deployment und Wartung erklärt". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.