In this lesson, you will learn how to architect a single, shared orchestration platform that securely isolates pipelines across different departments through logical boundaries and configuration controls.
When multiple departments—such as Finance, Marketing, and Engineering—share one orchestration instance, you must prevent one team's workflow from impacting another’s performance or data access. The primary strategy for this is Namespace Isolation combined with Strict Configuration Separation.
Implementing Logical Boundaries
Instead of deploying separate physical infrastructure for every team, you utilize the orchestration platform’s native capability to group workflows. In a Kubernetes-based executor architecture, you can map different "DAG folders" or "Namespace tags" to specific execution environments. By assigning unique Kubernetes namespaces to different departments, you ensure that pods created by one team are restricted by resource quotas that prevent them from starving other teams' tasks.
Enforcing Configuration Separation
Isolation fails if departments share global configuration. To maintain safety:
- Connection Scoping: Use
Airflow Connections(andExternal Secret Backendslike HashiCorp Vault) to ensure that a Marketing service account cannot access the database credentials owned by Finance. - Resource Pools: Use
Poolsto enforce "noisy neighbor" protection. By assigning a specific slot limit to each department, you ensure that a massive backfill job from one team cannot exhaust all available worker capacity.
Concrete Illustration
You can enforce this by structuring your deployment to restrict access to DAGs via configuration files. For example, if you are using a Git-sync approach, you might isolate departments by repository:
# Example: Mapping namespaces to department workflows
executor_config:
marketing_namespace:
resources: {"request_cpu": "2", "limit_memory": "4Gi"}
pool: "marketing_pool"
finance_namespace:
resources: {"request_cpu": "4", "limit_memory": "8Gi"}
pool: "finance_pool"
By combining these namespace-level resource constraints with strict secret management, you create a robust, multi-tenant environment where teams operate independently within a unified, high-availability platform.
Key Takeaway: Designing multi-tenant orchestration requires isolating execution environments via Kubernetes namespaces and safeguarding resource usage through dedicated pools and scoped secret management.