AWS CodePipeline vs. Argo CD: CI/CD als Service oder als Architekturentscheidung
Service oder Architekturentscheidung? CI/CD wird oft als Werkzeugfrage behandelt: Welcher Dienst, …

CI/CD wird häufig als Toolfrage behandelt: Welche Pipeline, welcher Runner, welcher Dienst? In modernen Plattformarchitekturen greift diese Sicht zu kurz. Entscheidend ist nicht, wie Deployments ausgelöst werden, sondern welches Betriebsmodell dahintersteht.
AWS CodePipeline und Flux adressieren beide den Weg von Code in Produktion. Sie tun das jedoch aus grundlegend unterschiedlichen Richtungen. Das eine orchestriert Ausführungsschritte innerhalb einer Cloud. Das andere etabliert GitOps als dauerhaftes Betriebsmodell. Wer diesen Unterschied nicht sauber trennt, baut kurzfristig funktionierende Pipelines – und langfristig schwer wartbare Plattformen.
AWS CodePipeline ist der CI/CD-Orchestrierungsdienst von AWS. Er koordiniert Build-, Test- und Deployment-Schritte über AWS-Services wie CodeBuild, CodeDeploy oder CloudFormation. Pipelines reagieren auf Events, sind eng an IAM, AWS-Regionen und Service-Grenzen gekoppelt und werden vollständig als Managed Service betrieben.
Für Workloads, die vollständig in AWS leben, ist der Einstieg einfach. Pipelines lassen sich schnell definieren, Integrationen sind vorhanden, Betrieb und Skalierung übernimmt AWS. CI/CD wird konsumiert – ähnlich wie andere Cloud-Dienste.
Diese Bequemlichkeit folgt jedoch einem klaren Modell.
CodePipeline arbeitet imperativ. Eine Pipeline beschreibt Schritte, die aktiv einen Zielzustand herstellen: Build ausführen, Artefakt deployen, Infrastruktur anpassen. Nach Abschluss gilt der Zustand als korrekt – bis die nächste Pipeline läuft.
Was fehlt, ist ein zentrales Konzept für Drift-Erkennung und -Korrektur. Wenn sich der Zustand im Zielsystem verändert, bleibt das unbeachtet, solange keine neue Pipeline läuft. Multi-Cluster- oder Multi-Cloud-Szenarien erfordern zusätzliche Pipelines, parallele Logiken oder externe Tools. Deployment-Logik verteilt sich über mehrere Services und bleibt organisatorisch wie technisch an AWS gebunden.
CI/CD ist hier ein Ablauf – kein dauerhaftes Steuerungsmodell.
Flux setzt an einer anderen Stelle an. Als Open-Source-Projekt aus dem Kubernetes Umfeld implementiert es GitOps nicht als Technik, sondern als Betriebsmodell. Der gewünschte Zustand von Anwendungen und Infrastruktur liegt deklarativ in Git-Repositories.
Flux läuft im Cluster und synchronisiert kontinuierlich den Ist-Zustand mit dem in Git definierten Soll-Zustand. Abweichungen werden erkannt und automatisch korrigiert – nicht punktuell, sondern dauerhaft. Deployments sind kein Ereignis, sondern ein fortlaufender Abgleich.
Das verändert die Rolle von CI/CD grundlegend.
Der architektonische Unterschied zwischen CodePipeline und Flux ist nicht graduell, sondern fundamental. Flux trennt CI und CD strikt:
Deployments sind reproduzierbar, versioniert und auditierbar, weil jede Änderung über Git erfolgt. Rollbacks sind einfache Reverts. Es gibt keinen „versteckten" Zustand außerhalb des Repositories.
Diese Logik funktioniert unabhängig davon, wo Cluster betrieben werden: on-premises, in europäischen Clouds oder bei Hyperscalern. Git bleibt die Quelle der Wahrheit, nicht die Pipeline.
Dieser Ansatz passt zu Plattformarchitekturen, die Kubernetes als zentrale Laufzeit begreifen. Flux skaliert über viele Cluster hinweg, unterstützt Mandantenfähigkeit und integriert sich nahtlos in bestehende Open-Source-Stacks.
Deployment-Logik wird Teil der Plattform, nicht ein externes Skript in einem proprietären Dienst. Infrastruktur- und Applikationszustände bleiben transparent, nachvollziehbar und konsistent – über Umgebungen hinweg.
CodePipeline kann Kubernetes deployen. Flux betreibt Kubernetes.
Der operative Aufwand verschiebt sich. Flux nimmt keine Entscheidungen ab. Es erzwingt Klarheit: saubere Repository-Strukturen, deklarative Manifeste, klare Verantwortlichkeiten. Das ist initial anspruchsvoller als ein Klick-Pipeline-Setup.
Dafür reduziert sich manueller Eingriff drastisch. Konfigurationsdrift, Umgebungsinkonsistenzen und „Snowflake-Deployments" werden strukturell verhindert. Gerade in langlebigen Kubernetes-Plattformen ist das kein Nice-to-have, sondern Voraussetzung für Stabilität.
Automatik wird hier nicht konsumiert, sondern bewusst gestaltet.
| Aspekt | AWS CodePipeline | Flux |
|---|---|---|
| Modell | Imperative Pipeline | Deklaratives GitOps |
| Betriebsform | Event-getrieben | Kontinuierliche Synchronisation |
| Drift-Erkennung | Nicht zentral | Integriert |
| Plattformbindung | Hoch (AWS) | Gering |
| Kubernetes-Fokus | Ergänzend | Nativ |
| Multi-Cluster-Eignung | Begrenzt | Sehr hoch |
AWS CodePipeline ist sinnvoll für:
Flux ist sinnvoll für:
CI/CD ist kein Tooling-Detail. Es definiert, wie Systeme betrieben werden.
AWS CodePipeline optimiert die Ausführung innerhalb einer Plattform. Flux etabliert ein Betriebsmodell, das Deployments von Infrastrukturentscheidungen entkoppelt.
Der Unterschied ist nicht technisch, sondern strukturell. Wer Pipelines orchestriert, automatisiert Abläufe. Wer GitOps etabliert, kontrolliert den Betrieb – dauerhaft, nachvollziehbar und unabhängig von einzelnen Plattformen.
Service oder Architekturentscheidung? CI/CD wird oft als Werkzeugfrage behandelt: Welcher Dienst, …
Versionsverwaltung als Cloud-Baustein oder als Plattformkern Versionsverwaltung wird oft auf ein …
Container-Registry als Cloud-Service oder als kontrollierbarer Plattformbaustein …