argo
Orkestra
Our great sponsors
argo | Orkestra | |
---|---|---|
43 | 4 | |
14,259 | 102 | |
1.4% | 0.0% | |
9.8 | 0.0 | |
3 days ago | about 1 year ago | |
Go | Go | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
argo
-
StackStorm – IFTTT for Ops
Like Argo Workflows?
-
Creators of Argo CD Release New OSS Project Kargo for Next Gen Gitops
Dagger looks more comparable to Argo Workflows: https://argoproj.github.io/argo-workflows/ That's the first of the Argo projects, which can run multi-step workflows within containers on Kubernetes.
For what it's worth, my colleagues and I have had great luck with Argo Workflows and wrote up a blog post about some of its advantages a few years ago: https://www.interline.io/blog/scaling-openstreetmap-data-wor...
-
Practical Tips for Refactoring Release CI using GitHub Actions
Despite other alternatives like Circle CI, Travis CI, GitLab CI or even self-hosted options using open-source projects like Tekton or Argo Workflow, the reason for choosing GitHub Actions was straightforward: GitHub Actions, in conjunction with the GitHub ecosystem, offers a user-friendly experience and access to a rich software marketplace.
-
(Not) to Write a Pipeline
author seems to be describing the kind of patterns you might make with https://argoproj.github.io/argo-workflows/ . or see for example https://github.com/couler-proj/couler , which is an sdk for describing tasks that may be submitted to different workflow engines on the backend.
it's a little confusing to me that the author seems to object to "pipelines" and then equate them with messaging-queues. for me at least, "pipeline" vs "workflow-engine" vs "scheduler" are all basically synonyms in this context. those things may or may not be implemented with a message-queue for persistence, but the persistence layer itself is usually below the level of abstraction that $current_problem is really concerned with. like the author says, eventually you have to track state/timestamps/logs, but you get that from the beginning if you start with a workflow engine.
i agree with author that message-queues should not be a knee-jerk response to most problems because the LoE for edge-cases/observability/monitoring is huge. (maybe reach for a queue only if you may actually overwhelm whatever the "scheduler" can handle.) but don't build the scheduler from scratch either.. use argowf, kubeflow, or a more opinionated framework like airflow, mlflow, databricks, aws lamda or step-functions. all/any of these should have config or api that's robust enough to express rate-limit/retry stuff. almost any of these choices has better observability out-of-the-box than you can easily get from a queue. but most importantly.. they provide idioms for handling failure that data-science folks and junior devs can work with. the right way to structure code is just much more clear and things like structuring messages/events, subclassing workers, repeating/retrying tasks, is just harder to mess up.
-
what technologies are people using for job scheduling in/with k8s?
Argo Workflows + Argo Events
-
What are some good self-hosted CI/CD tools where pipeline steps run in docker containers?
Drone, or Tekton, Argo Workflows if you’re on k8s
-
job scheduling for scientific computing on k8s?
Check out Argo Workflows.
- Orchestration poll
- What's the best way to inject a yaml file into an Argo workflow step?
-
Which build system do you use?
go-git has a lot of bugs and is not actively maintained. The bug even affects Argo Workflow, which caused our data pipeline to fail unexpectedly (reference: https://github.com/argoproj/argo-workflows/issues/10091)
Orkestra
-
Managing lifecycle of a (complex) group of helm applications with Azure Orkestra
Github Repo - Azure/orkestra: Orkestra is a cloud-native release orchestration and lifecycle management (LCM) platform for the fine-grained orchestration of inter-dependent helm charts and their dependencies (github.com)
- Orkestra helps you orchestrate your complex helm releases and manage the lifecycle of your applications by carrying out "non-disruptive" in-service upgrade
-
Orchestration and lifecycle management for complex applications on Kubernetes
Orchestration of a group of complex applications with dependencies between themselves and their subcharts/dependencies is hard
Imagine a scenario in which application that depends on Prometheus, Grafana and Istio. Now let's take it a step further and define a dependency between Istio and it's observability components, Prometheus & Grafana, since Istio itself leverages both Prometheus and Grafana for it's control-plane. In other words we now have a dependency DAG where, the application depends-on Istio depends-on Prometheus & Grafana. Now imagine the application depending on other applications that provide PaaS like infrastructure capabilities required to run the application itself
Defining this dependency order allows all components to spin up both, reliably and efficiently
This would make a huge difference when we are dealing with complex applications like 5G network functions running mission-critical workloads across the network and their lifecycle management (installs/upgrades/rollback). Providers, tend to take releases in a "semi-continuous" manner as opposed to true CD. Meaning, when upgrading, multiple applications and their subcharts may be upgraded in a single release. This is a scenario in which defining the dependency ordering between the applications and their subcharts allows the service providers to limit the blast radius if this go wrong, allowing them to fail fast and rollback without impacting all upgrade-ready apps
Introducing Azure Orkestra https://github.com/Azure/Orkestra that provides the aforementioned capabilities using a familiar Kubernetes declarative CRDscalled ApplicationGroups. Orkestra leverages Argo Workflows to generate DAG workflows to deploy all applications with an application group (and optionally a DAG workflow for the subcharts in each application). The DAG on execution generates HelmRelease objects that are then acted upon by flux helm-operator to reliably perform the helm actions (install, delete, upgrade, rollback)
-
Orchestrate complex, mission-critical applications with Azure/Orkestra
Introducing Azure Orkestra https://github.com/Azure/Orkestra that provides the aforementioned capabilities and features using familiar Kubernetes declarative objects (CRDs) called ApplicationGroups.
What are some alternatives?
temporal - Temporal service
charts - ⚠️(OBSOLETE) Curated applications for Kubernetes
keda - KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes
argo-cd - Declarative Continuous Deployment for Kubernetes
Airflow - Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
kubernetes-operator-roiergasias - 'Roiergasias' kubernetes operator is meant to address a fundamental requirement of any data science / machine learning project running their pipelines on Kubernetes - which is to quickly provision a declarative data pipeline (on demand) for their various project needs using simple kubectl commands. Basically, implementing the concept of No Ops. The fundamental principle is to utilise best of docker, kubernetes and programming language features to run a workflow with minimal workflow definition syntax. It is a Go based workflow running on command line or Kubernetes with the help of a custom operator for a quick and automated data pipeline for your machine learning projects (a flavor of MLOps).
flyte - Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
Flux - Successor: https://github.com/fluxcd/flux2
StackStorm - StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html
n8n - Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.
lens - Lens - The way the world runs Kubernetes
volcano - A Cloud Native Batch System (Project under CNCF)