Для практического использования 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 можно, настроив автомасштабирование количества рабочих экземпляров в зависимости от периодов загрузки.
В следующей статье мы рассмотрим, какие операторы AirFlow использовать в разных вариантах развертывания. Узнайте больше про практическое использование Apache AirFlow для разработки сложных конвейеров аналитики больших данных с Hadoop и Spark на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники
- https://medium.com/apache-airflow/managed-apache-airflow-c361f4c8a4e1
- https://www.astronomer.io/docs/cloud
- https://www.astronomer.io/docs/enterprise
- https://cloud.google.com/composer/docs/how-to/accessing/airflow-web-interface
- https://cloud.google.com/products/calculator
- https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html