Managed Airflow позволяет разворачивать инстанс Airflow. С помощью Airflow вы можете планировать и контролировать сложные рабочие процессы, объединять задачи в цепочки (пайплайны) и автоматизировать их.
При создании инстанса можно выбрать один из образов:
Стандартный — включает дополнительные библиотеки и компоненты, более универсальный вариант для сложных задач.
Облегченный — включает только необходимые компоненты, более быстрый и защищенный вариант для тестирования и небольших задач.
Все процессы в Managed Airflow описываются в DAG-файлах на языке Python.
DAG (Directed Acyclic Graph) — схема (граф), которая описывает порядок выполнения задач и зависимости между ними.
При создании инстанса вы можете выбрать конфигурации следующих модулей:
веб-сервера;
планировщика;
воркеров;
DAG-процессора;
Triggerer.
Выбирайте конфигурации CPU и RAM в зависимости от количества DAG, частоты их запуска, числа одновременно выполняемых задач и требований самих задач к ресурсам.
Веб-сервер предоставляет пользовательский интерфейс и API Apache Airflow. В интерфейсе можно просматривать DAG и задачи, запускать DAG вручную и отслеживать результаты выполнения.
Чем больше ресурсов доступно веб-серверу, тем больше одновременных запросов он может обрабатывать.
Планировщик отслеживает DAG и состояния задач. Когда зависимости задачи выполнены и наступило время ее запуска, планировщик передает задачу исполнителю.
Планировщику может потребоваться больше CPU при большом количестве DAG, коротких расписаниях или большом числе задач, одновременно готовых к запуску.
Воркер обрабатывает задачи, поставленные в очередь планировщиком.
Необходимое число воркеров и их конфигурация зависят от числа задач и потребления CPU и RAM каждой из них. Большое количество воркеров необходимо при большом числе задач, так как они могут долго не выполняться из-за заполненной очереди. Также задачи могут медленно выполняться, если им не достает CPU и RAM.
DAG-процессор загружает DAG-файлы и сохраняет их сериализованное представление в базе метаданных Airflow.
Выбор вычислительных ресурсов зависит от количества DAG-файлов, частоты их обработки, времени импорта Python-кода и сложности формирования DAG.
Triggerer — опциональный компонент, который следит за задачами, ожидающими наступления определенных условий. Благодаря ему такие задачи не занимают воркеры во время ожидания. Triggerer необходим, если в DAG используются отложенные операторы или сенсоры.
Подробнее о компонентах в документации Apache Airflow