Was ist GitOps?

Veröffentlicht 2. November 2021
Aktualisiert 22. Juni 2026
3D-Darstellung einer Kugel mit abstraktem Muster vor blauem Hintergrund
By Ashok Iyengar

GitOps definiert

GitOps ist eine DevOps -Praxis, die Git als Single-Source-of-Truth (SSOT) nutzt, in der der gewünschte Konfigurationszustand gespeichert wird. 

Der Schwerpunkt liegt auf der Automatisierung von Vorgängen, die aus Git-Repositorys gesteuert werden. Obwohl es im Titel steht, ist Git nicht das einzige Repository, das verwendet werden kann. Es sind die von Git bereitgestellten Schnittstellen, die Vorgänge automatisieren. GitOps verwendet letztendlich Informationen, die aus den Build-Metadaten extrahiert wurden, um zu bestimmen, welche Pakete aufgrund einer bestimmten Codeänderung erstellt werden sollen:

Abbildung 1. GitOps-Übersicht.
Abbildung 1. GitOps-Übersicht.

Im Kern verwendet das GitOps-Modell das Controller-Muster. Dies wird zusätzlich durch das Operator-Muster aus Kubernetes - oder OpenShift-Perspektive unterstützt, bei dem Operatoren Softwareerweiterungen sind, die benutzerdefinierte Ressourcen zur Verwaltung von Anwendungen und deren Komponenten verwenden.

Wir möchten auch Argo CD erwähnen, ein GitOps-Tool, das bei GitOps-Workflows hilft. Argo CD ist ein Open-Source-Deklarationswerkzeug für die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) von Anwendungen. Argo CD ist als Kubernetes-Controller implementiert und überwacht kontinuierlich die Definitionen und Konfigurationen laufender Anwendungen, wobei der aktuelle Live-Zustand im Cluster mit dem in einem Git-Repository definierten Sollzustand abgeglichen wird.

GitOps ist jedoch kein einzelnes Produkt, Plugin oder Plattform. GitOps-Workflows helfen Teams dabei, die IT-Infrastruktur mithilfe von Prozessen zu verwalten, die sie bereits in der Anwendungsentwicklung einsetzen. Um es mit den Worten eines GitLab-Blogeintrags zu sagen: GitOps erfordert drei Kernkomponenten: GitOps = IaC + PRs oder MRs + CI/CD

  • IaCInfrastructure as Code (IaC) ist die Praxis, alle Infrastrukturkonfigurationen als Code zu speichern. GitOps verwendet ein Git-Repository als Single-Source-of-Truth (SSOT) für Infrastrukturdefinitionen. Git verfolgt alle Änderungen im Codemanagement.

  • PRs oder MRs: GitOps verwendet Pull Requests (PRs) oder Merge-Anfragen (MRs) als Änderungsmechanismus für alle Infrastruktur-Updates. Hier können Teams via reviews und Kommentare zusammenarbeiten und hier finden formelle Genehmigungen statt.

  • CI/CD: GitOps automatisiert Infrastruktur-Updates mithilfe eines Git-Workflows mit kontinuierlicher Integration (Continuous Integration, CI) und kontinuierlicher Bereitstellung (Continuous Delivery, CD). Wenn neuer Code zusammengeführt wird, führt die CI/CD-Pipeline die Änderung in der Umgebung durch. Jegliche Konfigurationsabweichungen, wie manuelle Änderungen oder Fehler, werden durch die GitOps-Automatisierung überschrieben, sodass die Umgebung auf den in Git definierten gewünschten Zustand konvergiert und somit einen kontinuierlichen Betrieb (Continuous Operations, CO) gewährleistet:

GitOps gibt es bereits seit einigen Jahren, aber aufgrund von Containern und der Komplexität, die mit der konsistenten Bereitstellung und Verwaltung von Container-Laufzeitumgebungen einhergeht, hat es in letzter Zeit an Bedeutung gewonnen.

Welches Problem versucht GitOps zu lösen? Nun ja, es automatisiert Softwareprozesse, damit Unternehmen ihre Softwareentwicklungsfähigkeiten verbessern können. Es ermöglicht Anwendungsteams, häufiger zu veröffentlichen und cloudnative Anwendungen effektiver zu betreiben.

     
    Abbildung 2. CI/CD/CO
    Abbildung 2. CI/CD/CO

    GitOps in Red Hat OpenShift

    Red Hat OpenShift-Operatoren vereinfachen die Installation und automatisierte Orchestrierung komplexer Workloads. Sie helfen dabei, die menschliche Betriebslogik zu kodieren, um Services zu verwalten, die als Kubernetes-native Anwendungen laufen, und erleichtern so den Betrieb am zweiten Tag. Der Operator ist eine Software, die in einem Pod auf dem Cluster ausgeführt wird und mit dem Kubernetes-API-Server interagiert. Ein OpenShift-Operator ist im Wesentlichen ein benutzerdefinierter Controller und kann in der Praxis ein anwendungsspezifischer Controller sein.

    IBM DevOps

    Was ist DevOps?

    Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

    GitOps-Operator

    Red Hat OpenShift erleichtert Entwicklern, die GitOps nutzen möchten, die Arbeit, indem es die erforderlichen Operatoren bereitstellt. Nach der Bereitstellung können sie dann im Abschnitt „Installierte Operatoren“ in der OpenShift-Konsole angezeigt werden. Der Red Hat OpenShift GitOps Operator ist der vorgelagerte Operator für ArgoCD, und der ebenfalls bereitgestellte Red Hat OpenShift Pipelines Operator ist der vorgelagerte Operator für Tekton. Siehe Abbildung 3:

    Abbildung 3. GitOps-bezogene Operatoren in Red Hat OpenShift.
    Abbildung 3. GitOps-bezogene Operatoren in Red Hat OpenShift.

    Die Operatoren und zugehörigen APIs können dann verwendet werden, um eine oder mehrere GitOps-Pipelines zu starten, die in verschiedenen Umgebungen bereitgestellt werden können und das gewünschte Konfigurationsergebnis aus Git abrufen. Bei den Umgebungen kann es sich um die üblichen Entwicklungs-, Test- und Produktionsumgebungen handeln, sie können aber auch geografische Umgebungen wie die Unternehmenscloud, Telekommunikationsnetzwerke oder Edge-Computing-Knoten umfassen.

    Die Bereitstellungsressourcen werden in drei Bereiche unterteilt: Infrastruktur, Services und Anwendungen. Diese Bereiche erleichtern die Trennung und Verwaltung der Bereitstellung von zusammenhängenden Ressourcen:

    • Infrastruktur ist der Ort, an dem die erforderlichen Namespaces und Speichereinheiten definiert werden.
    • Unter Services werden die verschiedenen Operatoren beschrieben, die zum Einrichten der Instanzen erforderlich sind.
    • Unter Anwendungen werden die bereitzustellenden Anwendungen aufgeführt.

    GitOps im Edge Computing

    Cloud-/Unternehmens-Rechenzentrum

    Edge Computing führt in den meisten IT-Zentren zu einer zunehmenden Verbreitung von OpenShift- oder Kubernetes-Clustern. Es hat das Potenzial, eine enorme Größenordnung von Hunderten bis Tausenden von Bereitstellungen pro Kunde zu erreichen. Das Ergebnis ist, dass IT-Abteilungen in Unternehmen mehrere unabhängige oder kooperative Container-Laufzeit-Cluster verwalten müssen, die On-Prem und/oder in Public Clouds ausgeführt werden.

    Sicherzustellen, dass Cluster denselben gewünschten Zustand aufweisen – das Ausrollen einer Änderung und das Zurücksetzen einer Änderung in mehreren Clouds – ist ein wesentlicher Vorteil, den GitOps für Edge- und IoT-basierte Unternehmen bietet.

    Netzwerk-Edge

    Das GitOps-Paradigma ist am Netzwerkrand anwendbar, da eine der größten Herausforderungen für Kommunikationsdienstleister (CSPs) darin besteht, ihre Netzwerke zu orchestrieren, zu automatisieren und zu verwalten. Während 5G für Verbraucher ein Segen ist, stellen softwaredefinierte Netzwerke (SDNs), Network Slicing mit unterschiedlichen Bandbreiten und eine schnellere Bereitstellung die Telekommunikationsanbieter vor Herausforderungen.

    Eine automatisierte Bereitstellungspipeline ist eine Möglichkeit für CSPs, ihren Kunden Dienste schneller zur Verfügung zu stellen. Ein zentrales Repository und ein deklarativer Ansatz für die Bereitstellung der Container-Infrastruktur bedeuten eine schnellere Markteinführung neuer Funktionen und Änderungsanforderungen. Ein solches Paradigma wird die Bereitstellung von VNFs (Virtual Network Functions) und CNFs (Cloud-Native Network Functions) am Netzwerkrand unterstützen. Die Containerisierung von Netzwerkkomponenten ermöglicht die Verwaltung solcher Funktionen. Da alle Konfigurationsaktivitäten protokolliert und in Git gespeichert werden, ist die Möglichkeit, Änderungen nachzuverfolgen, für Compliance- und Audit-Zwecke von entscheidender Bedeutung. In den Referenzen finden sich einige verwandte Blogs von WeaveWorks:

    Abbildung 4. GitOps in Edge-Computing.
    Abbildung 4. GitOps in Edge-Computing.

    Unternehmens-Edge

    Mit GitOps können Unternehmen gleichzeitig auf mehrere Ziele bereitstellen. Es ermöglicht die Einführung detaillierter Bereitstellungen. Dies wäre äußerst nützlich bei der Bereitstellung von Anwendungen auf Hunderten und Zehntausenden von Edge-Knoten, die unterschiedliche Formen und Formfaktoren aufweisen und verschiedene Kommunikationsprotokolle verwenden – insbesondere wenn es sich bei den Edge-Knoten um kleine Edge-Cluster handelt, die einen Intel NUC oder NVIDIA Jetson verwenden.

    Das GitOps-Framework kann beim Bereitstellen von Anwendungen und der Nutzung des Git-Repositorys als Single-Source-of-Truth (SSOT) von Vorteil sein. ITOps-Teams streben eine autonome Bereitstellung, Verwaltung und den Betrieb von Edge-Knoten an, was durch den Einsatz von Red Hat OpenShift-Operatoren erleichtert wird.

    Geräte-Edge (oder „Far Edge“)

    Der Nutzen von GitOps liegt am Netzwerk- und Unternehmens-Edge auf der Hand. Die Geräte am äußersten Rand stellen eine besondere Herausforderung dar, da die Speicher- und Rechenkapazität einiger dieser Geräte nicht ausreicht, um GitOps-Dienste zu hosten und Anwendungen auszuführen.

    Die Veröffentlichung von leichtgewichtigen Kubernetes-Distributionen wie K3s und K0s ist für IoT- und Edge-Anwendungsfälle gedacht. Die Möglichkeit, eine schlanke Kubernetes-Distribution auf einem Edge-Gerät einzusetzen, ermöglicht es uns, ein GitOps-Tool wie Argo CD auszuführen. Das/die Gerät(e) kann/können dann das Pull-Modell anwenden, um ein Git-Repository nach dem gewünschten Zustand abzufragen und diesen mit dem Live-Zustand des Clusters zu synchronisieren.

    Autor

    Ashok Iyengar

    Executive Cloud Architect

    Verwandte Lösungen
    IBM Instana Observability

    Nutzen Sie die Leistungsfähigkeit von KI und Automatisierung, um Probleme im gesamten Anwendungs-Stack proaktiv zu lösen.

    IBM Instana Observability kennenlernen
    DevOps-Lösungen

    Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

    DevOps-Lösungen erkunden
    Cloud-Beratungsleistungen

    Geschäftsagilität und -wachstum beschleunigen: Modernisieren Sie Ihre Anwendungen mit unseren Cloud-Consulting-Services durchgehend auf jeder Plattform.

    Erkunden Sie Cloud-Beratungsleistungen
    Machen Sie den nächsten Schritt

    Von proaktiver Erkennung mit IBM Instana bis hin zu Echtzeit-Erkenntnissen in Ihrem Stack können Sie cloudnative Anwendungen zuverlässig am Laufen halten.

    1. IBM Instana entdecken
    2. DevOps-Lösungen erkunden