Лучший способ распространения кода на веб-сервер / планировщик воздушного потока + рабочие и рабочие процессы

Что люди считают лучшим способом распространения кода (dags) среди веб-серверов / планировщиков + работников воздушного потока? Я пытаюсь запустить сельдерей на большом кластере рабочих, так что любые ручные обновления нецелесообразны.

Я развертываю airflow на докере и использую s3fs прямо сейчас, и он постоянно падает на меня и создает странные файлы ядра.###. Я изучаю другие решения (например, StorageMadeEasy, DropBox, EFS, cron для обновления с git...), но мне очень хотелось бы получить немного отзывов, когда я буду искать решения.

Кроме того, как люди обычно делают обновления для дагов и распространяют этот код? Если вы используете общий том, такой как s3fs, каждый раз, когда вы обновляете dag, вы перезапускаете планировщик? Правильно ли редактировать код на DropBox? Будем весьма благодарны за любые рекомендации по обновлению кода и распространению кода.

1 ответ

Решение

Я не могу точно сказать вам, каков "лучший" способ сделать это, но я могу сказать вам, что я сделал, когда мне нужно было распределить рабочую нагрузку на другую машину.

Я просто настроил общий ресурс NFS на ведущем устройстве потока воздуха для папок DAGS и PLUGINS и подключил этот общий ресурс к рабочему. У меня была проблема один или два раза, когда точка монтирования NFS по какой-то причине ломалась, но после перемонтирования работы продолжались.

Чтобы распространить код DAG и PLUGIN в кластер Airflow, я просто развернул его на главном сервере (я делаю это с помощью bash-скрипта на моей локальной машине, который просто копирует папки из моей локальной ветки git), а NFS обрабатывает репликацию работнику. Я всегда перезагружаю все после развертывания, я также не развертываю, пока выполняется задание.

Лучшим способом развертывания было бы иметь GIT на главном сервере airflow, который проверяет ветку из репозитория GIT (тест или мастер в зависимости от сервера airflow?), А затем заменять пакеты и плагины на те, которые находятся в репозитории git. Я сейчас экспериментирую с такими развертываниями на Ansible.

Другие вопросы по тегам