Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Автор оригинала: Maxime Beauchemin
В этом посте представлен перевод статьи на Medium от Maxime Beauchemin и Taylor D. Edmiston. Перевод подготовлен при поддержке сообщества аналитического курса DataLearn и телеграм-канала Инжиниринг Данных
С кратким введением и выводами Taylor D. Edmiston
Введение
Иногда мне попадаются статьи о будущем технологий, в которых это будущее выглядит ясно и непротиворечиво.
Недавно это была статья восход дата инжиниринга от Maxime Beauchemin – инженера данных из Airbnb и создателя фреймворка Apache Airflow. В Astronomer Apache Airflow - основа технического стека: наши интеграционные потоки построены как пайплайны данных на направленных ациклических графов (DAG) в Airflow. Такие статьи как эта позволяют понять, почему именно сейчас лучшее время для компаний, таких как Astronomer.
После прочтения статьи я связался с Максом и попросил его об интервью, и к моей огромной радости, он согласился и дал полные ответы на вопросы про Apache Airflow и будущее дата инжиниринга. Его ответы ниже, но сначала я хотел бы добавить немного контекста.
Вы может быть удивлены: “почему дата инжиниринг и почему это важно?”
В “Восходе дата инжиниринга” Макс определяет дата инжиниринг так:
“Дата инжиниринг можно рассматривать как объединение BI и систем хранения данных, которое взяло многое из разработки ПО”
Как таковой “Инженер данных” появился, потому что сегодня компании накопили огромные объемы данных, но чтобы эти объемы были полезны из них надо извлечь ценность. Набор навыков инженера данных - быстро разбираться в таких объемах и масштабах.
Без предисловий, давайте перейдем к ответам Макса на вопросы.
Отличные ребята из Astronomer.io связались со мной чтобы сделать короткое интервью об Apache Airflow и дата инжиниринге. Ниже несколько вопросов и мои ответы.
Вопрос 1: Когда выйдет следующий релиз Apache Airflow и какую из основных фичей ты считаешь главной?
8orc4 (релиз кандидат №4) только что был одобрен комьюнити Apache, но был задержан, после того как разработчики из Airbnb нашли несколько блокеров. Прямо сейчас почти все исправлено и релиз уже близко. Мы ожидаем, что релиз 1.8.0 выйдет на этой или на следующей неделе. Это первый релиз, который “драйвил” только Airbnb. Bolke de Bruin из ING (Нидерланды) проделал впечатляющую работу, чтобы релиз вышел. Это гигантский объем работы, который все время увеличивался, так как время с последнего релиза выросло. Это первый релиз с версии 1.7.1.3, которая вышла 13 июня 2016.
Изменения по сравнению с 1.7.1.3 огромны. Ниже мой список хайлайтов:
многопоточный планировщик, что позволяет гораздо быстрее планировать задачи и повышает отказоустойчивость при импорте DAG файлов. До этого
sys.exit()
в DAG файле выключал планировщикзаменена библиотека для построения графиков с Highcharts на NVD3. У Highcharts была лицензия не совместимая с правилами Apache и замена библиотеки вывела нас из “серой” юридической зоны
UNIX impersonation (при выполнении процесса приложение принимает другой контекст или идентификацию) и cgroups, первое позволяет запускать задачи под заданным пользователем UNIX, второе - ограничивать используемые ресурсы на уровне задачи. Это позволяет не занимать все ресурсы и потоки Airflow только 1 задачей
улучшение интеграции с Google Cloud Services: с улучшением операторов и хуков
улучшенную модульную зависимость, обеспечивающую более легкий в обслуживании и расширяемый код, позволяющая использовать новую фичу в интерфейсе “почему моя задача не выполняется”
исправили все задачи, связанные с “зомби” и “неубиваемыми” процессами
улучшенная обработка пула задач там, где в предыдущих версиях была “избыточная” подписка на задачи из пула
новый набор операторов и хуков
исправлена куча багов и улучшений UI по всем направлениям
Надеемся получить более стабильный релиз согласно этому списку, хотя пока нет официального обязательства сделать это.
Вопрос 2: Как прошел переход с внутреннего инструмента Airbnb на проект Apache?
Все прошло гладко. Apache расширил вклад сообщества позволив внешним контрибьютерам смерджить пуллреквесты, что ускорило скорость изменения проекта. С другой стороны, это замедлило выпуск релиза, заставляя нас справляться с нашей собственной релизной веткой, состоящей из предыдущего официального релиза плюс список “вишенок” (список коммитов, которые мы делаем поверх релиза). Мы также склоняемся к тому, чтобы развивать свою внутреннюю ветку и пушить пуллреквест в коммьюнити, после того как стабилизируем его у себя на продакшене.
Мы очень оценили помощь, которую получили в разработке последнего релиза, и наблюдали как проект развивается самостоятельно при минимальном участии с нашей стороны. Раньше я сам ревьюил и мерджил каждый пуллреквест и за последние несколько лет это вышло из-под контроля. Приятно видеть выход из этого “порочного круга” с течением времени.
Вопрос 3: Каким ты видишь продолжение развития Airflow? Какие новые применения Airflow появятся в течение следующих 5 лет?
Экосистеме инфраструктуры данных еще предстоит продемонстрировать какие-либо признаки превращения в нечто более управляемое. Кажется, мы все еще находимся в стадии расширения, когда каждый день приносит новую распределенную базу данных, новые фреймворки, новые библиотеки и новых коллег. По мере того, как эти системы становятся все более сложными и быстро развиваются становится еще более важным иметь что-то вроде Airflow, который объединяет все вместе в определенном месте, где каждый маленький кусочек пазла может быть правильно оркестрован с помощью “разумного” API.
Можно предположить, что интеграция с другими системами будет зоной роста Airflow, по мере того как в нем появятся все фичи из мира оркестровки.
Там, где изначально предполагалось, что Airflow будет использоваться главным образом как оркестратор, а не брать на себя реальную нагрузку, оказалось что многие используют Airflow для более сложных задач таких как: запуск скриптов на R, задачи обработки данных на Python, обучение ML моделей, ранжирование… В то время как мы внутренне поощряем людей писать сервисы и использовать инфраструктуру, такую как Kubernetes или Yarn для такого рода задач, похоже, что Airflow нужно расти и в этом направлении тоже, с поддержкой контейнеризации (пожалуйста, запустите эту задачу в этом контейнере Docker!), и управлениями ресурсами (выделите 4 CPU и 64 ГБ оперативной памяти для этой задачи, пожалуйста). Мы знаем об ограничениях, которые могут возникнуть у людей в их средах, и хотим позволить им получить максимальную отдачу от Airflow. Так что если у вас завалялся кластер Kubernetes, мы должны максимально использовать его, но если вы этого не хотите, хотелось бы, чтобы вы смогли запустить эти в Airflow.
Я верю, что Airflow подходит для того, чтобы стать батч процессинг оркестратором, который будет доминировать в ближайшие 5 лет. У нас есть прочная технологическая основа и большое, динамично развивающееся сообщество!
Вопрос 4: Как ты оцениваешь подобные технологии, такие как Luigi, Azkaban и тд?
Сам я не использовал Luigi, Azkaban или Oozie, так что я просто повторю слова тех, кто перешел из этих сообществ и присоединились к Airflow.
Про Luigi - в области применения он проще, чем Airflow, и, возможно, мы больше дополняем друг друга, чем конкурируем. Из того что я знаю - основной мэйнтэйнер проекта ушел из Spotify и, по-видимому, теперь они используют Airflow внутри, по крайне мере для некоторых своих задач. Я не знаю всей истории и хотел бы услышать больше. Я полагаю, что многие компании, выбирающие Luigi сегодня, возможно в будущем также выберут Airflow, когда им понадобятся доп. функции. которые есть в Airflow.
Про Azkaban - мне не очень понятно, кто его использует вне Linkedin. Кажется, что проект сейчас не имеет активного сообщества и я сомневаюсь, что он будет развиваться в этом направлении. Я слышал о нескольких забавных случаях, когда компании использовали Azkaban вне Linkedin, но только тогда, когда кто-то из Linkedin близкий к проекту приходил и хотел использовать только то, что знает.
Oozie — это то ПО, о котором я слышал больше всего негативных отзывов. Попробуйте найти хоть одного пользователя Oozie (но только не из разработчиков самого Oozie), который бы положительно отзывался о нем. Просто попробуйте! Возможно, это именно тот случай, когда проект закрыл основные проблемы, но люди продолжают жаловаться, я думаю что проект уже скомпрометирован и это не исправить.
Я твердо верю в конфигурацию как код, как способ создания рабочих процессов, и я вижу, что актуальность Airflow в современной экосистеме данных неуклонно растет. Определенно кажется, что каждый стартап, серьезно относящийся к данным и аналитике в районе Bay Area, на данный момент использует Airflow.
Вопрос 5: Как дата инжиниринг как дисциплина изменит стартапы в ближайшие 5 -10 лет?
Современные стартапы больше не относятся к аналитике и данным как к чему-то второстепенному. Как правило они нанимают первого data scientist`а на ранней стадии и первая волна разработчиков будет использовать необходимые аналитические инструменты в ранних версиях продукта. Венчурные инвесторы требуют отчетности и могут предоставить услуги “grow hacker” на ранней стадии, чтобы дать рекомендации стартапу и измерить их потенциальную отдачу от инвестиций и посмотреть, где можно удвоить.
Я думаю, что будущие стартапы будут катапультированы вверх по кривой зрелости данных с доступом к лучшему, более дешевому и доступному аналитическому ПО и услугам. Большая часть работы уже реализуется с помощью опенсорса, но также растет число интегрированных решений поставщиков, таких как MixPanel, Interana, Optimizely, и растет предложение облачных провайдеров, таких как AWS, GCS и Microsoft.
Вещи, которые раньше были передовыми, такие как OLAP в реальном времени, обнаружение аномалий, A/B-тестирование и сегментация пользователей, когортный анализ, теперь доступны любому стартапу с любым количеством сотрудников и должным финансированием.
В то время как эти предложения становятся все более доступными, они становятся необходимостью для поддержания конкурентоспособности и предоставляют возможности гибким стартапам перепрыгивать через медленных игроков в этой области.
Заключение
В 2011 году Marc Andreessen написал популярную статью "Почему программное обеспечение пожирает мир". В 2017 году компьютеры, на которых работает все это программное обеспечение, производят горы данных, большая часть которых ценна, но только с помощью правильных инструментов, чтобы разобраться во всем этом.
Airflow предоставляет абстракцию на уровне рабочего процесса для конвейеров данных. Astronomer's DataRouter использует его в качестве сервиса для передачи данных из любого источника в любое место назначения. Вы можете узнать больше о том, как Astronomer использует Airflow и наши принципы опенсорса в блоге.
Стартапы больше не просто создают ПО — мы создаем продукты и компании, в которых анализ данных является топливом, питающим космический корабль. По мере того, как экосистема разработки данных продолжает развиваться, ожидания относительно количества и качества информации, которую стартапы черпают из своих различных источников данных, также будут продолжать расти.
** Особая благодарность Максу за то, что он нашел время поговорить с нами и поделиться своими мыслями. **