Не только AirFlow: Apache Luigi и еще 3 ETL-оркестратора для Big Data Pipeline’ов

курсы Airflow, обучение Airflow, обучение инженеров данных, инженерия данных, Big Data, Большие данные, обработка данных, Airflow, архитектура, администрирование, Spark, DataOps, MLOps, Python, Kubernetes, DevOps, ETL

Чтобы максимально приблизить обучение Airflow к практической работе дата-инженера, сегодня мы рассмотрим, какие еще есть альтернативы для оркестрации ETL-процессов и конвейеров обработки больших данных. Читайте далее, что такое Luigi, Argo, MLFlow и KubeFlow, где и как они используются, а также почему Apache Airflow все равно остается лучшим инструментом для оркестрации заданий в области Big Data.

 

Еще раз об оркестрации задач в Big Data и Machine Learning: что это такое и зачем нужно

Обычно развитие datadriven инициатив начинается с ручного управления задачами. Например, для машинного обучения (Machine Learning) это будут процессы очистки данных, обучения моделей, отслеживание результатов и развертывание решений на рабочем сервере (production). Эти процедуры растут и усложняются по мере увеличения команды и продвижения самого продукта.  В частности, растет количество повторяющихся шагов, повышается зависимость задач друг от друга и степень их важности (критичность) для бизнеса. Таким образом, появляется целый конвейер (pipeline) задач, которые нужно запускать с некоторой периодичностью в определенном порядке. Далее такой data pipeline становится еще сложнее, превращаясь в сеть задач или направленный ациклический граф (DAG, Direct Acyclic Graph).

Инструменты оркестровки рабочих процессов (workflow) позволяют определять DAG, показывая взаимозависимость входящих в него задач. Далее эти задачи запускаются по нужному расписанию в правильном порядке с отслеживанием прогресса и отправкой уведомлений о возникших сбоях. Например, в состав data pipeline’а могут входить такие задачи, как считывание сообщений из топиков Apache Kafka, их обогащение историческими данными из HDFS с помощью Spark или Hive. При этом периодичность и порядок запуска задач может изменяться в зависимости от бизнес-логики, о чем мы рассказывали здесь на примере оптимизации накладных расходов в управлении data pipeline’ами с помощью Apache AirFlow в Airbnb. С учетом популяризации DataOps-идей, суть любого инструмента оркестровки сводится к обеспечению централизованных, повторяемых, воспроизводимых и эффективных рабочих процессов. Таким образом, средство workflow-оркестрации выступает в качестве единого центра управления для всех автоматизированных задач. В этом контексте на конец 2020 года наиболее известными и часто используемыми оркестраторами для Big Data и Machine Learning процессов являются следующие 5 фреймворков, которые мы рассмотрим далее.

 

Apache Airflow и еще 4 средства оркестровки Data Pipiline’ов

Сегодня наиболее популярным в области Big Data считается Apache Airflow – система управления рабочими процессами с открытым исходным кодом, изначально созданная в Airbnb и позже доступная под лицензией Apache 2.0. О принципах работы, достоинствах и недостатках этого фреймворка мы подробно рассказывали в этом материале.

Наиболее известной альтернативой Apache Airflow можно назвать Luigi – библиотеку Python, которую можно установить с помощью инструментов управления пакетами, таких как pip и conda., Luigi также предназначен для управления рабочими процессами посредством их визуализации в виде DAG-конвейера. Этот фреймворк проще в эксплуатации, чем Airflow, но имеет меньше функций и больше ограничений [1], о которых мы поговорим в следующий раз.

Если Apache AirFlow и Luigi воплощают идеи DataOps, облегчая работу инженера данных с конвейерами их обработки, то Argo и KubeFlow ближе к DevOps-инструментам, т.к. тесно связаны с технологиями контейнеризации. В частности, Argo представляет собой расширение Kubernetes, где каждая задача запускается как отдельный модуль этой платформы контейнеризации. В отличие от Apache AirFlow и Luigi, Argo использует YAML, а не Python для определения DAG-задач. Argo предназначен для оркестровки любых задач в экосистеме Kubernetes. А основанный на нем Kubeflow фокусируется на операциях машинного обучения, таких как отслеживание экспериментов, настройка гиперпараметров и развертыванию модели Machine Learning в production. Еще одним отличием Kubeflow от Argo является язык определения задач: в Argo это YAML, а в Kubeflow – Python.

Таким образом, Kubeflow, как и MLFlow можно отнести к инструментарию MLOps для комплексного и автоматизированного управления жизненным циклом систем Machine Learning. При этом Kubeflow полагается на Kubernetes, а MLFlow – это библиотека Python, которая помогает добавить отслеживание экспериментов в существующий код машинного обучения. Kubeflow позволяет создать полноценный DAG, каждая задача которого представляет собой модуль Kubernetes. MLFlow имеет встроенные функции для развертывания ML-моделей scikit-learn в Amazon Sagemaker или Azure ML. Подробнее о технической реализации MLOps-идей на облачных платформах и других особенностях внедрения этого подхода мы писали здесь.

Резюмируя сходства и отличия рассмотренных инструментов оркестрации рабочих процессов для задач обработки больших данных и машинного обучения, отметим, что они значительно отличаются друг от друга и не могут считаться непосредственными конкурентами. При том, что основным критерием выбора средства оркестровки является его основное назначение, указанное выше, и ключевые функциональные возможности, альтернативные варианты также можно сравнить между собой по следующим критериям [2]:

·       зрелость, выраженная в виде зависимости возраста проекта от количества исправлений и коммитов;

·       популярность как степень распространения на практике и количество звезд на GitHub;

·       простота установки, настройки и эксплуатации;

·       глубина специализации и уровень адаптируемости;

·       язык программирования как основной способ взаимодействия с фреймворком.

 

Airflow, Luigi, Argo, MLFlow, KubeFlow, инженерия больших данных, оркестровка процессов, оркестрация DAG
Сравнение наиболее популярных средств оркестрации рабочих процессов для Big Data и Machine Learning

 

По этим критериям позицию лидера занимает Apache AirFlow, а на втором месте Luigi. Завтра мы поговорим о сходствах и различиях этих систем. А узнать особенности администрирования и эксплуатации Apache Airflow в production на реальных проектах цифровизации частного бизнеса, а также государственных и муниципальных предприятий, вы сможете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

·       Apache AirFlow

·       Построение конвейеров обработки данных с Apache Airflow и Arenadata Hadoop

 

 

Источники

1.       https://www.astronomer.io/guides/airflow-vs-luigi/

2.       https://www.datarevenue.com/en-blog/airflow-vs-luigi-vs-argo-vs-mlflow-vs-kubeflow