Где развернуть 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, чтобы создать токен входа для программного доступа. О том, чем IAM полезен для управления секретами в Apache AirFlow, читайте в нашей новой статье.

Стоимость 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)

В следующей статье мы рассмотрим, какие операторы AirFlow  использовать в разных вариантах развертывания. Узнайте больше про практическое использование 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