LINUX.ORG.RU
ФорумTalks

Написал 3 DAG-а под Apache Airflow, заново полюбил Google K8s

 , ,


0

1

Всем привет.

Если кратко, создавая приложения под k8s, гораздо меньше способов выстрелить себе в ногу, а далее чуть подробнее:

Почему я сравниваю тёплое с мягким? По некоторым видам задач, эти системы взаимозаменяемы, поэтому может быть желание не использовать переусложнённый кубер, а накОть тёплый ламповый Airflow, с кнопочками в интерфейсе.

В Airflow получается одна большая кодовая база в одном репозитории, у нас на некоторых серверах по 100+ DAG-ов, это удобно когда нужно вносить правки сразу в нескольких местах, но это же и создаёт проблему. Я использую VSCode не так давно, но например уже прочувствовал мощь «Ctrl+Z» который откатывает какие-то изменения, возможно, там где ты этого не ждёшь. В k8s же ты имеешь дело одновременно только с кодом одного приложения, и случайные ошибочные правки поломают только его. То есть изоляция приложений на уровне кода репозитория. Если ты сломал репку k8s, ты об этом узнаешь еще на dev, если ты сломал чужой DAG, об этом узнает его владелец, при этом, возможно, очень не скоро.

Что с этим делать? Качать мускул аккуратности, следить за всем подряд, нарабатывать какие-то методики, которые у меня сейчас в вербальную форму не оформились.

Свалка переменных окружения (Variables). Куча изоляций k8s, которая так надоедает начинающим разработчикам, что они с радостью отдают разбираться с ней devops-ам, снова оказывается плюсом данной системы. В Airflow у тебя перед глазами сразу всё что есть на инстансе, что может казаться удобным, пока количество переменных не перевалит за 3, 4, 5-ю сотню. В общем что-то «поломать», что не относилось к нужному проекту опять не иллюзорная. И как и в прошлый раз, если что-то поломаешь, узнаешь об этом спустя какое-то время.

Что делать? Снова качать мускул аккуратности.

Безопасность. Код разных владельцев в одном репозитории, вызов любой переменной в рантайме любым DAG-ом, достаточно знать имя ключа.

Вот такое впечатление первое, видимо, дефолт в Airflow, как это иногда бывает сломанный, и использовать его никак нельзя.

С одной стороны, ошибки правок это совсем детская проблема, а с другой стороны все мы люди и иногда ошибаемся.

Накидайте best practice плиз? Я собственно за этим

:)



Последнее исправление: unclestephen (всего исправлений: 2)

На такой поток сознания сложно что-то накинуть. Запускать в эйрфлоу таски в виде к8с джоб и не стараться писать меньше бизнес логики в дагах - бест практис.

stave ★★★★★
()
Ответ на: комментарий от stave

На такой поток сознания сложно что-то накинуть.

ну я в своём репертуаре, прошу понять и простить

Запускать в эйрфлоу таски в виде к8с джоб и не стараться писать меньше бизнес логики в дагах - бест практис.

а теперь я уже не понял, на Airflow таски в виде k8s джоб это как?

unclestephen
() автор топика

Что такое Апач аирфлоу и кто такие DAG’и? Почему для куба можно иметь маленькие репозитории по проектам, а для альтернативы всё должно быть в одном месте со всеми вытекающими последствиями? Может я обгорел на солнце и туплю, но вот такие вот вопросы возникли.

Irben ★★★
()
Ответ на: комментарий от unclestephen

Лады, я почитал что такое аирфлоу и ещё больше не понял тему. Разве нельзя писать пайпы для аирфлоу каждый в своём репозитории? И наоборот, что мешает использовать один репозиторий для написания сотен приложений, которые будут крутиться в кубере? Мне кажется проблема в организации разработки, а не в инструментах. Расскажи, коли я не прав.

Irben ★★★
()
Ответ на: комментарий от Irben

Разве нельзя писать пайпы для аирфлоу каждый в своём репозитории?

вот уже думаю что эта проблема решаема, но остаются другие

выяснил, вроде там сбоку можно прикрутить Vault, нужно копать в эту сторону

unclestephen
() автор топика

airflow нельзя заменить на k8s и обратное тоже верно. это взаимодополняющие штуки а не взаимоисключающие

loki_ ★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)