Our great sponsors
-
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 (by Azure)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
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)
Related posts
- Managing lifecycle of a (complex) group of helm applications with Azure Orkestra
- Orkestra helps you orchestrate your complex helm releases and manage the lifecycle of your applications by carrying out "non-disruptive" in-service upgrade
- Orchestrate complex, mission-critical applications with Azure/Orkestra
- (Not) to Write a Pipeline
- Orchestration poll