Suchen

Definition Was ist Argo?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Das Argo-Projekt stellt Open Source Tools für das Kubernetes-Ökosystem bereit. Mit Argo Workflows bietet das Projekt eine Container-native Workflow Engine. Sie ermöglicht es, Workflows zu definieren, in denen die verschiedenen Arbeitsschritte aus einzelnen Containern bestehen. Abhängigkeiten lassen sich über gerichtete azyklische Graphen (DAG) abbilden. Weitere Tools des Projekts sind Argo CD, Argo Rollouts und Argo Events.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Argo ist der Name eines Projekts, das Open Source Tools für das Kubernetes-Ökosystem entwickelt und unter Apache-2.0-Lizenz zur Verfügung stellt. Das erste Tool, das das Argo-Projekt veröffentlichte, war Argo Workflows. Es wird teilweise auch nur als Argo bezeichnet. Bei Argo Workflows handelt es sich um eine Container-native Workflow Engine für Kubernetes. Mit der Engine lassen sich komplexe Workflows definieren, planen, koordinieren und ausführen. Beispielsweise können die verschiedenen Arbeitsschritte eines Workflows aus einzelnen Containern bestehen. Auch Multi-Step-Workflows, in denen die Abhängigkeiten der Jobs über einen gerichteten azyklischen Graphen (DAG) abgebildet sind, lassen sich mit Argo erstellen.

Typische Einsatzmöglichkeiten von Argo Workflows sind rechenintensive Jobs im Bereich der Datenverarbeitung und des maschinellen Lernens oder Pipelines für CI/CD (Continuous Integration / Continuous Delivery). Realisiert ist Argo Workflows als eine Kubernetes CRD (Custom Resource Definition). Dadurch integriert sich Argo nativ in Kubernetes und gestattet es, Workflows mit kubectl zu verwalten.

Weitere Tools des Argo-Projekts sind Argo CD (für deklaratives Continuous Deployment), Argo Rollouts (ein progressiver Kubernetes Delivery Controller) und Argo Events (für Event-basiertes Verwalten von Abhängigkeiten). Argo ist ein von der Cloud Native Computing Foundation (CNCF) gehostetes Projekt mit dem Status eines Incubation-Level-Projekts. Zahlreiche Unternehmen weltweit wie Adobe, Alibaba, Equinor, Fairwinds, GitHub, Google, HSBC, IBM, Maersk, Nikkei, NVIDIA, Red Hat, SAP, SAS und viele mehr nutzen die vom Argo-Projekt bereitgestellten Tools. Die aktuelle Version von Argo Workflows ist die Version v2.11.7 (Stand November 2020).

Kurzvorstellung der weiteren Tools des Argo-Projekts

Im Folgenden eine Kurzvorstellung der neben Argo Workflows weiteren Tools des Argo-Projekts (auf Argo Workflows gehen wir nach diesem Kapitel näher ein):

  • Argo CD: Ein deklaratives Kubernetes-Tool für Continuous Delivery (CD). Einsetzbar für das Lifecycle Management und das Application Deployment.
  • Argo Rollouts: Ein progressiver Kubernetes Delivery Controller, der fortgeschrittene Deployment-Möglichkeiten bereitstellt. Einsetzbar beispielsweise für das Konzept der Rolling Updates.
  • Argo Events: Ein Event-basiertes Management-Tool für Kubernetes zum Verwalten von Abhängigkeiten. Das Tool unterstützt eine Vielzahl verschiedener Event-Quellen.

Die Möglichkeiten des Workflow-Managements mit Argo Workflows

Argo Workflows bietet ein Vielzahl an Möglichkeiten, Workflows und Pipelines zu definieren, sie zu planen, auszuführen und zu verwalten. Es lassen sich beispielsweise Workflows erstellen, in denen jeder Arbeitsschritt aus einem Container besteht. Auch sogenannte Multi-Step-Workflows mit komplexen Abhängigkeiten der einzelnen Tasks untereinander werden von Argo Workflows unterstützt. Die Abhängigkeiten lassen sich über gerichtete azyklische Graphen (Directed Acyclic Graph – DAG) abbilden. Rechenintensive Datenverarbeitungsprozesse oder Machine-Learning-Aufgaben können in Argo Workflows überführt werden. Auch die Abbildung kompletter CI/CD-Pipelines ist mit Argo Workflows nativ in Kubernetes möglich. Weitere unterstützte Funktionen von Argo Workflows sind zum Beispiel:

  • grafische Benutzeroberfläche für die Verwaltung und Visualisierung von Workflows
  • Archivierung von Workflows
  • Scheduling von Workflows
  • Docker-in-Docker
  • Nutzung einer REST API
  • Garbage Collection

Das Command Line Interface von Argo Workflows

Argo Workflows stellt ein Command Line Interface (CLI) zur Verfügung, mit dem sich die Workflows kommandozeilenbasiert verwalten lassen. Kommandos des Interfaces sind beispielsweise „submit“ (Übergabe einer Workflow-Spezifikation an Kubernetes), „list“ (Auflisten der aktuellen Workflows), „get“ (Info-Abfrage zu einem bestimmten Workflow), „logs“ (Anzeige von Logdaten über alle oder einzelne Ausführungsschritte eines Workflows) oder „delete“ (Löschen eines Workflows). Alternativ zum Argo Workflows CLI ist das Management der Workflows über kubectl möglich.

Vorteile durch den Einsatz des Tools Argo Workflows

Der Einsatz des Tools Argo Workflows zur Verwaltung von Workflows in Kubernetes bietet zahlreiche Vorteile. Argo vereinfacht das Erstellen, Terminieren, Ausführen und Koordinieren komplexer Workflows. Es werden sowohl Workflows unterstützt , die aus einfachen Einzeljobs bestehen als auch Multi-Step-Workflows. Jeder Einzelschritt in einem Workflow lässt sich als eigener Container abbilden. Argo Workflows ist für die Verwendung von Containern und das Orchestrieren mit Kubernetes konzipiert. Das Tool lässt sich auf jedem Kubernetes-Cluster ausführen und bietet volle Cloud-Unterstützung. Workflows lassen sich als YAML-Code darstellen und managen. Sie sind einfach portierbar und unterliegen einer Versionskontrolle. Über Kubernetes CRD (Custom Resource Definition) ist das Tool in Kubernetes-Umgebungen schnell bereitgestellt. Weitere Vorteile sind das einfache Orchestrieren parallel auszuführender Jobs, das schlanke Design des Tools und die Möglichkeit, Workflows zu visualisieren.

(ID:46987672)

Über den Autor