Konto Anmelden
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.

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung über alle Phasen des App-Lifecycles hinweg, von der Integration und Tests bis hin zur Bereitstellung und Implementierung.

ARTIKEL

Was ist ein DevOps-Ingenieur?

DevOps-Ingenieure besitzen verschiedene besondere Fähigkeiten und Kenntnisse, die für eine bessere Zusammenarbeit, mehr Innovationen und kulturelle Verschiebungen innerhalb einer Organisation sorgen können. 

Mehr über DevOps erfahren

Produkte

Red Hat Open Innovation Labs

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.

Red Hat Consulting

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

Checkliste

Unternehmensautomatisierung mit DevOps-Methoden

Whitepaper

Optimierung von CI/CD-Pipelines mit der Red Hat Ansible Automation Platform

Illustration - mail

Möchten Sie mehr zu diesen Themen erfahren?

Abonnieren Sie unseren kostenlosen Newsletter, Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produkte

Tools

Testen, kaufen, verkaufen

Kommunizieren

Über Red Hat

Als weltweit größter Anbieter von Open-Source-Software-Lösungen für Unternehmen stellen wir Linux-, Cloud-, Container- und Kubernetes-Technologien bereit. Wir bieten robuste Lösungen, die es Unternehmen erleichtern, plattform- und umgebungsübergreifend zu arbeiten – vom Rechenzentrum bis zum Netzwerkrand.

Abonnieren Sie unseren Newsletter, Red Hat Shares

Jetzt anmelden

Wählen Sie eine Sprache

© 2022 Red Hat, Inc. Red Hat Summit