Size: a a a

2020 August 21

DP

Darina Povtar in Airflow
Ребята, привет!👋🏼 Меня зовут Дарина, я из Wrike. Влезу к вам с небольшой рекламой, т.к. мы активно юзаем airflow в DE, возможно, инфа будет для кого-то актуальна!

Мы ищем крутого дата-инженера к нам в команду. У нас 3 направления, можно делать всякие разные вещи:
·      В команде BI – писать сервисы/пайплайны для прокачки данных через основные бизнес-интеграции.
·     Marketing Data Engineering занимаются разработкой платформы для интеграции с разными сервисами (отличная возможность «потрогать» стриминг) и созданием базы мета-данных.
·      Выстраивание процессов работы с данными с командами разработки, работа со сложными системами мониторинга и алертинга – это главные челленджи нашего Product Data Engineering'a.

Позиция уровня мидл+/сеньор, вилка 150-250к, локация в Петербурге (помогаем комфортно релоцироваться и все делаем по красоте, пока что работаем из дома до конца года).
Все инфо я подробно расписала в телеграфе, смогу скинуть ссылку всем заинтересовавшимся – остальными подробностями решила не засорять эфир. Спасибо!🙃
источник

ДН

Дмитрий Негреев... in Airflow
Использовать airflow operator, который в альфе и с декабря без коммитов чёт такая себе история.
Даже если у тебя кубы есть.
Да и если инстанс для сотен-тысяч задач, это какой размером под под шедулер просить надо.
Девопсы там пальцем у виска покрутят.
источник

AN

Artem Nazarenko in Airflow
Дмитрий Негреев
Использовать airflow operator, который в альфе и с декабря без коммитов чёт такая себе история.
Даже если у тебя кубы есть.
Да и если инстанс для сотен-тысяч задач, это какой размером под под шедулер просить надо.
Девопсы там пальцем у виска покрутят.
а для чего использовать AirflowOperator?
источник

ДН

Дмитрий Негреев... in Airflow
Чтобы документацию не читать и манифесты не писать.
источник

ДН

Дмитрий Негреев... in Airflow
источник

AN

Artem Nazarenko in Airflow
да ну... на гитхабе и так  куча примеров деплоймента Airflow под k8s, можно и без AirflowOperator обойтись
источник

AN

Artem Nazarenko in Airflow
раз он в альфе
источник

AN

Artem Nazarenko in Airflow
и слабо развивается
источник

OI

Oleg Ilinsky in Airflow
Старый Хрыч
😐в практике (висят 650 джоб в селери на выполнение по графику), периодически селери насилует redis\rabbit, не удаляет за собой данные из них после выполнения джобы, а потом девупс сидит и чистит всё и селери перезапуская(либо потом пишет уже плейбук чтобы делать это 1 кнопкой)
вообще ни разу не видел проблем в airflow с celery. Redis там вообще один из наименее нагруженных сервисов. Там таски в очередь ставит шедулер и он будет узким местом, но от оператора это вообще не зависит.
источник

OI

Oleg Ilinsky in Airflow
Единственное, что нужно - это либо делать DAG pickle, либо на всех нодах держать актуальную версию дагов.
источник

OI

Oleg Ilinsky in Airflow
Artem Nazarenko
какие вижу considerations по поводу k8s для airflow-окружения:
- в этом случае можно пользоваться KubernetesPodOperator. Это позволит в свою очередь создавать джобы на более широком стеке технологий и связать код на Go/Java для высоконагруженных пайплайнов с Airflow. В частности можно в поды вынести джобы для Stream-processing. В такой архитектуре Airflow становится оркестратором. И тогда можно не тянуть второй оркестратор NiFi для стримов в архитектуру, обойтись Airflow для всего
- можно пользоваться  KubernetesExecutor, что позволит пользоваться ресурс менеджментом от k8s и динамически разбрасывать таски arflow по кластеру.
- CeleryExecutor в k8s-окружении не уместен, т.к. у него свой механизм масштабирования, который более уместен для metal-bare деплоймента.

парни, если с чем-то не согласны, буду признателен за комментарии
ну вот стримы в airflow я бы не рекомендовал…
источник

AN

Artem Nazarenko in Airflow
Oleg Ilinsky
ну вот стримы в airflow я бы не рекомендовал…
в самом Airflow - согласен. Но в поде созданном Airflow почему нет? - На Go написать микросервис для чтения из кафки, например, и запускать его из Airflow через KubernetesPodOperator с различными параметрами
источник

АЖ

Андрей Жуков... in Airflow
Artem Nazarenko
в самом Airflow - согласен. Но в поде созданном Airflow почему нет? - На Go написать микросервис для чтения из кафки, например, и запускать его из Airflow через KubernetesPodOperator с различными параметрами
но зачем так сложно, если есть kafka connect?
источник

AN

Artem Nazarenko in Airflow
- чтобы оркестровать из Airflow (запускать/остановливать)
- параметризовать поды (например, один имидж с разными параметрами использовать по определенной логике)
- просмотривать логи в дагах
источник

АЖ

Андрей Жуков... in Airflow
запускать и останавливать стримы?
источник

АЖ

Андрей Жуков... in Airflow
по какому принципу?
источник

AN

Artem Nazarenko in Airflow
- запускать по принципу ensure sarted (если не запущен, то запускаем, иначе ничего не делаем)
- останавливать при выключении дага
источник

OI

Oleg Ilinsky in Airflow
Artem Nazarenko
- чтобы оркестровать из Airflow (запускать/остановливать)
- параметризовать поды (например, один имидж с разными параметрами использовать по определенной логике)
- просмотривать логи в дагах
тут есть проблема, что если в airflow что-то пошло не так, его можно без проблем рестартануть, а все батчёвые джобы просто перезапустятся. А вот со стримами, чтобы не было проблем, надо перед рестартами вручную (или через апи) их остановить, а потом рестартовать airflow.
Плюс это занимает воркер, хартбиты там всякие. Ну это первое, что вспомнилось.
источник

АЖ

Андрей Жуков... in Airflow
хм, а разве KubernetesPodOperator не поднимает под на время задачи, а потом убивает?
источник

AN

Artem Nazarenko in Airflow
Андрей Жуков
хм, а разве KubernetesPodOperator не поднимает под на время задачи, а потом убивает?
есть параметр is_delete_operator_pod для управления этим поведением
источник