Anzeige
Anzeige
Beitrag drucken

CI und Deployment trennen

Software sicher mit GitOps verteilt

Effizienz und Cybersicherheit sind zwei wichtige Aspekte in der Softwareentwicklung. GitOps ist ein Ansatz, um beides zu verbessern. Zugleich wird die Handlungsfähigkeit von Entwicklungsteams gesteigert.

Abbildung 1: Klassische CD-Pipeline (CIOps) (Bild: Cloudogu GmbH)

Abbildung 1: Klassische CD-Pipeline (CIOps) (Bild: Cloudogu GmbH)

Im ‚2020 CIO Survey – Industrial Manufacturing Industry Insights‘ haben 65 Prozent der IT-Führungskräfte in der Fertigungsindustrie angegeben, dass die betriebliche Effizienz die wichtigste Leistung ist, die von ihren Abteilungen erwartet wird. Außerdem haben 50 Prozent der Unternehmen angegeben, dass Cyber-Security ihre Top-Investition sei. Ein Grund dafür ist die gewachsene Angriffsfläche durch vermehrtes Homeoffice, ein anderer sind die Auswirkungen eines Produktionsausfalls durch Cyberattacken. Beide Herausforderungen lassen sich durch das GitOps-Konzept adressieren. Der Ansatz ist im DevOps-Umfeld entstanden und kann sowohl in Verbindung mit DevOps als auch eigenständig eingesetzt werden. Entwicklungsteams erhalten damit Werkzeuge, um den Betrieb von Softwareanwendungen eigenständig zu übernehmen und die Effizienz zu steigern. Die Sicherheit der Infrastruktur wird durch eine Richtungsumkehr des Deployments vom Push zum Pull-Prinzip erreicht.

Das klassische Vorgehen

GitOps lässt sich im Vergleich zu CI/CD-Pipelines gut beschreiben, hier kurz CIOps. Die erste Abbildung zeigt eine vereinfachte CIOps-Pipeline: Klassischerweise wird dabei ein CI-Server über Änderungen an einem Repository informiert. Er führt daraufhin einen Build durch und deployt anschließend die geänderte Anwendung auf einen Server (Push-Prinzip). In der Praxis ist eine CIOps-Pipeline in eine Staging- und Produktionsumgebung aufgeteilt, bei denen die Automatisierung des Deployments durch die Verwendung von Branches in der Versionsverwaltung, etwa Git, umgesetzt werden kann. Nachteil an diesem Vorgehen: Der Prozess ist langsam, da für jedes Deployment ein Build im CI-Server durchlaufen werden muss. Eigentlich ist aber gar kein neuer Build notwendig, da das gleiche Artefakt auf allen Stages ausgeliefert werden könnte. Außerdem benötigt der CI-Server Zugriff auf die Betriebsumgebung, was in Bezug auf die Sicherheit nachteilig ist.

Wie GitOps funktioniert

Im Gegensatz zu CIOps werden mit GitOps Änderungen nach dem Pull-Prinzip in die Produktion überführt. So wird die kontinuierliche Integration (CI) einer Anwendung vom eigentlichen Deployment-Prozess getrennt. Das heißt, der CI-Server übernimmt nicht mehr das Deployment, sondern führt nur noch Build und Tests durch und schiebt Artefakte, etwa Docker Images, in eine Registry. Die zweite Abbildung zeigt, wie eine GitOps-Pipeline aussehen kann. GitOps verbessert so zum einen die Sicherheit, da kein schreibender Zugriff durch den CI-Server von außerhalb des Clusters notwendig ist. Zum Anderen ist es effizienter, da eine Anwendung nur einmal gebaut werden muss und das Artefakt anschließend in unterschiedlichen Umgebungen deployt werden kann. Ein weiterer Unterschied zu CIOps ist, dass mit GitOps der Sollzustand einer Umgebung beschrieben wird und spezielle Tools kontinuierlich einen Soll-/Ist-Abgleich durchführen. Abweichungen und Fehler werden so automatisiert erkannt und korrigiert. Diese Tools werden als Operatoren oder auch Custom Controller bezeichnet. Die Abstimmungsschleife zwischen Soll- und Ist-Zustand wird als Reconciliation Loop bezeichnet.

Abbildung 2 zeigt das Deployment mit App-Repository und GitOps-Repository. (Bild: Cloudogu GmbH)

Abbildung 2 zeigt das Deployment mit App-Repository und GitOps-Repository. (Bild: Cloudogu GmbH)

Nützliche Effekte

Der GitOps-Ansatz bringt mehrere Vorteile: Wie schon erwähnt wird die Sicherheit verbessert, da der GitOps-Operator Deployments durchführen kann und sich dieser innerhalb des Clusters befindet. So wird kein Zugriff von außen mehr auf den Cluster benötigt. Darüber hinaus ist der Zugriff auf Git oft einfacher zu organisieren als auf einen API-Server. Nicht nur, dass gegebenenfalls eine Firewall-Freischaltung entfällt, auch die Entwicklungsteams sind mit Git vertraut. GitOps ist im Umfeld von Kubernetes (k8s) entstanden. Nutzt ein Unternehmen kein Kubernetes, ermöglichen Tools die Anwendung von GitOps dennoch. Der zentrale Bestandteil in GitOps ist die vollständige deklarative Beschreibung des Zustands in Git. Dadurch ist ein anderes Vorgehen gefragt als in klassischen CIOps-Pipelines. So müssen jeweils passende Operatoren benutzt werden, die den Kubernetes API-Server um sogenannte Custom Resource Definitions (CRDs) erweitern und Custom Resources (CRs) bereitstellen. Anwendungsfälle mit speziellen Operatoren sind etwa der Einsatz von Templating-Werkzeugen wie Helm oder Kustomize, die Ver- und Entschlüsselung von Secrets, da diese mit GitOps in Git gespeichert werden müssen, sowie die Realisierung von Deployment-Strategien wie Canary Releases, A/B-Tests und Blue/Green Deployments.

GitOps ausprobieren

Mit seinen vielen Operatoren könnte sich die GitOps-Methode zunächst nur schwer nachvollziehen lassen. Ein Umsetzungsbeispiel bietet der Open Source GitOps Playground. Das Repository beinhaltet eine reproduzierbare GitOps-Infrastruktur mit Kubernetes Cluster, CI-Server (Jenkins), Source Code Management (SCM-Manager) und unterschiedlichen GitOps-Operatoren (Flux und ArgoCD), auf der die Komponenten bereits mit Beispielapplikationen vorkonfiguriert sind. Außerdem zeigt der GitOps Playground eine Umsetzung von Monitoring und Alerting mit Grafana und Prometheus.


Das könnte Sie auch interessieren:

Wer Produktion und Logistik in einer Echtzeit-Visualisierung abbildet, kann niedrigschwellig in die digitale Transformation einsteigen und viel Papier aus dem Shopfloor bannen. Ergänzt um zentrale MES-Funktionen lassen sich solche Visualisierungssysteme zur Operational Excellence-Plattform ausprägen, die bei fortlaufenden Prozessoptimierungen unterstützt.‣ weiterlesen

Industrielle Trends wie IIoT und Digitalisierung setzen immense Datenströme voraus. Doch im Gegensatz zur IT-Security für Büros müssen Fabrikbetreiber auf wesentlich mehr Stolpersteine achten, damit ihre Anlagen nicht schon einfachen Angriffen zum Opfer fallen.‣ weiterlesen

Ab und zu fehlte ein Schlüssel im Kloster der Franziskanerinnen der ewigen Anbetung von Schwäbisch Gmünd. Beim letzten Mal gab das den Impuls, anstatt neue mechanische Zylinder in die rund 220 Türen des Komplexes einzubauen, die alte Technik durch das Bluesmart-System von Winkhaus zu ersetzen.‣ weiterlesen

Mit 100,5 Punkten hält sich das IAB-Arbeitsmarktbarometer im November stabil und liegt weiter im leicht über der neutralen Marke. Auf europäischer Ebene sank der Frühindikator allerdings erneut.‣ weiterlesen

In einer neuen Expertise des Forschungsbeirats Industrie 4.0 untersuchen das FIR an der RWTH Aachen und das Industrie 4.0 Maturity Center den Status-quo und die aktuellen Herausforderungen der deutschen Industrie bei der Nutzung und wirtschaftlichen Verwertung von industriellen Daten und geben Handlungsempfehlungen für Unternehmen, Verbände, Politik und Wissenschaft.‣ weiterlesen

Im Forschungsprojekt FabOS soll eine KI-Bin-Picking-Anwendung entstehen, die ein verbessertes Erkennen, Greifen und definiertes Ablegen von Blechteilen in der Produktion ermöglicht.‣ weiterlesen

Die Digitalisierung des Qualitätsmanagements stellt Unternehmen vor Herausforderungen. Daher haben das Fraunhofer IPT und die FH Südwestfalen im Forschungsvorhaben 'Qbility - Quality 4.0 Capability Determination Model' ein datengetriebenes Reifegradmodell entwickelt, das die Anforderungen eines digitalisierten Qualitätsmanagements bei KMU adressiert.‣ weiterlesen