Prefect 3: Python-оркестратор для data pipeline
Prefect — open-source фреймворк для оркестрации data pipeline на Python. Версия 3.x, 23k+ звёзд на GitHub, 200M задач в месяц через Prefect Cloud.
Скрипт становится продакшн-пайплайном за минуты
Prefect — это open-source движок оркестрации, который превращает обычные Python-функции в production-grade data pipeline с минимальными усилиями. Вы описываете и планируете рабочие процессы на чистом Python — никакого DSL или сложных конфигурационных файлов — и запускаете их там, где работает Python. Репозиторий PrefectHQ/prefect насчитывает более 22 800 звёзд и 2 400 форков на GitHub, а актуальная ветка — версия 3.x.
Что такое Prefect и зачем он нужен
С Prefect можно строить устойчивые, динамичные data pipeline, которые реагируют на окружающую среду и восстанавливаются после непредвиденных сбоев. Всего несколько строк кода дают командам возможность уверенно автоматизировать любой процесс с функциями планирования, кэширования, повторных попыток и event-based автоматизаций.
«Prefect — это самый простой способ превратить скрипт в продакшн-воркфлоу.»
Одним декоратором любая Python-функция становится устойчивым и наблюдаемым воркфлоу. Из коробки доступны: автоматическое отслеживание состояний, обработка сбоев, мониторинг в реальном времени и многое другое.
Prefect требует Python 3.10+. Установка одной командой:
pip install -U prefect
# или через uv
uv add prefect
Как это работает: flow и task
Основные строительные блоки — декораторы @flow и @task. Flow (поток) — это главная единица работы, task (задача) — отдельный шаг внутри потока.
from prefect import flow, task
import httpx
@task(log_prints=True)
def get_stars(repo: str):
url = f"https://api.github.com/repos/{repo}"
count = httpx.get(url).json()["stargazers_count"]
print(f"{repo} has {count} stars!")
@flow(name="GitHub Stars")
def github_stars(repos: list[str]):
for repo in repos:
get_stars(repo)
if __name__ == "__main__":
github_stars(["PrefectHQ/prefect"])
После запуска поднимаем локальный сервер и открываем UI по адресу http://localhost:4200:
prefect server start
Чтобы запускать воркфлоу по расписанию, достаточно одной строки:
github_stars.serve(
name="first-deployment",
cron="* * * * *",
parameters={"repos": ["PrefectHQ/prefect"]}
)
Архитектура: от скрипта до продакшна
graph TD
A[Python-скрипт] -->|@flow + @task| B[Prefect Flow]
B --> C{Где запускать?}
C -->|Локально| D[prefect server start]
C -->|В облаке| E[Prefect Cloud]
C -->|Своя инфра| F[Self-hosted Server]
D --> G[UI: localhost:4200]
E --> G2[Cloud Dashboard]
F --> G3[Self-hosted UI]
G --> H[Мониторинг & Алерты]
G2 --> H
G3 --> H
Work pools (пулы работников) отделяют код от места его выполнения. Можно переключаться с Docker на Kubernetes или serverless — воркфлоу при этом не меняется.
Self-hosted vs Prefect Cloud
| Параметр | Self-hosted Server | Prefect Cloud |
|---|---|---|
| Стоимость | Бесплатно | Есть free tier (2 пользователя, 5 воркфлоу) |
| Инфраструктура | Ваша | Управляемая PrefectHQ |
| Мониторинг | Локальный UI | Cloud Dashboard |
| Масштабирование | Ручное | Автоматическое (serverless workers) |
| Безопасность | Полный контроль | Данные не покидают вашу инфру |
| Event-триггеры | Поддерживаются | Расширенные автоматизации |
Prefect Cloud — это полностью управляемый, высокодоступный control plane. Воркфлоу можно запускать как в инфраструктуре Prefect, так и в своей собственной.
prefect-client. Это более лёгкая опция для клиентской функциональности Prefect SDK, идеальная для эфемерных сред выполнения.Prefect Cloud в цифрах
Автоматизируя более 200 миллионов задач ежемесячно, Prefect работает с организациями самого разного масштаба — от компаний из списка Fortune 50, таких как Progressive Insurance, до инновационных стартапов вроде Cash App — помогая повышать продуктивность инженеров, снижать количество ошибок в pipeline и сокращать затраты на вычисления.
Актуальная ветка — Prefect 3, которая предлагает новые возможности и улучшенную производительность по сравнению с Prefect 2.
Интеграция с AI-агентами
Одна из свежих тенденций — использование Prefect вместе с MCP-серверами и AI-агентами. Prefect MCP Server позволяет подключать AI-ассистентов — Claude Code, Cursor, Codex CLI и Gemini CLI — к рабочей среде Prefect. Установив его один раз, можно инспектировать деплойменты, запуски flow и task, а также логи прямо из AI-инструментов.
Сообщество и лицензия
Вокруг Prefect выросло сообщество из более чем 25 000 практикующих специалистов, которые решают с его помощью задачи в области данных.
Движок Prefect распространяется под лицензией Apache 2.0 — можно форкать, модифицировать и строить на его основе коммерческие продукты.
Prefect — не просто инструмент планирования задач. Это полноценная платформа наблюдаемости и управления потоками данных, которая органично вписывается в экосистему Python и современные AI-рабочие процессы.
Ссылки: GitHub · Документация · Prefect Cloud