Lyft 用它跑了 4 年、每月 100 万次工作流执行——现在 Flyte 2 把这套生产级 ML 编排能力彻底开源了
Lyft 用它跑了 4 年、每月 100 万次工作流执行——现在 Flyte 2 把这套生产级 ML 编排能力彻底开源了
Flyte 最近发布了 v2.0.44,保持着每周一个小版本的迭代节奏。真正值得注意的是:Flyte 2 在今年 3 月正式 GA 之后,核心定位从「ML 流水线编排器」升级成了「AI Agent 编排运行时」。这不是改个描述就完事了——它真正解决了一个很实在的问题:当你的 AI 应用需要在生产环境里跑多个步骤、多个模型、多个外部工具的时候,怎么保证它不崩、怎么让它从崩溃里恢复、怎么让这一切在本地开发和生产部署之间无缝切换。
它到底是什么,适合什么场景
Flyte 的本质是一个声明式的 Python 工作流引擎,跑在 Kubernetes 之上。核心卖点有三个:
1. 纯 Python 创作,无需学新 DSL
工作流直接用 Python 写,装饰器一行搞定,不像 Airflow 需要写 YAML + Python 混合体,也不需要学 KubeFlow 的 DSL。代码可以直接在本地跑、debug、重跑,然后一条命令部署到集群:
import asyncio
import flyte
env = flyte.TaskEnvironment(
name="ml_pipeline",
image=flyte.Image.from_debian_base(python_version=(3, 12)),
)
@env.task(retries=3, cache="auto")
async def train_model(data: list[int]) -> float:
# 训练逻辑
return accuracy
@env.task
async def evaluate(result: float) -> bool:
return result > 0.95
2. 真正 durable 的 Agent 工作流
这是 Flyte 2 的核心升级。如果你做过 Agent 系统,一定遇到过这类问题:模型调用到一半容器被 OOM Kill 了、工作流跑到一半 pod 被抢占、基础设施故障导致整个流程重来。Flyte 2 声称自己能处理这类「基础设施级失败」,包括 OOM 和容器抢占,自己恢复、自己续跑,不需要你写额外的重试逻辑。
3. 动态编排 + 静态 DAG 两不误
传统 ML 编排器要求你在运行前把所有依赖关系写死成 DAG,但 AI Agent 的工作流往往是动态的——需要根据上一步的输出决定下一步调用什么模型、读什么工具。Flyte 2 支持运行时决策(分支、循环、动态资源分配),同时保留了静态 DAG 的可预测性。
在生产环境里真实在用的公司
根据 LibHunt 和 SourceForge 的对比数据,Flyte 在 Lyft 的生产环境里跑了 4 年,管理超过 10,000 个独立工作流,每月执行超过 100 万次,总计运行 2000 万个任务、4000 万个容器。Spotify、Freenome 也在生产环境使用。Amazon、LinkedIn、Stripe、Expedia 则是其企业版客户。
和竞品怎么选
| Flyte | Airflow | Kubeflow | |
|---|---|---|---|
| 定位 | AI/ML/Agent 编排 | 数据流水线 | K8s 上的 ML 工具集 |
| 编程模型 | 纯 Python | Python + YAML | YAML + Python |
| Agent 工作流 | ✅ 原生支持 | ❌ 勉强 | ❌ |
| 本地开发体验 | TUI + Devbox | 弱 | 弱 |
| 动态 DAG | ✅ | ❌ | 部分 |
| 成熟度 | 4 年生产验证 | 更成熟 | 更成熟 |
| 学习曲线 | 中等 | 较低 | 较高 |
如果你在搭 AI Agent 系统、需要跑 LLM Pipeline、或者现有 Airflow 团队想迁移到更现代化的方案,Flyte 值得认真看。如果你只是做简单的定时任务调度,Airflow 够用。
真实使用门槛
适合上的人:
- 有 Kubernetes 基础,了解容器化部署
- 团队有 Python 开发者,不需要专门学 DSL
- 需要跑跨模型、跨步骤的 AI Pipeline,有状态恢复需求
- 需要在多环境(dev/staging/prod)统一工作流管理
不适合的人:
- 小团队快速原型,用 LangChain 的 AgentExecutor 就够了
- 完全不想碰 Kubernetes,需要开箱即用的托管方案(可以考虑 Union.ai 的托管版)
- 工作流是纯静态的 ETL,不需要动态分支
怎么快速体验
本地跑起来只需要几行命令:
# 安装(需要 Python >= 3.10)
uv pip install flyte
# 用 TUI 运行第一个工作流
flyte run --tui your_workflow.py main --data '[1,2,3]'
或者用 Devbox 在 Docker 里跑完整集群:
flyte start devbox
flyte create config --endpoint localhost:30080 --project flytesnacks --domain development
flyte run your_workflow.py main --data '[1,2,3]'
文档在 https://docs.flyte.org,Slack 社区活跃度高,GitHub Discussions 也有不少实战讨论。
下一步建议
如果你想认真评估 Flyte:
评论区
登录后可评论。
