Anmelden / Registrieren Konto
Jump to section

Was ist GitOps?

URL kopieren

GitOps umfasst mehrere Praktiken, mit denen Infrastruktur- und Anwendungskonfigurationen gemanagt werden – mithilfe von Git, einem Open Source-System für die Versionskontrolle. Bei GitOps wird Git als „Single Source of Truth“ für deklarative Infrastrukturen und Anwendungen verwendet.

Mithilfe von Git-Pull-Anfragen werden dabei die Provisionierung und das Deployment der Infrastruktur automatisch gemanagt. Da der gesamte Zustand des Systems im Git Repository enthalten ist, können alle Änderungen des Systemzustands eingesehen und geprüft werden.

GitOps orientiert sich am Entwickler-Erlebnis und unterstützt die Teams dabei, die Infrastruktur mit denselben Tools und Prozessen zu managen, die sie für die Softwareentwicklung verwenden. Abgesehen von Git haben Sie mit GitOps die Möglichkeit, die Tools zu wählen, die Sie benötigen.

Der Begriff GitOps geht auf das Softwareunternehmen Weaveworks zurück.

Für Ihren Einstieg in GitOps brauchen Sie eine Infrastruktur, die deklarativ gemanagt werden kann. Daher wird GitOps oft als Betriebsmodell für Kubernetes und die cloudnative Anwendungsentwicklung verwendet und kann Continuous Deployment für Kubernetes aktivieren.

Die Verwendung von Kubernetes ist aber für GitOps nicht zwingend erforderlich. GitOps lässt sich auch auf andere Infrastruktur- und Deployment-Pipelines anwenden.   

Wie Kubernetes so ist auch Ansible eine Engine, die zum Erreichen des gewünschten Zustands eine deklarative Modellierung von traditionellen IT-Systemen ermöglicht und daher für GitOps verwendet werden kann. Ein Ansible-Nutzer kann Anwendungen auf Kubernetes, auf einer bestehenden IT-Infrastruktur oder – über eine Steuerungsebene mit Ansible-Modulen – auf beiden managen.

Mit GitOps lassen sich außerdem Entwicklungs-Pipelines erstellen, Anwendungen codieren, Konfigurationen managen, Kubernetes-Cluster bereitstellen und Deployments auf Kubernetes oder Container-Registries vornehmen.

GitOps kann als Weiterentwicklung im Bereich IaC (Infrastructure as Code) angesehen werden, bei der Git als Versionskontrollsystem für Infrastrukturkonfigurationen verwendet wird. IaC folgt beim Infrastrukturmanagement oft einem deklarativen Ansatz, indem der gewünschte Zustand des Systems definiert und der aktuelle Zustand nachverfolgt wird.

Wie bei IaC, so müssen Sie auch bei GitOps den gewünschten Zustand des Systems deklarativ beschreiben. Die Verwendung von deklarativen Tools ermöglicht die Versionskontrolle all Ihrer Konfigurationsdateien und Ihres gesamten Quellcodes in Git.

CI/CD-Pipelines werden normalerweise von einem externen Event ausgelöst, beispielsweise wenn Code per Push in ein Repository verschoben wird. In einem GitOps-Workflow erfolgen Änderungen über Pull-Anfragen, die den Zustand im Git Repository ändern. 

Um ein neues Release mit einem GitOps-Workflow einzuführen, wird in Git eine Pull-Anfrage gestellt, die Änderungen am deklarierten Zustand des Clusters vornimmt. Der GitOps-Operator, der zwischen der GitOps-Pipeline und dem Orchestrierungssystem sitzt, erfasst den Commit und holt sich die neue Deklaration des Zustands per Pull von Git.   

Sobald die Änderungen genehmigt und zusammengeführt wurden, werden sie automatisch auf die Live-Infrastruktur angewendet. Entwickler können dadurch ihre Standard-Workflows und Ihre CI/CD-Praktiken (Continuous Integration/Continuous Delivery) weiterhin verwenden. 

Wird GitOps mit Kubernetes verwendet, ist der Operator oft ein Kubernetes-Operator.

Der Operator vergleicht den gewünschten Zustand im Repository mit dem aktuellen Zustand der bereitgestellten Infrastruktur. Wenn sich der aktuelle Zustand von dem unterscheidet, was sich im Repository befindet, aktualisiert der Operator die Infrastruktur. Der Operator kann außerdem ein Container-Image-Repository überwachen und Updates vornehmen, um neue Images bereitzustellen.

Beobachtbarkeit ist ein wichtiges Konzept in GitOps und bezieht sich auf alle Systeme, die sich beobachten lassen. Durch die Beobachtbarkeit in GitOps können Sie sicherstellen, dass der gewünschte Zustand und der beobachtete Zustand (oder der aktuelle Zustand) übereinstimmen. 

Pull-Anfragen und ein Versionskontrollsystem wie Git sorgen für Transparenz im Deployment-Prozess. So können Sie alle Änderungen sehen und nachverfolgen, die am System vorgenommen wurden, erhalten einen Audit-Trail und können, wenn nötig, Änderungen per Rollback wieder rückgängig machen.

GitOps-Workflows können die Produktivität und Geschwindigkeit von Entwicklung und Deployments erhöhen und gleichzeitig für stabilere und zuverlässigere Systeme sorgen.

GitOps und DevOps haben einige gemeinsame Prinzipien und Ziele. Bei DevOps geht es mehr darum, einen kulturellen Wandel sowie eine bessere Zusammenarbeit zwischen Entwickler- und Operations-Teams zu ermöglichen.

GitOps gibt Ihnen Tools und ein Framework an die Hand, mit dem Sie DevOps-Praktiken wie Zusammenarbeit, CI/CD und Versionskontrolle auf die Infrastrukturautomatisierung und das Deployment von Anwendungen anwenden können. 

Die Entwickler können in den Code-Repositories arbeiten, die sie bereits kennen, während das Operations-Team alle weiteren notwendigen Teile bereitstellt.

Red Hat® OpenShift® ist eine deklarative Kubernetes-Plattform, die Administratoren nach GitOps-Prinzipien konfigurieren und managen können. Durch eine Infrastruktur und Anwendungen, die auf Kubernetes basieren, lässt sich eine Konsistenz für alle Cluster und Entwicklungs-Lifecycles erreichen. Red Hat OpenShift konsolidiert die Administration und das Management von Anwendungen in allen lokalen und Public Cloud-Ressourcen.

Red Hat OpenShift GitOps ist ein Add-On, das Argo CD und andere Tools bietet, mit denen Ihre Teams GitOps-Workflows für die Konfiguration von Clustern und die Bereitstellung von Anwendungen einführen können. 

Die Red Hat Ansible Automation Platform ist eine Engine, die zum Erreichen des gewünschten Zustands eine deklarative Modellierung von herkömmlichen Systemen ermöglicht. Mit Ansible Playbooks, die in YAML programmiert sind, beschreiben Sie den gewünschten Zustand Ihrer Systeme, die normalerweise der Versionskontrolle unterliegen. Die Red Hat Ansible Automation Platform übernimmt die Aufgabe, Ihre Systeme in den gewünschten Zustand zu versetzen, und zwar unabhängig vom aktuellen Status. 

Mit der Ansible Automation Platform können Sie neben Kubernetes auch GitOps-Praktiken auf traditionelle IT-Systeme wie Netzwerk-, Cloud- und Bare Metal-Systeme anwenden. Automatisierungs-Webhooks sind in die Ansible Automation Platform integriert, um IaC- and GitOps-Praktiken zu unterstützen. 

Mithilfe von Webhooks können Sie ein Git Repository nativ mit der Ansible Automation Platform verbinden. Sobald ein Repository-Link eingerichtet ist, erfasst die Ansible Automation Platform Git-Commits aus dem Git-System. Mit diesen Events werden Automatisierungs-Jobs ausgelöst, die Projekte aktualisieren, Inventories managen und Deployments durchführen.

Mehr erfahren

Artikel

Was ist CI/CD?

CI/CD ist eine Methode, durch die den Kunden regelmäßig Apps bereitgestellt werden, indem alle Phasen der Anwendungsentwicklung automatisiert werden. Die Hauptkonzepte von CI/CD sind Continuous Integration, Continuous Delivery und Continuous Deployment.

Artikel

Was ist IaC (Infrastructure as Code)?

Mit IaC (Infrastructure as Code) wird die Infrastruktur durch Code – und nicht durch manuelle Prozesse – verwaltet und provisioniert. Mit IaC werden Konfigurationsdateien erstellt, die Infrastrukturspezifikationen enthalten, wodurch Sie Konfigurationen einfacher bearbeiten und verteilen können. 

Thema

DevOps

Das DevOps-Konzept umfasst die Aspekte Unternehmenskultur, Automatisierung und Plattformdesign und hat das Ziel, den geschäftlichen Mehrwert und die Reaktionsfähigkeit durch die schnelle Bereitstellung hochwertiger Services zu steigern. Damit dieser Ansatz funktioniert, müssen Entwicklungs- und Operations-Teams zusammenarbeiten.

Einstieg in GitOps-Lösungen

Red Hat OpenShift

Eine unternehmensfähige Kubernetes-Container-Plattform, auf der Operationen für den gesamten Stack automatisiert werden, um Hybrid Clouds, Multi-Clouds und Edge-Deployments noch einfacher verwalten zu können. 

Red Hat Ansible Automation Platform

Eine Plattform für die Entwicklung und Ausführung automatisierter Prozesse im gesamten Unternehmen. Die Plattform umfasst alle Tools, die zur Implementierung unternehmensweiter Automatisierungsprozesse erforderlich sind.

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.