Где развернуть Apache AirFlow: 3 инфраструктуры для дата-инженера

Автор Категория ,
Где развернуть Apache AirFlow: 3 инфраструктуры для дата-инженера

Для практического использования Apache Airflow в production дата-инженеру необходимо не только обучение основам работы с этим фреймворком, но и знания о базовой инфраструктуре его развертывания. Поэтому сегодня поговорим о 3-х популярных средах для развертывания и сопровождения этого ETL-фреймворка: Astronomer, Google Cloud Composer и Amazon Managed Workflows, разобрав их основные возможности и стоимость.

Решения компании Astronomer

Подобно тому как Confluent продвигает и коммерциализирует Apache Kafka, а Databricks – Spark, компания Astronomer вносит значительный вклад в разработку и распространение Airflow, включая упрощение внедрения и поддержки фреймворка. Для этого Astronomer предлагает 2 продукта: Cloud и Enterprise, которые предоставляют похожие функциональные возможности, но отличаются деталями реализации и стоимостью.

Astronomer Cloud – это полностью управляемое SaaS-решение в облачной среде Astronomer, которое абстрагирует пользователя от обслуживания Airflow, позволяя сосредоточиться на создании рабочих процессов с помощью DAG. Это не совсем serverless-инструмент: пользователям по-прежнему необходимо выделить ресурсы для работы фреймворка, но это становится проще через пользовательский веб-интерфейс Astronomer.

Цены на Astronomer Cloud зависят от понятия Astronomer Unit (AU), основанного на базовом объеме памяти и распределения ЦП. Например, в апреле 2021 года 1 AU включает 0,1 ЦП и 0,375 ГБ памяти и стоит 10 долларов в месяц. Пользователь может настроить, выделение AU рабочим узлам (worker’ам), веб-серверу и планировщикам в по своим потребностям [2].

А если необходимо запустить Apache AirFlow от Astronomer в полностью контролируемой корпоративной среде, например, Kubernetes, пригодится Astronomer Enterprise. Эта среда может работать в облаке на Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service, Amazon Elastic Kubernetes Service или в локальном кластере предприятия. Стоимость Astronomer Enterprise определяется индивидуально [3].

Google Cloud Composer

Также значительный вклад в развитие Apache Airflow вносит компания Google, предлагая сервис Cloud Composer на своей облачной платформе (Google Cloud Platform). При создании среды Composer база данных фреймворка и веб-сервер создаются в проекте арендатора GCP вместе с кластером GKE, который запускает планировщик и рабочие процессы. Также в пользовательском проекте автоматически создается корзина Google Cloud Storage (GCS), где находятся DAG, журналы и плагины, например, для управления взаимозависимыми DAG’ами, о чем мы писали здесь.

После настройки проекта можно загрузить DAG-файлы в папку /dags/ в корзине GCS, чтобы автоматически синхронизовать их с пользовательской средой Airflow. Cloud Composer автоматически сгенерирует URI, который позволит получить доступ к веб-серверу в браузере. Также доступен инструмент командной строки gcloud для выполнения команд Airflow CLI. Вызовы сервисов к проекту клиента аутентифицируются через Identity-Aware Proxy (IAP) Google, а контроль доступа конечных пользователей к среде Composer настраивается через систему управления идентификацией и доступом (IAM, Identity and Access Management) GCP. Более детальный контроль доступа по ролевой модели (RBAC, Role-Based Access Control) можно в пользовательском интерфейсе Airflow RBAC.

Цена на Google Cloud Compser зависит от параметров конфигурации среды, таких как [4]:

  • Ресурсы в проекте арендатора GCP (база данных в Cloud SQL и веб-сервер Airflow)
  • Ресурсы в пользовательском проекте GCP (кластер GKE с планировщиком и рабочими узлами, сегмент GCS для хранения DAG, подключаемых модулей и журналов, мониторинг Google Cloud).

Подсчитать точную стоимость развертывания Apache AirFlow в Cloud Composer можно с помощью калькулятора цен GCP [5].

Amazon Managed Workflows для Apache Airflow

Amazon Managed Workflows для Apache Airflow (MWAA) – это полностью управляемая служба Airflow на Amazon Web Services (AWS). При создании среды управляемого рабочего процесса, база данных и веб-сервер Airflow развертываются во внутреннем виртуальном частном облаке (VPC) вместе с планировщиком и рабочими процессами. Пользовательские DAG и плагины AirFlow хранятся в корзине AWS S3, где они автоматически синхронизируются с пользовательской средой фреймворка. Журналы передаются в CloudWatch, а доступ к пользовательскому веб-интерфейсу Airflow возможен через консоль AWS и интерфейс командной строки. Аутентификация выполняется через AWS SSO для пользовательского интерфейса или с помощью AWS IAM, чтобы создать токен входа для программного доступа.

Стоимость Amazon MWAA складывается из фиксированных и переменных затрат [6]:

  • Фиксированная цена за размер базы данных в зависимости от масштаба среды (малый, средний или большой), планировщика и одного основного worker’а;
  • дополнительные рабочие экземпляры – переменная стоимость по запросу (on-demand) в зависимости от использования;
  • плата за журналы CloudWatch и передачу данных, используемых в VPC рабочими узлами;
  • плата за корзину S3 для размещения пользовательских DAG’ов и плагинов Apache AirFlow.

Оптимизировать стоимость Amazon MWAA можно, настроив автомасштабирование количества рабочих экземпляров в зависимости от периодов загрузки.

Amazon Managed Workflows для Apache Airflow, MWAA, AWS AirFlow
Компоненты Amazon Managed Workflows для Apache Airflow (MWAA)

Узнайте больше про практическое использование Apache AirFlow для разработки сложных конвейеров аналитики больших данных с Hadoop и Spark на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://medium.com/apache-airflow/managed-apache-airflow-c361f4c8a4e1
  2. https://www.astronomer.io/docs/cloud
  3. https://www.astronomer.io/docs/enterprise
  4. https://cloud.google.com/composer/docs/how-to/accessing/airflow-web-interface
  5. https://cloud.google.com/products/calculator
  6. https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html