DEV Community

Daniel Hoang for Akuity

Posted on

Argo 101 - What is Argo?

Argo 101 - What is Argo?

Hello everyone this is Daniel. I've recently started at Akuity - A company started by the creators and maintainers of the Argo project. As I started familiarizing myself with the Argo suite, I thought it would be a good chance to give an introduction to Argo for those who are new to the project.

Argo is a collection of open-source tools for Kubernetes to run workflows, manage clusters, and do GitOps right.

Since discovering Argo, I was always curious to know where the name and the mascot came from. It was finally through Akuity's seed announcement that I heard the story from one of the creators of Argo itself.

"Argo was named after the ship Argo in Greek mythology, which carried the Greek mythological hero Jason and the Argonauts on their quest for the Golden Fleece. An argonaut also happens to be a species of pelagic octopuses, and so we used an octopus as our open source project mascot. Argonauts are groups of hard-working deep-sea octopuses that traverse undersea and perform numerous tasks critical to marine biology."

  • Jesse Suen, Argo Project Lead, Co-founder, and CTO - Akuity

Argo CD: A declarative, GitOps Continuous Delivery tool for Kubernetes.

Argo CD dashboard

Argo CD is perhaps the most well-known tool within the Argo project. It was created at Intuit to handle deployments to Kubernetes at scale. The mission at the time was to migrate from physical data centers to Kubernetes on AWS. The creators (Alexander Matyushentsev and Jesse Suen) were unable to find a Kubernetes-native solution that fit the needs of a large enterprise, so Argo CD was born. It was decided to use a GitOps approach for deployments since as a financial company, there are many regulatory and compliance requirements that GitOps helps solve.

Main characteristics & use cases:

  • Helps you apply manifest from repo to cluster, and continuously monitors the repo (GitOps).
  • Typically used for infrastructure & application deployment.

Argo Workflows: A container-native workflow engine for orchestrating jobs on Kubernetes.

Argo Workflows dashboard

Argo Workflows was actually the first Argo project and was created at Applatix when Hong Wang, Jesse Suen, and Alexander Matyushentsev were at Applatix. Argo Workflows extends the Kubernetes API with a new Workflow CRD (Custom Resource Definition). A Workflow is a very extensible batch resource (similar to a Kubernetes Job) that can be used for many applications, however, many companies have realized how to take advantage of Argo Workflows in ML & Data pipelines.

Main characteristics & use cases:

  • Every step in a workflow is a pod, made up of several containers.
  • Typically used for data processing & automation (Fan-out fan-in).
  • Companies like Ant Group & CERN use Argo to process data.
  • Argo Workflows is rapidly replacing tools like Apache Airflow.

Argo Rollouts: A progressive delivery controller for Kubernetes.

Argo Rollouts dashboard

Argo Rollouts was another tool born out of necessity due to Kubernetes' lack of more sophisticated deployment strategies. The requirement to perform blue-green and canary deployments on Kubernetes prompted creators Alexander Matyushentsev, Danny Thomson, and Jesse Suen to develop a more sophisticated workload controller. Argo Rollouts replaces the Deployment resource with a more advanced Rollout resource. As companies continued to scale and have requirements for better customer experience and SLA's, the need for complex deployment strategies came.

Main characteristics & use cases:

  • It provides blue/green and canary update strategies.
  • Integrates with service meshes & ingress controllers to shape traffic.
  • Automates promotion and rollback based on analysis.
  • Used to safely deploy artifacts into Production.

Argo Events: An event-based dependency manager for Kubernetes.

Argo Events dashboard

Argo Events was originally created to be a lightweight, Kubernetes native mechanism to automatically trigger Argo Workflows in response to events such as time, new object detection, commits, messages, and more. This could be used for simple use cases to elegantly trigger workflows based on results, but also be used for complex ML (Machine Learning) or data-centric use cases.

Main characteristics & use cases:

  • Argo Events was a special project was that was donated to Argo from BlackRock.
  • Event-based dependency manager which is normally used to trigger Argo Workflows, but can trigger any Kubernetes resources.

As this suite of tools gains traction, Akuity.io was founded by the co-creators of Argo to help users implement and scale their software delivery process. Find out how we can help with professional support, solutions, prioritized patches, and guaranteed enterprise SLAs from our team of Argo experts.

Stay tuned for more on our blog series as we share more insight, guides, and solutions that range from beginner to expert.

Thank you, and if there is anything I can help with feel free to reach out to me via Twitter
@dhpup.

Top comments (0)