Вопрос проверяет понимание архитектуры Airflow и того, какие компоненты за что отвечают в системе.
Airflow состоит из нескольких ключевых компонентов: scheduler, webserver, metadata database и executor. Scheduler решает, какие задачи и когда запускать. Webserver предоставляет интерфейс для мониторинга и управления. Metadata database хранит состояние DAG и задач. Executor отвечает за фактическое выполнение задач.
Airflow architecture — это набор сервисов, которые совместно управляют планированием, запуском и мониторингом workflow.
Scheduler — «мозг» Airflow.
Он отвечает за:
чтение DAG-файлов;
определение, какие задачи готовы к запуску;
постановку задач в очередь на выполнение.
Важно:
scheduler не выполняет задачи сам;
он только принимает решение, что и когда запускать.
Executor определяет, где и как будет выполняться задача.
Типовые варианты:
SequentialExecutor — локально, по одной задаче (dev);
LocalExecutor — параллельно на одной машине;
CeleryExecutor — распределённо через очередь;
KubernetesExecutor — каждая задача в отдельном pod.
Выбор executor напрямую влияет на масштабируемость.
Workers — это процессы или контейнеры, которые:
получают задачу от executor;
выполняют пользовательский код;
возвращают результат выполнения.
Именно здесь выполняются Python-скрипты, SQL-запросы и вызовы API.
Metadata DB хранит состояние системы:
статусы DAG и задач;
расписания;
retries;
XCom;
информацию о выполнениях.
Чаще всего используется PostgreSQL или MySQL.
Важно:
потеря базы = потеря состояния Airflow;
это критический компонент.
Webserver предоставляет UI:
просмотр DAG;
логов задач;
ручной запуск;
управление паузами и параметрами.
Webserver:
не участвует в выполнении задач;
может масштабироваться независимо.
Airflow состоит из набора специализированных компонентов, где scheduler принимает решения, executor и workers выполняют задачи, а metadata database хранит состояние. Понимание этой схемы важно для стабильной работы и масштабирования.