Evaluation: Argo Workflows

Installation

Argo Workflows installs as a Custom Resource Definition (CRD).

Submitting jobs

Jobs are submitted to the Kubernetes cluster as Custom Resources.

Developer experience

The Argo CLI abstracts away much of the pain of submitting and supervising work on a Kubernetes cluster.

flowchart LR
  DEV(Developer w/ Argo CLI)

  subgraph KUBERNETES[Kubernetes cluster]
    WORKFLOW_PODS[Workflow pods]
  end

  DEV -->|submit| KUBERNETES
  KUBERNETES -->|status| DEV

  style KUBERNETES fill:#FFFFFF;

Dependencies

Inter-task

Task inputs and outputs are expressed explicitly and are automatically wired up with dependents and dependencies.

Dependencies between tasks can be expressed two ways:

  • Steps: A simple list-based representation that supports parallelism.
  • DAG: Tasks specify the names of other task(s) they depend on.

Software

Each task in an Argo Workflows graph can run on a different container image, so the workflow developer has granular control of software dependencies.

Monitoring

Argo Workflows offers a robust user interface for visualizing jobs, their status, their logs, and accessing output artifacts.

Maturity

Adopted by Cloud Native Computing Foundation, well-funded, and very mature.

Community

Very large and very well-managed community.