Lesezeit: 3 Minuten

CI-Ops vs. GitOps: Vergleich und Auswahl des richtigen Ansatzes


Die kontinuierliche Integration und Auslieferung (Continuous Integration/Continuous Deployment, CI/CD) hat sich in der Softwareentwicklung als unverzichtbarer Bestandteil etabliert. Dabei werden verschiedene Ansätze verwendet, um den Entwicklungsprozess zu automatisieren und effizienter zu gestalten. Zwei populäre Ansätze sind CI-Ops und GitOps. Während CI-Ops traditionell in der Softwareentwicklung eingesetzt wird, hat sich GitOps als bevorzugter Ansatz für die Infrastrukturautomatisierung etabliert. In diesem Blogartikel werden wir die typischen Anwendungsbereiche der beiden Ansätze vergleichen und diskutieren, warum CI/CD auch mit dem GitOps-Ansatz in der Softwareentwicklung möglich ist.

Erfahrungsbericht

In meinen Kundenprojekten konnte ich erfolgreich den GitOps-Ansatz zur automatisierten Einrichtung der Infrastruktur verwenden. Durch die Verwaltung der Infrastrukturkonfiguration als Code in einem Git-Repository war es möglich, effizientere Prozesse und eine robuste Infrastruktur zu schaffen. Die Umstellung auf GitOps führte zu schnelleren Bereitstellungen, hoher Flexibilität und positivem Kundenfeedback.

Gegenüberstellung

CI-Ops konzentriert sich auf die kontinuierliche Integration und den Betrieb. Es automatisiert den Integrationsprozess von Codeänderungen und ermöglicht eine schnelle und effiziente Bereitstellung von Anwendungen. Der Einsatz von Tools wie Jenkins unterstützt die Automatisierung von Build-, Test- und Bereitstellungsprozessen.

GitOps hingegen nutzt das Git-Repository als zentrale Steuerungseinheit für den Bereitstellungsprozess. Mit Tools wie ArgoCD und Tekton ermöglicht GitOps eine deklarative Bereitstellung, bei der der gewünschte Zustand der Infrastruktur im Git-Repository definiert wird. Änderungen im Repository lösen automatisch Bereitstellungsaktionen aus.

Die Gegenüberstellung der beiden Ansätze zeigt Unterschiede und Vorteile:

1. CI-Ops:

  • Fokus auf Integration und Deployment
  • Automatisierung von Build-, Test- und Bereitstellungsprozessen
  • Verbesserte Zusammenarbeit zwischen Entwicklungs- und Betriebsteams
  • Geeignet für Projekte mit häufigen Codeänderungen und Anforderungen an schnelle Bereitstellung

2. GitOps:

  • Verwendung des Git-Repositories als zentrale Steuerungseinheit
  • Deklarative Bereitstellung und automatische Aktualisierung der Infrastruktur
  • Bessere Nachvollziehbarkeit und Konsistenz der Bereitstellung
  • Geeignet für Projekte, die auf stabile und reproduzierbare Infrastruktur setzen
     

Entscheidungsfindung

Die Entscheidung, welcher Ansatz gewählt wird, hängt von den spezifischen Anforderungen und Zielen des Projekts ab.

Für Projekte mit häufigen Codeänderungen und der Notwendigkeit einer schnellen Bereitstellung kann CI-Ops die richtige Wahl sein. Die Automatisierung von Build-, Test- und Bereitstellungsprozessen mit Jenkins ermöglicht eine effiziente Entwicklung und Bereitstellung.

Für Projekte, die auf stabile und reproduzierbare Infrastruktur setzen und eine bessere Nachvollziehbarkeit der Bereitstellung benötigen, ist GitOps mit ArgoCD und Tekton eine gute Option. Die Verwendung des Git-Repositories als Steuerungseinheit bietet eine klare Sicht auf den gewünschten Zustand der Infrastruktur und ermöglicht eine automatische Aktualisierung.

Für Projekte auf der OpenShift-Plattform bietet RedHat Operatoren für Tekton (OpenShift Pipelines) und ArgoCD (OpenShift GitOps) an. Diese installieren Custom Resource Definitions und nach Wunsch sogar vollständige Instanzen auf dem Cluster. Unsere Experten können je nach Projektanforderungen maßgeschneiderte Instanzen auf Ihren Clustern einrichten, unter Berücksichtigung der bewährten Best Practices von RedHat.

Bei neuen Projekten außerhalb des Prototyping-Bereichs ist es ratsam, den GitOps-Ansatz zu bevorzugen, da er eine bessere Transparenz, Nachvollziehbarkeit und Konsistenz bei der Bereitstellung bietet. Durch die Verwendung von Tools wie ArgoCD und Tekton kann von Anfang an eine effektive Pipeline-Orchestrierung und deklarative Bereitstellung implementiert werden.

Insgesamt hängt die Wahl des richtigen Ansatzes von den spezifischen Anforderungen und Präferenzen des Projekts ab. Sowohl CI-Ops als auch GitOps bieten Vorteile in Bezug auf Automatisierung, Zusammenarbeit und Effizienz, und die Entscheidung sollte anhand der Projektanforderungen und -ziele getroffen werden.

Beispiele

Dies sind einfache Beispiele, die den Aufbau der Pipeline-Definitionen in YAML für Jenkins (CI-Ops) und Tekton / ArgoCD (GitOps) zeigen.

In der Jenkins Pipeline werden die Stufen "Build", "Test" und "Deploy" definiert, wobei die Schritte zur Codekompilierung, Tests und Bereitstellung angegeben werden.

Im Gegensatz dazu verwendet die Tekton / ArgoCD Pipeline separate Aufgaben ("git-clone", "build-and-test", "deploy"), die jeweils auf spezifische Task-Definitionen verweisen, um die Schritte des Git-Repository-Clonens, des Build- und Testvorgangs sowie der Bereitstellung durchzuführen.

Abbildung 1: Beispiel für eine Jenkins Pipeline (CI-Ops)

Abbildung 2: Beispiel für eine Tekton Pipeline (GitOps)

In diesem Beispiel wird der Tekton Task "deploy" definiert. Der Task akzeptiert Parameter für die Image-URL, den Artifactory-Benutzernamen und das Artifactory-Passwort.

Der erste Schritt "login-to-artifactory" verwendet das Bild "docker.io/jfrog/jfrog-cli:v1.47.1" und konfiguriert die JFrog CLI mit den angegebenen Artifactory-Zugangsdaten.

Der zweite Schritt "push-to-artifactory" verwendet ebenfalls das Bild "docker.io/jfrog/jfrog-cli:v1.47.1" und verwendet die JFrog CLI, um das Image an die angegebene Image-URL in das Artifactory-Repository hochzuladen.

Der letzte Schritt "argocd-deploy" verwendet das Bild "argoproj/argocd-cli:v2.1.2" und führt den Befehl "argocd app sync my-app" aus, um das Deployment der Anwendung "my-app" über ArgoCD auszulösen.

Abbildung 3: Beispiel für einen Tekton Task um das Image in Artifactory zu pushen und ArgoCD zu triggern (GitOps)

In diesem Beispiel wird das ArgoCD App-Projekt "my-app-project" definiert. Das Projekt definiert die Konfigurationen und Berechtigungen für die Anwendungen, die diesem Projekt zugeordnet sind.

Abbildung 4: Beispiel für ein ArgoCD App Project

Die Application-Definition definiert die Details der Anwendung. Sie gibt den Server-URL von ArgoCD an, den Ziel-Namespace, das Projekt, den Repo-URL und den Pfad zur Anwendung im Repository sowie die Zielrevision. Die syncPolicy ist auf automatisiert eingestellt, was bedeutet, dass das Deployment automatisch durchgeführt wird.

Es ist wichtig anzumerken, dass die genauen Werte und Konfigurationen in den YAML-Dateien je nach den spezifischen Anforderungen und Umgebungen angepasst werden sollten.

Fazit

Die Wahl zwischen GitOps und CI-Ops hängt von den spezifischen Rahmenbedingungen ab. Aus unseren Kundenprojekten haben wir wertvolle Auswahlkriterien und Entscheidungshilfen gewonnen. Es ist wichtig, klare Ziele zu formulieren und das Vorgehen daran auszurichten. Mit einer fundierten Entscheidung und konsequentem Umsetzen steht einer erfolgreichen Auslieferungsstrategie nichts mehr im Weg. Die Automatisierung von CI/CD-Prozessen mit GitOps oder CI-Ops bietet erhebliche Vorteile für die Effizienz und Qualität der Softwareentwicklung. Die richtige Wahl des Ansatzes in Verbindung mit klaren Zielen bildet die Grundlage für erfolgreiche Projekte.

Blogautor

Sebastian Meindorfer
Cloud Engineer ARS Computer und Consulting GmbH
Ihr Erfolg ist unser Ziel

Stehen Sie vor komplexen IT-Projekten? Mit unserer Expertise bieten wir Ihnen maßgeschneiderte Lösungen. Erfahren Sie mehr.

Werde Teil unseres Teams

Wir suchen ständig nach neuen Talenten. Für dich haben wir genau die richtige Stelle. Schau dir unsere offenen Positionen an.

Noch Fragen? Wir helfen Ihnen gerne!

Kompetenz 29.07.21

DevOps und CI / CD

Eine DevOps Einführung gewinnt durch die Begleitung unserer Experten an Fahrt und Focus. Wir nehmen die Initiativen auf und erfassen den Kontext des Unternehmens.

Leistung

Cloud Native

Mit Cloud Native auf dem Weg zum modernen Unternehmen: Der Cloud-Native-Ansatz ermöglicht die Entwicklung und den Betrieb in der Cloud. Dein Vorteil: Einfache Skalierung und schnelle Deployments.

senior man stares through glasses
Lösung 31.08.23

Anthos-Integration für konsistente Cloud-native Anwendungen

Entdeckt Anthos, die cloudbasierte Container-Plattform, die moderne Apps überall konsistent und skalierbar ausführt. CLOUDPILOTS unterstützt Euch bei der nahtlosen Integration.

Blog 12.01.24

Infrastructure as Code (IaC)

Erfahren Sie alles über Infrastructure as Code (IaC) und die neuesten Entwicklungen in der Cloud-Infrastrukturverwaltung mit Tools wie Terraform und Crossplane. Ein Blick auf die Zukunft des Infrastrukturmanagements.

Referenz

Brickwise: Unterstützung beim Software-Rollout-Prozess

Brickwise bringt konkret interessierte Investoren und Immobilienverkäufer auf einem Marktplatz zusammen und ermöglicht ihnen den Handel mit digitalisierten Immobilienanteilen.

Atlassian Logo
Technologie

Bamboo, Bitbucket, Sourcetree

Continuous Integration und eine Continuous Delivery Pipeline mit Bamboo, Bitbucket und Sourcetree. Wir können Sie mit unserer jahrelangen Erfahrung als Anwender sowie als Solution Partner von Atlassian Produkten in vielen Bereichen helfen.

Blog 24.10.24

DevOps und APIOps in der Praxis: Best Practices

Wie lassen sich DevOps und APIOps erfolgreich kombinieren? In diesem Artikel erfahren Sie, welche Best Practices und Erfolgsfaktoren moderne Softwareentwicklung schneller und skalierbarer machen.

Blog 04.10.22

Erhöhte Sicherheit durch Kubernetes

Die Sicherheit spielt beim Einsatz von Containern eine besonders wichtige Rolle. Das Open-Source-System Kubernetes hat sich zum Standard bei der Automatisierung, Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen entwickelt und erfordert deshalb besonderes Augenmerk bei der Sicherheit.

Service

GreenOps: Der Weg zu Transparenz und Effizienz in der Cloud

Die zweite Welle der Digitalisierung hat viele Unternehmen längst erreicht. Angesichts der steigenden Nutzung von Cloud-Diensten und des zunehmenden Energieverbrauchs, werden die Themen Nachhaltigkeit und Effizienz in der IT-Branche immer drängender. Eine innovative Lösung, die Kosten und Umweltbelastung für die Cloud reduziert, ist GreenOps.

Lösung 12.10.22

Neue Potenziale im ITSM

IT-Service-Management in Hochgeschwindigkeit? Das geht! Wir zeigen Ihnen, wie Sie neue Potenziale im ITSM mit Jira Service Management nutzen.

Blog 02.02.24

So kommt Ordnung in den Infrastructure as Code-Werkzeugkaste

Ordnung im IaC-Dschungel: Welches Tool passt? Dieser Artikel gibt Überblick über die wichtigsten Werkzeuge für Infrastructure as Code.

Headerbild zu Application Modernization
Service

Anwendungen mit Application Modernization optimieren

Application Modernization (deutsch: Anwendungsmodernisierung) konzentriert sich darauf, bestehende Applikationen zu modernisieren. Der Schlüssel zum Erfolg bei der Anwendungsmodernisierung liegt letztendlich in der Strategie und der Auswahl von Projekten.

Referenz

Erfolgreiche Einführung organisationsweiter API-Landschaften

ARS unterstützte die Automotive-Software-Tochter eines führenden deutschen Automobilherstellers erfolgreich bei der Einführung und Pflege organisationsweiter API-Landschaften.

Verschiedene Werkzeuge wie Hammer, Schraubenzieher, etc. auf einem Boden
Wissen

Standardtool vs. Standardplattform

Genau wie in vielen anderen Bereichen auch, bietet die Welt der Optimierung vielfältige Möglichkeiten, sich einer Fragestellung zu nähern. Doch was ist die bessere Wahl - Standardtool oder Standardplattform?

Technologie

Open Source

Open Source steht für „quelloffen” – entsprechend kann Open Source Software von Dritten eingesehen, bearbeitet und verwendet werden.

Blog 26.05.23

Bare Metal trifft auf Public Cloud

Mit Bare Metal und Public Cloud bietet die OVHcloud zwei unterschiedliche Ansätze, um IT-Infrastruktur bereitzustellen. Beide stehen für unterschiedliche Vor und Nachteile. Mit Bare Metal mietet ein Kunde einen physische Server und erhält die vollständige Kontrolle über die Hardware, das Betriebssystem, die Netzwerk-Konfiguration und die darauf ausgeführten Anwendungen. Somit kann die IT-Infrastruktur komplett an individuelle Anforderungen angepasst werden. Diese Server sind somit speziell für einen Kunden reserviert und niemand anderes nutzt diese Ressourcen parallel.

Blog 04.07.24

Warum Shift Left jetzt unverzichtbar ist

Erfahren Sie, warum Shift Left und Feedbackschleifen unverzichtbar für eine erfolgreiche Softwareentwicklung sind. Verbessern Sie Qualität, Sicherheit und Effizienz in Ihrem Unternehmen.

Whitepaper 21.07.22

E-Paper: Was ist IT-Servicemanagement?

Die Rolle von IT-Serviceteams hat sich von der Unterstützung des Unternehmens zur Differenzierung des Geschäfts gewandelt. Es ist an der Zeit, sich auf Ansätze für IT-Servicemanagement zu konzentrieren, die den Fokus auf Zusammenarbeit, Benutzerfreundlichkeit und schnellere Wertschöpfung legen.

Blog 11.08.23

AWS Lambda: Erste Schritte mit Java

In diesem Artikel lernen wir, was die Vorteile bei der Verwendung von AWS Lambda sind u. wie wir Java-Code in AWS-Lambda installieren und ausführen können.

Mit Turbonomic IT-Kosten sparen
Blog 22.06.23

So einfach sparen Sie mit IBM Turbonomic IT-Kosten!

Freuen Sie sich mit uns auf eine sechsteilige Blogserie zum Thema Infrastruktur-Optimierung mit IBM Turbonomic. Im ersten Teil klären wir Fragen und Mehrwert von Turbonomic.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!