Ich denke Apache Airflow für ein Projekt zu verwenden und frage mich, wie Menschen kontinuierliche Integration und Abhängigkeiten mit Luftstrom verwalten. Genauer gesagt Sagen, ich habe folgende EinrichtungApache Airflow Kontinuierliche Integration Workflow und Dependency Management
3 Airflow-Server: Dev-Staging und Produktion.
Ich habe zwei Python DAG 's, deren Quellcode ich in separaten Repos aufbewahren möchte. Die DAG selbst sind einfach, im Grunde verwenden Sie einfach einen Python-Operator, um main (* args, ** kwargs) aufzurufen. Der eigentliche Code, der von main ausgeführt wird, ist jedoch sehr groß und dehnt mehrere Dateien/Module aus. Jede Python Codebasis hat verschiedene Abhängigkeiten beispielsweise
DAG1 verwendet python2.7 pandas == 0.18.1, Anfragen = 2.13.0
DAG2 verwendet Python3.6 pandas == 0.20.0 und Numba == 0.27 sowie einiger cythonisierter Code, der kompiliert werden muss
Wie verwalte ich Airflow, der diese zwei Dags mit völlig anderen Abhängigkeiten ausführt? Wie kann ich die kontinuierliche Integration des Codes für diese beiden Dags in jedes unterschiedliche Airflow-Environment (Dev, Staging, Prod) verwalten (bekomme ich einfach jenkins oder etwas zum ssh zum airflow server und mache sowas wie git pull origin ZWEIG
Hoffentlich ist diese Frage nicht zu vage und Leute sehen die Probleme, die ich habe.
Dank @Him, ich kam mehr oder weniger zu den gleichen Schlussfolgerungen, aber mit den Python-Abhängigkeiten in einem virtualenv eingewickelt im Gegensatz zu DockerOperator verwenden, aber möglicherweise am Ende zu diesem wechseln. –