部署气流代码库
Posted
技术标签:
【中文标题】部署气流代码库【英文标题】:Deployment of Airflow Codebase 【发布时间】:2019-02-06 00:22:15 【问题描述】:我们正在简化气流代码库的构建/部署管道。
有人在使用 CI/CD 工具构建和部署管道方面有经验吗?
您如何在不同的环境(如测试、登台、生产等)中部署您的气流代码库,包括 DAG/插件/操作符。
您如何管理每个环境的气流.cfg 配置?
您在哪里管理每个环境的配置。
【问题讨论】:
【参考方案1】:我们将所有代码构建到一个 Docker 镜像(DAG、插件、不同的 Python 包、不同的airflow.cfg
文件等)中,然后推送到我们的 Kubernetes 集群。相同的映像在任何地方运行,确保依赖关系保持锁定,并且每个 Airflow 都针对其用例进行了最佳配置(我们在 Kubernetes 集群上运行多个 Airflow 实例)。
就 CI/CD 而言,由于我们的部署几乎只是 docker push,因此我们使用 CircleCI 没有任何问题。
为了管理环境,我们将尝试在 Airflows 中保持名称相同的连接(例如 redshift_conn
),但使用不同的凭据(dev Redshift 与 prod Redshift)。我认为应该有更优雅的解决方案,但这对我们来说是有效的。
【讨论】:
谢谢,Viraj。目前,我们在没有 Kubernetes 的情况下运行气流。我们正在寻找/寻找一种优雅的解决方案来管理多个环境的相同构建工件并管理特定于环境的配置。 您是否使用任何编排系统?在我的公司,我们在迁移到 Kubernetes 之前使用 Mesos 部署 Airflow 环境——这无疑让管理构建工件和环境变得更加容易。 在一些流中,我们使用 Kubernetes,但不适用于 Airflow。我们也计划在 Airflow 中使用。不确定,迁移到 Kybernetes 需要多少时间/精力。以上是关于部署气流代码库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用气流 DockerOperator 提取我自己的私有存储库的 docker 映像?
GCP apache气流,如何从私有存储库安装Python依赖项