Set sail with Argo, an open source workflow engine for Kubernetes
The search for the golden fleece (re: an open source container-native workflow engine for Kubernetes) is over! Introducing Argo, a relative newcomer to the field with a whole host of exciting features, including Docker-in-Docker solutions, continuous delivery, and more.
Time to set sail with Argo! This open source workflow engine for Kubernetes is container-native, making lives easier for devs all around the seven seas.
Following the Greek inspiration of Kubernetes, Argo is named after the legendary ship. Jason and his Argonauts sailed around the Mediterranean in search of the Golden Fleece, a sign of kingly authority.
Have we mentioned Argo is cloud agnostic?
Why Argo? Well, an integrated workflow engine is absolutely necessary in a distributed system for orchestrating jobs as well as distributing and deploying complex microservices-based applications.
Designed from the beginning for containers, Argo offers developers a workflow engine without any of the overhead or limitations of legacy solutions. More like an engine for feeding and tending a Kubernetes cluster, Argo is cloud agnostic.
Argo allows developers to define workflows where each step in the workflow is a container. Essentially, this project makes it easy for developers to specify, schedule, and coordinate all the moving parts that go on in a Kubernetes cluster. It even scales beautifully, essentially giving developers a cloud-scale supercomputer at their fingertips.
Thanks to Argo, developers can run all kinds of heavy computation jobs for ML or data processing without spending their whole day on it. They can also model multi-step workflows as a sequence of tasks or capture the dependencies between tasks using a graph.
- Artifact support (S3, Artifactory, HTTP, Git, raw)
- Step level input & outputs (artifacts/parameters)
- Timeouts (step & workflow level)
- Retry (step & workflow level)
- K8s resource orchestration
- Garbage collection of completed workflow
- Scheduling (affinity/tolerations/node selectors)
- And more!
Of course, Argo has options for developers walking on the CI/CD side.
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. With this tool, developers can run CI/CD pipelines natively on Kubernetes without configuring complex software development products.
In GitOps, developers use git repos as the source of truth for defining the desired state. Argo CD follows this pattern. Kubernetes manifests can be specified in a number of ways, including ksonnet applications, kustomize applications, helm charts, and with the plain directory of YAML/json manifests.
Essentially, Argo CD automates the deployment of the desired application states in the specified target environments. These application deployments can track updates to branches, tags, or pinned to a specific version of manifests at a git commit.
On a different tack, Argo CI is still in an early development stage. It promises to provide integration with SCM and automatically triggers CI workflow defined using Argo YAML DSL. We’ll keep checking in to see when this ship is finally ready for open ocean.
Workflow templates are available in the helpful documentation here.