Learning Platform
Глоссарий Troubleshooting
Урок 19.01 · 18 мин
Продвинутый
CapstoneMigrationAirflow 3Upgrade Path

Capstone и Upgrade Path на 3.x — финальный модуль

Финальный модуль — интегральная проверка знаний по Airflow 2.x и practical playbook для migration на 3.x. Capstone-проект объединяет все killer-темы курса в реальный production pipeline.

Уроки модуля

#УрокЧто внутри
01Обзор модуляТекущий урок
02Capstone — design phaseE2E pipeline architecture на Airflow 2.x
03Capstone — implementationDatasets, dynamic mapping, deferrable, custom XCom, OpenLineage
04Capstone — K8s deploymentHelm chart, HA setup, Multiple Executors
05Migration 2.x → 3.x — overviewЧто меняется, breaking changes, timeline
06Migration toolsairflow upgrade-check, ruff AIR301/AIR302
07Migration — DAG code changesImports, decorators, Datasets→Assets rename
08Migration — infrastructure changesDAG Processor mandatory, Task SDK, FAB removal, FastAPI
09Step-by-step playbookPre-requisites checklist, exact day-of commands, rollback procedure
10What’s nextResources, career paths, alternatives (Dagster, Prefect, Temporal)

Capstone проект на Airflow 2.x

Задача: Real-time orders ETL pipeline.

Архитектура:

PostgreSQL (orders DB)
    ↓ CDC через Debezium
Kafka topics (orders, items, customers)
    ↓ Airflow DAG triggered by dataset (AIP-48)
Spark transformation (через KubernetesPodOperator)
    ↓ Dataset emission
Iceberg lakehouse (через SparkSubmitOperator)
    ↓ Dataset cascade
ClickHouse OLAP (через ClickHouseOperator)
    ↓ Notify
Slack alerts (через deferrable sensor)

Что демонстрируется (всё в 2.x):

  • ✅ Datasets (M8) для data-aware scheduling (AIP-48, 2.4+)
  • ✅ Dynamic Task Mapping (M7) для parallel processing файлов (AIP-42, 2.3+)
  • ✅ Deferrable Sensors (M9) для Kafka topic monitoring (AIP-40)
  • ✅ Custom XCom Backend на S3 (M6)
  • ✅ OpenLineage automatic emission (M14) → Marquez
  • ✅ Multiple Executors (AIP-61, 2.10+) — light tasks на Celery, Spark на K8s
  • ✅ Vault Secrets Backend (M10) для DB credentials
  • ✅ HA Setup (M15) — 2 scheduler, 2 triggerer

Migration 2.x → 3.x — критические изменения

Breaking changes

Что2.x3.x
Importsfrom airflow.decorators import dag, taskfrom airflow.sdk import dag, task
DAG processorPool внутри scheduler (опционально standalone)Mandatory отдельный процесс (AIP-66)
Worker DB accessDirect SQLAlchemyТолько через REST API (AIP-72 Task SDK)
WebserverFlask + Flask-AppBuilderFastAPI API Server + React UI
execution_dateЧасто используетсяDeprecated — use logical_date (AIP-83)
SubDAG operatorДоступен (deprecated)Удалён
SmartSensorУже удалён в 2.xУдалён
Datasetsfrom airflow import DatasetAssets: from airflow.sdk import asset (AIP-74)
FAB authBuilt-inPluggable (AIP-79)
REST APIv1 (Flask-RESTful)v2 (FastAPI с OpenAPI)

Migration tools

# 1. Static check
airflow upgrade-check --to-version 3.0

# 2. Ruff rules
pip install ruff
ruff check --select AIR301,AIR302 dags/

# 3. Test new imports
ruff check --fix --select AIR301 dags/  # автозамена импортов

Step-by-step playbook

  1. Upgrade to 2.11.x (LTS) — последняя 2.x с migration helpers (airflow upgrade-check)
  2. Fix airflow upgrade-check warnings все
  3. Backup metadata DB
  4. Pause all DAGs через UI
  5. Wait for in-flight TaskInstances — все должны завершиться
  6. Upgrade Airflow 2.11 → 3.0/3.2 через pip install или Helm chart upgrade
  7. Run airflow db migrate
  8. Verify — check standalone DAG Processor process, FastAPI API Server health
  9. Unpause DAGs gradually

Что особенно стоит migrate сначала

  • TaskFlow API DAGs — migration через ruff AIR301 (auto-rename imports)
  • Datasets → Assets — функционально совместимо, но API меняется
  • execution_datelogical_date (AIR302)
  • SubDAG → TaskGroup — если ещё не сделали в 2.x

Killer takeaway

Migration 2.x → 3.x — не косметический upgrade. Это архитектурный сдвиг — Task SDK boundary, standalone mandatory DAG Processor, FastAPI server, Datasets→Assets, FAB removal. Делайте миграцию planned, с testing на staging environment минимум 2 недели. Большинство production deployments в 2026 ещё на 2.10/2.11 (LTS) — спешка не нужна.

Что дальше

Курс закончен. Если хотите углубиться:

  • Astronomer Academy — community courses с certification
  • Airflow Summit — annual conference, talks доступны online
  • Apache Airflow Slack — community Q&A
  • Дальнейшие шаги — изучите Dagster (asset-first подход), Prefect 3 (dynamic), Temporal (durable execution) для расширения архитектурного видения

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 10