Capstone и Upgrade Path на 3.x — финальный модуль
Финальный модуль — интегральная проверка знаний по Airflow 2.x и practical playbook для migration на 3.x. Capstone-проект объединяет все killer-темы курса в реальный production pipeline.
Уроки модуля
| # | Урок | Что внутри |
|---|---|---|
| 01 | Обзор модуля | Текущий урок |
| 02 | Capstone — design phase | E2E pipeline architecture на Airflow 2.x |
| 03 | Capstone — implementation | Datasets, dynamic mapping, deferrable, custom XCom, OpenLineage |
| 04 | Capstone — K8s deployment | Helm chart, HA setup, Multiple Executors |
| 05 | Migration 2.x → 3.x — overview | Что меняется, breaking changes, timeline |
| 06 | Migration tools | airflow upgrade-check, ruff AIR301/AIR302 |
| 07 | Migration — DAG code changes | Imports, decorators, Datasets→Assets rename |
| 08 | Migration — infrastructure changes | DAG Processor mandatory, Task SDK, FAB removal, FastAPI |
| 09 | Step-by-step playbook | Pre-requisites checklist, exact day-of commands, rollback procedure |
| 10 | What’s next | Resources, 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.x | 3.x |
|---|---|---|
| Imports | from airflow.decorators import dag, task | from airflow.sdk import dag, task |
| DAG processor | Pool внутри scheduler (опционально standalone) | Mandatory отдельный процесс (AIP-66) |
| Worker DB access | Direct SQLAlchemy | Только через REST API (AIP-72 Task SDK) |
| Webserver | Flask + Flask-AppBuilder | FastAPI API Server + React UI |
| execution_date | Часто используется | Deprecated — use logical_date (AIP-83) |
| SubDAG operator | Доступен (deprecated) | Удалён |
| SmartSensor | Уже удалён в 2.x | Удалён |
| Datasets | from airflow import Dataset | Assets: from airflow.sdk import asset (AIP-74) |
| FAB auth | Built-in | Pluggable (AIP-79) |
| REST API | v1 (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
- Upgrade to 2.11.x (LTS) — последняя 2.x с migration helpers (
airflow upgrade-check) - Fix
airflow upgrade-checkwarnings все - Backup metadata DB
- Pause all DAGs через UI
- Wait for in-flight TaskInstances — все должны завершиться
- Upgrade Airflow 2.11 → 3.0/3.2 через
pip installили Helm chart upgrade - Run
airflow db migrate - Verify — check standalone DAG Processor process, FastAPI API Server health
- Unpause DAGs gradually
Что особенно стоит migrate сначала
- TaskFlow API DAGs — migration через ruff AIR301 (auto-rename imports)
- Datasets → Assets — функционально совместимо, но API меняется
execution_date→logical_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) для расширения архитектурного видения