Всем привет.
Не подскажите best practice по функциональному тестированию DAG?
Наша примерная архитектура:
Мы используем Airflow для выполнения задач на Hadoop кластере. Кластеров у нас 2, staging и production. На каждом есть машина с airflow. На staging для тестирования (test, backfill, scheduler), на production уже только scheduler (иногда backfill, но пока редко). Код airflow (ДАГи, таски, YAML конфиги, код сабдагов) синхронизуется через наш python пакет через гит. Соответственно настроен CI/CD веток гита master -> staging server, production -> production server. Пакет становится в директорию, которую можно менять только из под рута (раскидывается Ansible).
Возникает вопрос тестирования шедулера без прав рута, т.к. все операции CLI можно настроить на свои директории соответсвующим PYTHONPATH. Ну и при тестировании хотелось бы иметь вебморду, чтобы смотреть разрабатываемые сложные связи.
Возможные варианты:
- завести ещё одну машину под airflow типа QA на кластере staging. Там тестить, если всё ок, отправлять в master, далее смотреть что там всё в течение нескольких дней и в production
- под каждого юзера разворачивать docker контейнер с airflow
- может есть ещё какие варианты?
Пока мы склоняемся ко второму варианту, у кого-то есть опыт работы/сборки docker airflow и каким там могут быть подводные камни?