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

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

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

Также как люди обычно обновляют даги и распространяют этот код? Если используется общий том, например s3fs, каждый раз, когда вы обновляете даг, вы перезапускаете планировщик? Не вызывает ли проблем редактирование кода в чем-то вроде DropBox? Мы будем очень благодарны за любые передовые практики по обновлению дэгов и распространению кода.


person Cobman    schedule 23.05.2018    source источник


Ответы (1)


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

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

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

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

person Simon D    schedule 23.05.2018