【发布时间】:2017-12-14 08:51:39
【问题描述】:
我正在考虑开始将 Apache Airflow 用于一个项目,并且想知道人们如何使用气流管理持续集成和依赖关系。进一步来说 假设我有以下设置
3 Airflow 服务器:开发阶段和生产。
我有两个 python DAG,我想将其源代码保存在单独的存储库中。 DAG 本身很简单,基本上只需使用 Python 运算符调用 main(*args, **kwargs)。然而,由 main 运行的实际代码非常大,并且延伸了几个文件/模块。 每个 python 代码库都有不同的依赖项 例如,
Dag1 使用 Python2.7 pandas==0.18.1, requests=2.13.0
Dag2 使用 Python3.6 pandas==0.20.0 和 Numba==0.27 以及一些需要编译的 cythonized 代码
如何管理运行这两个具有完全不同依赖项的 Dag 的 Airflow? 另外,我如何管理将这两个 Dags 的代码持续集成到每个不同的 Airflow enivornment(dev、staging、Prod)(我只是让 jenkins 或其他东西 ssh 到气流服务器并执行 git pull origin BRANCH 之类的操作吗? )
希望这个问题不会太模糊,人们会看到我遇到的问题。
【问题讨论】: