An Airflow deployment is an independently configured operational environment for running DAGs. At organizational scale, teams can share one instance or operate separate instances with isolated resources, permissions, failures, and upgrade decisions. section 15.9
Choose the deployment boundary by weighing these operational trade-offs:
- Share one instance to maximize resource use and potentially reduce cost, especially when teams' scheduling demands do not overlap. section 15.9
- Expect shared deployments to complicate resource contention, DAG ownership, permissions, upgrades, and failure isolation. section 15.9
- Give each team an instance for stronger isolation and independent configuration, while accepting the overhead of operating multiple environments. section 15.9
A deployment with multiple executors
Configure CeleryExecutor and KubernetesExecutor together through the Apache Airflow Helm Chart. Run ordinary tasks with the default image, Kubernetes tasks with a TensorFlow image, and override an individual task with another image. A missing TensorFlow dependency can make the Celery task fail while the Kubernetes tasks succeed in their tailored images. section 17.2.9
Figure 15.18 Two teams with their own Airflow instances. Each team could configure its own Airflow instance. Team 1 could use the KubernetesExecutor instead of the CeleryExecutor without affecting team 2, for example.
Compare two team-owned Airflow instances and see how one team can change its executor without affecting the other. section 15.9
