Jump to section

Was ist GitOps?

URL kopieren

Red Hat ausgezeichnet als Leader im 2023 Gartner® Magic Quadrant™

Red Hat wurde im Gartner 2023 Magic Quadrant für Container Management hinsichtlich der Ausführungsfähigkeit und der umfassenden Vision bestplatziert.

GitOps nutzt Git-Repositories als Single Source of Truth für die Bereitstellung von Infrastruktur als Code. Der eingereichte Code wird vom CI-Prozess geprüft, während der CD-Prozess Anforderungen für Sicherheit, Infrastruktur als Code oder andere für das Anwendungs-Framework festgelegte Grenzen prüft und anwendet. Sämtliche Codeänderungen werden nachverfolgt. So werden Updates vereinfacht und eine Versionskontrolle ermöglicht, falls ein Rollback erforderlich sein sollte.

GitOps bietet:

  • Einen standardisierten Workflow für die Anwendungsentwicklung
  • Mehr Sicherheit bei der Festlegung von Anwendungsanforderungen im Vorfeld
  • Verbesserte Zuverlässigkeit mit Transparenz und Versionskontrolle durch Git
  • Konsistenz in unterschiedlichen Clustern, Clouds und On-Premise-Umgebungen

Viele weitere Tools können zusammen verwendet werden, um ein GitOps-Framework aufzubauen. Zum Beispiel Git-Repositories, Kubernetes, CI/CD-Tools (Continuous Integration/Continuous Delivery) und Konfigurationsmanagementtools.

GitOps-Ansatz für kontinuierliche Bereitstellung auf Kubernetes

Erfahren Sie mehr im GitOps Guide to the Galaxy auf OpenShift.tv, jeden zweiten Donnerstag um 21 Uhr

GitOps greift die Philosophien und Ansätze auf, die Investitionen in eine DevOps-Kultur versprechen, und bietet ein Framework für die Umsetzung der Ergebnisse. Laut dem jährlichen State of DevOps Report erzielen Unternehmen mit DevOps erhebliche Verbesserungen bei der Innovationsrate in Anwendungen und Code sowie bei der Stabilität. 

Durch die Verwendung der gleichen Git-basierten Workflows, mit denen Entwicklungsteams vertraut sind, erweitert GitOps die bestehenden Prozesse von der Anwendungsentwicklung bis zur Bereitstellung, dem Lifecycle-Management von Anwendungen und der Infrastrukturkonfiguration. Änderungen während des gesamten Anwendungs-Lifecycles werden im Git-Repository nachverfolgt und sind auditierbar. Das Vornehmen von Änderungen über Git bedeutet für die Entwicklungsteams ein gewisses Maß an Freiheit: Sie können in ihrem eigenen Tempo programmieren, ohne darauf warten zu müssen, dass ihnen Ressourcen zugewiesen oder von den Operations-Teams genehmigt werden.

Durch die Transparenz von Änderungen können die Ops-Teams Probleme schnell nachvollziehen und reproduzieren, wodurch die Sicherheit insgesamt verbessert wird. Mit einem aktuellen Audit-Trail können Unternehmen das Risiko unerwünschter Änderungen reduzieren und diese korrigieren, bevor sie in die Produktion gehen. 

Durch diese Codeänderungen von der Entwicklung bis zur Produktion erhalten Unternehmen mehr Agilität bei der Reaktion auf Veränderungen in der Geschäfts- und Wettbewerbssituation.

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. Mit Ansible können Sie 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.

Worin unterscheiden sich Ansible und Red Hat Ansible Automation Platform?

Möchten Sie Red Hat OpenShift GitOps nutzen?

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. Entwicklungsteams können weiterhin ihre Standard-Workflows und (CI/CD-)Praktiken 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 die 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 die Änderungen, die am System vorgenommen wurden, sehen und nachverfolgen, 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 darum, einen kulturellen Wandel sowie eine bessere Zusammenarbeit zwischen Entwicklungs- 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 Entwicklungsteams können in den Code-Repositories arbeiten, die sie bereits kennen, während das Operations-Team die weiteren notwendigen Teile bereitstellt.

Erfahren Sie mehr auf dem Red Hat Developer Hub

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

  • Zu überprüfen, ob die Cluster ähnliche Zustände aufweisen (Konfigurationen, Überwachung, Storage), wodurch die Anwendungsbeschränkungen bereits in einem frühen Stadium des Entwicklungszyklus bekannt sind
  • Ein Rollback von Codeänderungen in mehreren Clustern durchzuführen, indem die Cluster in einem bekannten Status wiederhergestellt werden
  • Eine an Git übermittelte Änderung in mehreren Red Hat OpenShift Clustern zu implementieren
  • Konfigurationen mit Vorlagen in der Hybrid Cloud zu verknüpfen.

 

GitOps Red Hat OpenShift Kubernetes diagram
 

Red Hat arbeitet gemeinsam mit Open Source-Projekten wie ArgoCD und Tekton an der Implementierung eines Frameworks für GitOps. Installieren Sie den OpenShift Pipelines Operator von Red Hat und erfahren Sie, wie der OpenShift GitOps Operator von Red Hat neue Tools mit Argo entwickelt, um GitOps innerhalb bestehender Deployments von Red Hat OpenShift zu verwalten.


Red Hat OpenShift Service on AWS (ROSA) ist eine vollständig gemanagte und sofort einsatzbereite Anwendungsplattform, mit der Unternehmen Anwendungen in einer nativen AWS-Umgebung schnell entwickeln, bereitstellen und skalieren können. Dadurch können sie die betriebliche Effizienz verbessern und sich wieder auf Innovationen konzentrieren. 

Konkret unterstützt ROSA Teams beim Verwalten von Clustern in mehreren Regionen, beim Erstellen und Bereitstellen von Clustern mit Self-Service-Tools und beim Automatisieren von Sicherheits-Patches und -upgrades. So erleichtert ROSA beispielsweise die Modernisierung von Anwendungen, da Administrations- und Infrastrukturteams damit dieselben Vorteile erhalten wie Anwendungsinhaber.


Red Hat Advanced Cluster Management for Kubernetes bietet Multi-Cluster-Management für den Lifecycle von Kubernetes-Clustern. Red Hat Advanced Cluster Management verwendet ein Subskriptions- und Channel-Framework sowie Platzierungsregeln, um Anwendungen automatisch in einem gewünschten Zustandsmodell in mehreren Clustern bereitzustellen.


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 Ansible Playbooks, die in YAML programmiert sind, beschreiben Sie den gewünschten Zustand Ihrer Systeme, die normalerweise der Versionskontrolle unterliegen. 

Mit 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 Ansible Automation Platform integriert, um IaC- and GitOps-Praktiken zu unterstützen. Mithilfe von Webhooks können Sie ein Git-Repository nativ mit 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 Automatisierungsjobs ausgelöst, die Projekte aktualisieren, Inventories managen und Deployments durchführen.

Durch die Integration von Red Hat Advanced Cluster Management, Red Hat OpenShift GitOps und Red Hat Ansible Automation Platform können DevOps-Teams Konfigurationen in großem Umfang verwalten und pflegen, um CI/CD-Pipelines zu verbessern.

Weiterlesen

Blog

Red Hat OpenShift Pipelines and OpenShift GitOps are now Generally Available

Red Hat OpenShift Pipelines und OpenShift GitOps sind die Basis für cloudnative CI/CD und GitOps auf Red Hat OpenShift Container Platform.

Artikel

Was ist CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung während des gesamten Anwendungs-Lifecycles, von der Integration und Tests bis hin zu Bereitstellung und Deployment.

Blog

Understanding GitOps with Red Hat Advanced Cluster Management

Erfahren Sie, wie Sie mit GitOps mehr Anwendungen in verschiedenen Clouds bereitstellen können.

Mehr über DevOps erfahren

Produkte

Ein fokussierter Intensiv-Workshop mit Red Hat Experten, bei dem Sie lernen, eine agile Methodik und Open Source-Tools zu verwenden, um die geschäftlichen Probleme Ihres Unternehmens anzugehen.

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Ressourcen