Курс Apache Airflow 2.0

UPDATE: Курс доступен на платформе StartDataJourney, разработанной мною же. Приятного обучения - Apache Airflow 2.0: практический курс.

Наверняка вы читали мой пост про введение в Apache Airflow. Многое с тех пор изменилось в инструменте, в декабре 2020 года вышла новая версия Apache Airflow 2.0. В ней появилось множество интересных фишечек:

  • TaskFlow API
  • полноценный REST API
  • обновлённый UI, он теперь выглядит свежим
  • отказоустойчивый планировщик, отныне он не является точкой отказа
  • серьёзные улучшения по производительности Airflow
  • Task Group на замену SubDAGs
  • умные сенсоры

Сейчас Apache Airflow чуть ли не главный инструмент в арсенале современного дата инженера. В описании почти любой вакансии на должность дата инженера требуется навык работы с ним.

В связи с этим я решил создать практический курс по работе с Apache Airflow версии 2 и выше. В нём я постараюсь раскрыть весь инструмент, рассказать про основные компоненты, подводные камни. Безусловно не обойдётся и без практических примеров. Я разработаю как можно больше реальных примеров построения дата пайплайнов, затрону самые популярные операторы, работу с облаками и деплой в продакшен на базе Celery и Kubernetes.

Формат курса будет смешанный, но доминировать будет текст. Там где целесообразно продемонстрировать функционал или пример через видео будет видеоряд, но я сторонник текстовых курсов как с точки зрения потребителя так и создателя. У меня уже был опыт создания подобного формата курса про менее известный инструмент Luigi.

Почему Apache Airflow

Apache Airflow впервые появился в 2014 году в компании Airbnb. С января 2019 года является Top-Level проектом в организации Apache Foundation. Среди пользователей этого инструмента есть такие компании как Adobe, Lyft, Uber, Reddit, Google, Rambler, Alfa-Bank и даже Robinhood, и многие другие не менее известные компании. В декабре 2020 года вышла версия 2.0 в которой появилось очень много серьёзных улучшений. Именно второй версии посвящен этот курс.

Почему же стоит использовать Apache Airflow как основной worflow manager?

  1. У технологии огромное количество последователей и большое сообщество разработчиков. Например, ежегодно проходит Airflow Summit на котором собираются разработчики Airflow и все неравнодушные. Доклады с конференции можно увидеть на Ютуб-канале. Вот, например, видео-доклады с Airflow Summit 2020. И даже есть свой подкаст.
  2. Ведущие облачные провайдеры внедряют Airflow как сервис. Т.е. они предоставляют услугу Apache Airflow и берут на себя бремя администрирования им. Например, сервис Composer от Google Cloud и Managed Airflow от Amazon Web Services. Я думаю совсем скоро что-то подобное мы увидим и от Microsoft Azure. Также существует независимый SaaS продукт Astronomer. К слову, они одними из первых внедрили такую услугу. Такая инициатива от лидеров индустрии лишь подтверждает устойчивое положение Apache Airflow на рынке workflow инструментов.
  3. Apache Airflow был создан пионером области data engineering Maxime Beauchemin, человеком который разбирается в том что требуется дата инженерам в повседневной работе. И ни смотря на том, что индустрия активно развивается, Apache Airflow также не стоит на месте. Чего стоит мажорный релиз второй версии, куда вошли такие фичи как Taskflow API, отказоустойчивый планировщик, полноценная поддержка REST API и множество других мелких правок.

Несомненно Apache Airflow далеко не единственный инструмент в арсенале современных дата инженеров. За последние несколько лет появилось множество интересных технологий для построения дата пайплайнов в том числе в экосистеме Python:

  1. Prefect — относительно новый workflow менеджер с открытым исходным кодом. Среди создателей есть люди, принимавшие участие в разработке Airflow. Ребята помимо продукта также развивают одноименной облачный сервис Prefect Cloud для тех, кто не хочет самостоятельно заниматься администрирование Prefect.
  2. Luigi — детище компании Spotify. Пожалуй, мой любимый workflow менеджер для быстрого старта и запуска своих пайплайнов. По функциональным возможностям он значительно уступает Apache Airflow, но отлично подойдёт для быстрого старта и прототипирования. Если вам хочется больше узнать про него, то обратите внимание на мой небольшой курс про Luigi.
  3. Dagster — также относительно новый инструмент, но активно развивающийся. Среди разработчиков Dagster есть автор GraphQL. Выглядит система внушительно, но пока активно развивается, считать её стабильной ещё рано.

Здоровая конкуренция среди workflow менеджеров это отлично. Apache Airflow за последний год претерпел приятные изменения, думаю без влияния конкурентов не обошлось. Область не стоит на месте, а с ней и инструменты.

План курса

  • Краткий экскурс в мир workflow менеджеров и Apache Airflow
  • Установка и настройка
    • Запуск через Docker, docker-compose
    • Установка и настройка в виртуальное окружение (Linux, WSL 2)
  • Компоненты Apache Airflow
    • Веб-сервер и графический интерфейс
    • База данных
    • DAG
    • Операторы, сенсоры, хуки
    • Планировщик
    • Типы Executors
    • Что нового появилось в Apache Airflow 2.0
      • TaskFlow API
      • Task Groups
      • Отказоустойчивый Scheduler
  • Практические примеры
    • Загружаем данные NYC Yellow Taxi
    • Строим Data Lake в AWS с помощью Airflow
    • Работа с XCom
    • Branching, ShortCircuitOperator, TriggerDagRunOperator
  • Мониторинг в Apache Airflow
  • Тестирование пайплайнов
  • Советы по безопасности при работе с Airflow
  • Облачные решения
    • AWS Managed Airflow
    • Google Cloud Composer
    • Деплой Airflow на базе Celery в прод

План курса приблизительный, в процессе разработки скорее всего он будет меняться. Несколько практических примеров я уже реализовал, хочется покрыть как можно больше кейсов, связанных с Airflow, включая branching, запуск DAG из другого DAG, обмен информацией между операторами и многое другое. Работа ведётся.