谈到Airflow的部署,首先要考虑的是Executor。Executor是Airflow中负责运行Task(任务)的模块。Airflow内置的Local Executor仅适用于测试和开发环境,而在生产环境中部署时一般会选用某种Remote Executor。Remote Executor使用其他的软件作为后端,它负责把Task提交到后端,然后由后端来运行Task。比如,Celery Executor会把Task提交到Celery(基于Python的分布式异步消息任务队列)集群后再运行。Remote Executor包括Celery Executor、Kubernetes Executor、CeleryKubernetes Executor和Dask Executor。
本章将分别介绍Airflow在非容器化生产环境中和容器化生产环境中的部署方式。其中,针对非容器化生产环境将介绍两种部署方案——基于Celery Executor的部署和基于Dask Executor的部署。针对容器化生产环境将介绍3种部署方案——基于Celery Executor的部署、基于Kubernetes Executor的部署和基于CeleryKubernetes Executor的部署。