Jump to section

Was ist Multi-Cloud GitOps?

URL kopieren

GitOps ist eine Kombination von Prinzipien, die Ihren Workflow leiten und Ihnen die Implementierung von Continuous Deployment (CD) für cloudnative Anwendungen ermöglichen. Es unterstützt Sie bei der Verwaltung Ihrer Clusterkonfiguration und bei Anwendungs-Deployments, indem ein zuvor manueller Prozess automatisiert wird. GitOps kann Sie beispielsweise bei der Verwaltung von Red Hat® OpenShift® Container Platform-Clustern in Kubernetes-Umgebungen mit mehreren Clustern unterstützen. GitOps automatisiert Deployments unabhängig von deren Komplexität und macht damit Anwendungs-Workflows effizienter.

GitOps kann das Deployment einer neuen oder die Aktualisierung einer bestehenden Anwendung unterstützen. Sie aktualisieren das Repository, und ein GitOps-Workflow kann weitere Schritte automatisieren. 

Konkret ermöglicht GitOps:

  • Die Verwaltung von Hybrid- und Multi-Cloud-Deployments in Public und Private Clouds
  • Cluster-übergreifende Governance und Application Lifecycle Management
  • Sichere Verwaltung vertraulicher Daten im gesamten Deployment

Diese Funktionen tragen zur Bewältigung der mit einem Multi-Cloud-Ansatz einhergehenden Herausforderungen bei. Dazu gehören Konsistenz, Sicherheit und Zusammenarbeit, die bei der Verlagerung von Workloads zwischen Public Cloud, Private Cloud und sogar lokalen Umgebungen erforderlich sind. 

Bei GitOps ist das Git-Repository die „Single Source of Truth“ für die System- und Anwendungskonfiguration. Es besteht aus einer deklarativen Beschreibung der Infrastruktur für Ihre Umgebung und arbeitet mit automatisierten Prozessen zusammen, die von GitOps-Tools wie Argo CD gesteuert werden. Diese Automatisierung sorgt dafür, dass der tatsächliche Zustand Ihrer Umgebung dem beschriebenen Zustand entspricht. Sie können das Repository auch verwenden, um die Liste der Änderungen am Systemstatus anzuzeigen, da die Git-Historie die Nachverfolgung von Änderungen ermöglicht. 

Darüber hinaus kann die Speicherung Ihrer Infrastruktur und Konfiguration als Code dazu beitragen, unübersichtliche Strukturen zu reduzieren. Sie können die Konfiguration von Clustern und Anwendungen als Code in Git-Repositories speichern. 

Unternehmen müssen Anwendungen in einer offenen Hybrid Cloud auf stabile, einfache und sichere Weise entwickeln, bereitstellen und betreiben. Dazu benötigen sie eine hybride Strategie, die Multi-Cloud-Deployments umfasst. 

Der Multi-Cloud-Ansatz ist mit erheblichen Herausforderungen verbunden. So stellen beispielsweise verschiedene Cloud-Anbieter unterschiedliche Tools zur Verfügung, die möglicherweise nicht problemlos mit den Angeboten der anderen Anbieter zusammenarbeiten. Infolgedessen kann eine Workload-Migration kostspielig und schwierig werden. Die mangelnde Portierbarkeit führt auch zu höheren Sicherheitsrisiken und Bedenken hinsichtlich des Datenschutzes. 

Viele dieser Herausforderungen lassen sich mit Kubernetes bewältigen. Mit Kubernetes können mehrere Cluster in verschiedenen Cloud-Umgebungen, auch lokal, betrieben werden. Workloads können nahtlos zwischen den Umgebungen verschoben werden, ohne dass die gleichen Migrations- und Sicherheitsprobleme auftreten. 

Workloads in einem solchen Deployment können auf mehreren Clustern und in mehreren Clouds – Private oder Public – ausgeführt werden. Diese Strategie reduziert die bisherigen Herausforderungen, erfordert aber auch einen „Infrastructure-as-Code“-Ansatz. Mit anderen Worten: Eine moderne Multi-Cloud-Strategie erfordert GitOps. 

Wie bereits erwähnt, nutzt GitOps Git-Repositories als Single Source of Truth für die Bereitstellung von Infrastruktur als Code. Übermittelter Code durchläuft zunächst den Prozess der kontinuierlichen Integration (CI), während die kontinuierliche Bereitstellung (CD) die Anforderungen überprüft und anwendet. Änderungen am Code werden nachverfolgt und bieten die gewohnte Versionskontrolle und Revisionsfunktionalität. 

GitOps ermöglicht dabei die Zusammenarbeit zwischen Infrastrukturteams, um den Entwicklungsprozess zu beschleunigen. Im Gegensatz zu manuellen Prozessen, die kostspielig sein können und das Risiko menschlicher Fehler bergen, bringt GitOps mit automatisierten Prozessen Konsistenz in den Multi-Cloud-Ansatz. 

Unternehmen, die einen Multi-Cloud-Ansatz verfolgen, benötigen diese Konsistenz und Sicherheit in ihren Umgebungen. Sie benötigen eine GitOps-Lösung, wie Red Hat OpenShift GitOps.

Red Hat OpenShift GitOps ist ein Operator, der eine Argo-CD-Instanz für Sie installiert und konfiguriert. Es verwaltet Ihre Infrastrukturkonfiguration und Anwendungs-Deployments und organisiert den Deployment-Prozess rund um diese Konfigurations-Repositories. Mindestens zwei Repositories sind für den Prozess immer zentral:

  • Anwendungs-Repository mit dem Quellcode
  • Umgebungskonfigurations-Repository zur Definition des gewünschten Zustands der Anwendung

Zur Verwaltung der Cluster-Ressourcen verwendet Red Hat OpenShift GitOps Argo CD, ein Open-Source-Tool für die kontinuierliche Bereitstellung der kontinuierlichen Integration und Deployment (CI/CD) von Anwendungen. Argo CD fungiert als Controller für Red Hat OpenShift GitOps, indem es die Zustandsbeschreibungen und Konfigurationen der in einem Git-Repository definierten Anwendungen überwacht. Es vergleicht den definierten mit dem tatsächlichen Zustand und meldet dann Konfigurationen, die von der vorgegebenen Beschreibung abweichen. 

Administratoren können auf Grundlage dieser Berichte Konfigurationen wieder in den definierten Zustand versetzen. Dies kann manuell oder automatisch erfolgen. Im Falle einer Automatisierung macht dies die Konfiguration im Wesentlichen „selbstheilend“.

So werden Sie von Red Hat OpenShift GitOps und zugehörigen, automatisierten Prozessen unterstützt:

  • Sicherstellung, dass Cluster ähnliche Zustände für Konfiguration, Überwachung und Speicherung aufweisen
  • Anwendung oder Rücknahme von Konfigurationsänderungen in mehreren Clustern
  • Verknüpfung von Konfigurationsvorlagen mit verschiedenen Umgebungen
  • Deployment von Anwendungen in Clustern, vom Staging bis zur Produktion

Operatoren sind die bevorzugte Methode für das Paketieren, Deployment und Verwalten von Services auf der OpenShift Container Platform Control Plane. GitOps Primer ist beispielsweise ein Operator, der Kubernetes-Objekte exportiert, damit sie in Clustern, Teams und Umgebungen gemeinsam genutzt werden können. Dies ist Teil des Beitrags von GitOps zur Konsistenz, Sicherheit und Zusammenarbeit in einem Multi-Cloud-Konzept. 

Die Operatoren lassen sich in Kubernetes-APIs und Befehlszeilen-Tools (CLI) integrieren, um Anwendungen zu überwachen, Zustandsprüfungen durchzuführen, Over-the-Air-Updates (OTA) zu verwalten und sicherzustellen, dass Anwendungen in dem von Ihnen festgelegten Zustand bleiben.

In OpenShift Container Platform gibt es zwei verschiedene Systeme zur Verwaltung von Operatoren, je nach deren Zweck:

  • Cluster-Operatoren: Diese werden vom Cluster Version Operator (CVO)verwaltet und sind standardmäßig zur Ausführung von Clusterfunktionen installiert.
  • Optionale Zusatzoperatoren: Diese werden vom Operator Lifecycle Manager (OLM) verwaltet und können Benutzern zur Ausführung in ihren Anwendungen zugänglich gemacht werden.

Operatoren helfen Ihnen beim Entwickeln von Anwendungen zur Überwachung der in Ihrem Cluster laufenden Dienste. Sie implementieren und automatisieren Installations- und Konfigurationsvorgänge, die automatische vertikale Skalierung sowie die Erstellung von Backups. Diese Aktivitäten sind in einer Software enthalten, die innerhalb Ihres Clusters ausgeführt wird.

Operatoren bieten:

  • Wiederholbarkeit von Installation und Upgrade
  • Ständige Zustandsüberprüfung von Systemkomponenten
  • Over-the-air (OTA) Updates für OpenShift Komponenten 
  • Einen Ort, an dem Fachwissen gebündelt und nicht nur an ein oder zwei, sondern sämtliche Nutzende weitergegeben wird

GitOps Primer ist ein Operator, der in Ihrem OpenShift-Cluster ausgeführt wird und es Entwicklungsteams ermöglicht, die Kubernetes-Objekte innerhalb eines Namensraums zu exportieren. Er erzeugt eine portable .zip-Datei, die Sie: 

GitOps Primer unterstützt den Infrastructure-as-Code-Ansatz, den GitOps für Multi-Cloud ermöglicht.

Git dient als Single Source of Truth für die Infrastruktur- und Anwendungskonfiguration. Sowohl für die Konfiguration der Infrastruktur als auch für die Anwendungskonfiguration ist der Zugriff auf sensible Daten erforderlich, die meist als „Secrets“ bezeichnet werden (wie etwa Authentifizierungs-Token, private Keys usw.), damit die GitOps-Tools diese Funktion erfüllen können.

Das Speichern der Secrets in Ihrem Git-Repository stellt jedoch eine Sicherheitslücke dar und sollte nicht erlaubt werden, selbst wenn das Repository als privat gilt und Zugriffskontrollen zur Einschränkung des Nutzungskreises enthält. Sobald ein Secret im Klartext (oder in einem leicht umkehrbaren Zustand) an Git weitergegeben wurde, muss es als kompromittiert gelten und sollte sofort aufgehoben werden.

Zur Bewältigung dieser Problematik gibt es in GitOps zwei Hauptarchitekturansätze für die Verwaltung von Secrets:

  • Verschlüsselte Secrets
    • Speichern in Git Repositories
    • Entschlüsselung durch automatisierte Prozesse und Umwandlung in Kubernetes Secrets
  • Verweise auf Secrets werden in Git Repositories gespeichert
    • Abruf der Secrets durch automatisierte Prozesse auf Grundlage dieser Verweise
    • Darstellung der abgerufenen Secrets als Kubernetes Secrets 

Einen detaillierten Einblick in diese beiden Ansätze erhalten Sie in Leitfaden zur Verwaltung von Secrets mit GitOps und Kubernetes.

Sie haben nun ein konzeptionelles Verständnis von Multi-Cloud-GitOps. Erfahren Sie jetzt mehr über das Entwickeln mit GitOps:

Lesen Sie weitere Artikel zu OpenShift GitOps:

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

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