我们正在简化气流代码库的构建/部署管道。
有没有人有使用CI / CD工具进行apache气流的构建和部署管道方面的经验?
如何在不同的环境中部署气流代码库,包括DAG /插件/操作员,如测试,升级,生产等。
你如何管理每个环境的airflow.cfg配置?
您在哪里管理每个环境的配置。
我们将所有代码构建到Docker镜像(DAG,插件,不同的Python包,不同的airflow.cfg
文件等)中,并将其推送到我们的Kubernetes集群。同一个映像在任何地方运行,确保依赖关系保持锁定状态,并且每个Airflow都针对其用例进行了最佳配置(我们在Kubernetes集群上运行多个Airflow实例)。
就CI / CD而言,由于我们的部署几乎只是一个Docker推动,我们使用CircleCI没有任何问题。
对于管理环境,我们将尝试在Airflows(例如redshift_conn
)中保持相同的连接,但使用不同的凭据(dev Redshift vs prod Redshift)。我认为应该有更优雅的解决方案,但这对我们来说迄今为止都有效。