
Pine59 在 Google Cloud 上迁移至 Airflow 3 的实践

Pine59 是一家提供位置智能数据的公司,通过数据管道生产分析指标,频率从小时级到季度级。其中 Daily Foot Traffic 是最密集的指标之一,单个作业最多要计算 1400 万个不同位置 的数据。整个系统运行在 Google Cloud 上,重计算在 BigQuery 中完成,编排层使用 Managed Service for Apache Airflow(原 Cloud Composer),并运行 Airflow 3。
随着数据量和机器学习工作负载的增长,Pine59 决定对其包含数百个 DAG 的 monorepo 进行现代化改造。他们先将生产负载压测到基于 Airflow 3 的 Managed Airflow(Gen 3)架构上。结果很明确:Gen 3 带来了即时且显著的处理速度、任务调度和稳定性提升。看到明显的性能潜力后,Pine59 启动了向新环境的完整迁移。
Pine59 的管道不只是移动数据,还驱动复杂的 ML 模型,因此迁移的核心之一是优化 ML 推理工作负载的编排。此前他们使用标准的 Kubernetes 运算符来执行这些任务。迁移到 Managed Airflow(Gen 3)后,工程团队搭建了一个专门为模型推理优化的 专用 GKE 集群,并集成进现有管道。通过将编排与重 ML 执行计算清晰分离,数据处理和模型推理各司其职,这也展示了 Managed Airflow 作为企业级 MLOps 支撑骨架的能力。
除了基础设施层面的改进,Airflow 3 带来的开发工作流和 UI 升级也帮到了 Pine59。管理数百个相互关联的 DAG 需要良好的可观测性,而 Airflow 3 的插件系统非常好用。团队快速构建了数个自定义插件并直接集成到新的 Airflow UI 中:BigQuery Auto-linkify 能自动识别日志和 XCom 中的 BigQuery 表引用,生成直达 BigQuery Studio 的链接,加快调试;DAG Run Configuration Search 在 DAG 概览页加入自定义搜索表单,允许工程师按 key-value 查询 DAG run 的配置,迅速定位匹配的运行,大幅缩短排障时间;此外,团队还在 monorepo 里部署了一个兼容层(”compat” shim),动态抽象不同 Airflow 版本之间的逻辑,简化运算符的跨版本迁移。
迁移到 Managed Airflow(Gen 3)后,最关键的改进是 DAG 运行速度。在旧环境中,任务在高峰处理期经常卡在 queued 状态;Gen 3 下队列延迟大幅下降,任务几乎立即开始运行。对同一个 DAG 的 300 多次运行进行聚合对比,Gen 3(Airflow 3.1)相比 Gen 2(Airflow 2.11)的 queued 时间显著缩短。结合迁移中做的内部 DAG 优化,性能提升非常可感:Daily Foot Traffic 管道此前需要近 38 分钟完成,现在同样的工作负载只需不到 26 分钟,处理时间减少了近 32%。
如今,Pine59 的所有生产工作负载都运行在新的 Managed Airflow(Gen 3)实例上。通过这次迭代,公司改善了 MLOps 能力,给开发者配了更好的工具,也为未来工作负载建立了一个更快、更可靠的基础。


