DevOps-Praktiken wie CI/CD, Versionskontrolle und Zusammenarbeit haben dazu beigetragen, dass Teams schneller qualitativ hochwertigere Software liefern können. Dank der DevOps-Kultur sind Entwicklungsteams in der Lage, Code mehrmals täglich in die Produktion zu überführen und dabei die meisten Prozesse zu automatisieren. Dennoch müssen die Teams infrastrukturelle Aktivitäten wie die Wartung, Verwaltung und Bereitstellung der Infrastruktur immer noch manuell durchführen: Das kostet viel Zeit und Mühe! Automatisierung ist der Schlüssel, um die Teams von dieser Last zu befreien, und genau dafür ist GitOps da. In diesem Beitrag werde ich Ihnen mehr über GitOps und seine Vor- und Nachteile erklären. Lassen Sie uns gleich loslegen!
Was ist GitOps?
GitOps ist als operatives Framework bekannt, das die bewährten Praktiken von DevOps, wie CI/CD, Versionskontrolle und Zusammenarbeit, auf die Automatisierung der Infrastruktur anwendet.
GitOps ist eine Reihe von codebasierten Praktiken, die Git, ein Open-Source-Versionskontrollsystem, zur Verwaltung von Infrastruktur- und Anwendungskonfigurationen verwenden. Git ist die einzige Quelle der Wahrheit, und Pull-Requests werden verwendet, um Änderungen an der Infrastruktur zu überprüfen und automatisch zu verwalten bzw. bereitzustellen.
So wie Entwickler den Quellcode von Anwendungen verwenden, nutzen Betriebsteams, die GitOps praktizieren, die Infrastruktur als Code (als Code gespeicherte Konfigurationsdateien), um bei jeder Bereitstellung dieselbe Infrastrukturumgebung zu erzeugen. Kurz gesagt: GitOps verwendet ähnliche Prozesse und Tools wie die Softwareentwicklung, um die Infrastruktur zu verwalten und die von den Teams benötigte Automatisierung zu gewährleisten.
Wie funktioniert GitOps?
Da GitOps Git als Versionskontrollsystem verwendet, kann es als Weiterentwicklung von Infrastructure as Code (IaC) betrachtet werden. In GitOps werden Änderungen über Pull Requests ausgelöst, die den Zustand des Git-Repositorys verändern. Ein GitOps-Arbeitsablauf für die Aktualisierung oder Erstellung einer neuen Funktion sieht wie folgt aus:
- Initiieren Sie einen Pull Request für die neue Funktion in Git
- Überprüfen Sie den Code und führen Sie ihn in Git zusammen.
- Git löst automatisch CI- und Build-Pipelines aus, führt Tests durch, wendet Änderungen an der Infrastruktur an und erstellt - in einer Container-basierten Umgebung - ein neues Image, das dann in die Registry hochgeladen wird.
- Speziell für Anwendungen können Deployment-Tools verwendet werden, um die laufende Version automatisch zu aktualisieren, z.B. auf einem Kubernetes-Cluster oder einem anderen serverlosen Produkt . Die Arbeitsabläufe von GitOps sollen die Produktivität und die Geschwindigkeit von Entwicklung und Deployment verbessern und gleichzeitig sicherstellen, dass die Systeme stabil und zuverlässig bleiben!
Vor- und Nachteile von GitOps
Im Folgenden finden Sie die wichtigsten Vor- und Nachteile von GitOps:
Profis
- Es steigert die Produktivität des DevOps-Teams, da es neue Konfigurationen von Infrastrukturen sofort bereitstellen kann. Wenn die Änderungen nicht wie gewünscht funktionieren, kann das Team dank des Git-Verlaufs leicht zu einem stabilen Zustand zurückkehren.
- Es sorgt für eine schnellere Bereitstellung, da das Team für die Bereitstellung der Anwendung nicht zwischen verschiedenen Tools wechseln muss (Anwendungs- und Infrastrukturänderungen können mit denselben Tools bereitgestellt werden).
- Es bringt eine durchgängige Standardisierung des Arbeitsablaufs
- Es kann auf Hunderte von Kubernetes-Clustern skaliert werden
- Da Git für die Speicherung aller Informationen über die bereitgestellte Infrastruktur verwendet wird, können Änderungen leicht nachverfolgt werden, und es fördert die Kultur des Wissensaustauschs in den Teams.
- Mit der Automatisierung bei der Definition und dem Testen der Infrastruktur entfällt eine Menge manueller Arbeit. Das Team wird produktiver, während Ausfallzeiten durch die Rollback/Revert-Funktion reduziert werden. GitOps kann die Kosten erheblich senken!
Nachteile
- GitOps fördert die Zusammenarbeit, aber manchmal wird sie auch zu einer zeitraubenden und mühsamen Aufgabe. Zum Beispiel umfasst der Genehmigungsprozess in GitOps viele Schritte, wie das Erstellen eines Merge Requests, die Genehmigung der Änderungen und die Bereitstellung der Änderungen. Ingenieure, die es gewohnt sind, Änderungen manuell und schnell vorzunehmen, könnten den gesamten Prozess als zeitaufwändig empfinden
- Die kollaborative Kultur erfordert auch Disziplin von allen Mitgliedern, um das Engagement für den Prozess sicherzustellen. Außerdem müssen die Teams alles schriftlich festhalten und formalisieren, damit GitOps perfekt funktionieren kann.
Zusammenfassung
GitOps ist ein leistungsfähiges Framework für die Verwaltung moderner Infrastrukturen mit dem Schwerpunkt auf der Erfahrung der Entwickler. Es ermöglicht die Verwaltung der Infrastruktur über dasselbe Versionskontrollsystem, das auch bei der Anwendungsentwicklung zum Einsatz kommt, und bietet den Teams eine zentrale Umgebung für die Zusammenarbeit mit verbesserter Systemzuverlässigkeit und -stabilität. Credits: Header-Bild von Sigmund auf unsplash.com
Verfasst von
Luca Cavallin
Luca is a Software Engineer and Trainer with full-stack experience ranging from distributed systems to cross-platform apps. He is currently interested in building modern, serverless solutions on Google Cloud using Golang, Rust and React and leveraging SRE and Agile practices. Luca holds 3 Google Cloud certifications, he is part of the Google Developers Experts community and he is the co-organizer of the Google Cloud User Group that Binx.io holds with Google.
Unsere Ideen
Weitere Blogs
Contact




