写点什么

Lyft 采用 AWS SageMaker 与 Kubernetes 混合架构重构其机器学习平台

  • 2025-12-22
    北京
  • 本文字数:1149 字

    阅读完需:约 4 分钟

大小:574.53K时长:03:16
Lyft采用AWS SageMaker与Kubernetes混合架构重构其机器学习平台

Lyft 将其机器学习平台 LyftLearn 重构为一个混合系统:将离线工作负载迁移至AWS SageMaker,同时继续使用Kubernetes处理在线模型推理。该决策在运维复杂度最高的环节采用托管服务,在控制权至关重要的环节保留自定义基础设施,这样为统一平台战略提供了一种务实的替代方案。

 

Lyft 的工程师将负责训练和批处理任务的 LyftLearn Compute 迁移到了AWS SageMaker,从而消除了此前耗费大量工程精力的后台监控服务、集群自动扩缩容难题以及最终一致性状态管理的问题。而负责实时推理的 LyftLearn Serving 则保留在Kubernetes上,因为 Lyft 现有的架构已能在此场景下提供所需的性能,并与内部工具链深度集成。



LyftLearn 混合架构的高层示意图(来源

 

作者Yaroslav Yatsiuk解释了这一决策的核心原因:

我们选择 SageMaker 进行训练,是因为维护自定义的批处理计算基础设施消耗了本可用于提升 ML 平台核心能力的工程资源。而我们保留了自建的推理基础设施,因为它提供了我们需要的成本效益和精细控制。

 

LyftLearn 每天支持数亿次预测,涵盖派单优化、定价和欺诈检测等场景,每天运行数千个训练任务,服务于数百名数据科学家和机器学习工程师。该平台最初完全构建在 Kubernetes 之上,但随着规模扩大,运维复杂性也随之激增。每新增一项 ML 能力都需要定制编排逻辑,而 Kubernetes 状态与平台数据库之间的同步则依赖多个监控服务,以处理乱序事件和容器状态转换。

 

对于离线工作负载,SageMaker 的托管基础设施直接解决了上述痛点:AWS EventBridgeSQS以事件驱动的状态管理取代了原有的监控架构,按需资源分配则消除了闲置集群带来的成本。不过,此次迁移要求对现有 ML 代码保持完全兼容。

 

为此,Lyft 构建了跨平台的 Docker 镜像,在 SageMaker 中复现了 Kubernetes 的运行时环境,透明地处理凭证注入、指标收集和配置管理。针对每 15 分钟重训一次的低延迟工作负载,团队采用了Seekable OCI(SOCI),实现了与 Kubernetes 相当的启动速度。

 

最具挑战性的部分在于Spark在 SageMaker Studio 与 EKS 集群之间所需的双向通信。SageMaker 默认网络策略会阻止 Spark 执行器向 Notebook Driver 发起的入站连接。Lyft 与 AWS 合作,在其 Studio Domains 中启用了自定义网络配置,从而在不影响性能的前提下解决了该问题。

 

迁移以“逐个仓库推进”的方式部署,新旧基础设施并行运行,仅需极少的配置变更。通过兼容层,用于 SageMaker 训练的同一个 Docker 镜像也可直接在 Kubernetes 中用于模型服务,彻底消除了训练-推理不一致的问题。Lyft 报告称,迁移后基础设施事故显著减少,工程团队得以将更多精力投入到平台功能开发中。Yatsiuk 总结说:

优秀的平台工程,不在于你运行的技术栈是什么,而在于你隐藏了多少复杂性,以及你释放了多少开发效能。

 

原文链接:

Lyft Rearchitects ML Platform with Hybrid AWS SageMaker-Kubernetes Approach

2025-12-22 15:001

评论

发布
暂无评论

与学长共话成长,领跑毕业新未来

宇宙之一粟

校招 10月月更

HashMap高阶用法,十倍提升开发效率

一灯架构

Java java面试 10月月更

免费申请和使用IntelliJ IDEA商业版License指南

程序员欣宸

ide 10月月更 ieda

Python基础(十) | Numpy详细教程

timerring

Numpy库 10月月更

一个 ExpressionChangedAfterItHasBeenCheckedError 错误的解决过程

汪子熙

typescript 前端开发 angular web开发 10月月更

【LeetCode】最大升序子数组和Java题解

Albert

LeetCode 10月月更

前端培训学习路线比较靠谱

小谷哥

你不知道的Java工具类库,十倍提升开发效率

一灯架构

Java java面试 10月月更

【一Go到底】第七天---运算符

指剑

Go golang 10月月更

单模光缆与多模光缆,网络工程师必知的光缆类型

wljslmz

网络工程 10月月更 单模光纤 多模光纤 弱电

C++学习---cstdio的源码学习分析07-刷新文件流函数fflush

桑榆

c++ 源码分析 10月月更

Python基础(八) | 万字详解深浅拷贝、生成器、迭代器以及装饰器

timerring

装饰器 Python Monad 迭代器 生成器 10月月更

学习大数据培训是否比较靠谱

小谷哥

Vue3入门指北(十)侦听器

Augus

Vue3 10月月更

前端培训机构选择需要注意什么?

小谷哥

Surpass Day——Java语法基础

胖虎不秃头

Java 10月月更 se

java培训与线上自学哪个比较好

小谷哥

微信业务架构图 & 学生管理系统方案

无语

「架构实战营」

爬虫练习题(二)

张立梵

Python. 10月月更 爬虫案例

传统架构面临的挑战及上云的优势

穿过生命散发芬芳

企业上云 10月月更

学习编程既要追根溯源、又要紧跟时代步伐

玄兴梦影

c 编程 语法

大数据开发的方法有哪些

小谷哥

高效编程不一定意味着要疯狂写代码

宇宙之一粟

程序员 10月月更

Collections之ArrayList源码解读(七)

知识浅谈

ArrayList 10月月更

Python基础(九) | time random collections itertools标准库详解

timerring

random Collections time 10月月更

【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的

石臻臻的杂货铺

10月月更 nacso

Surpass Day——Java面向对象的创建和使用

胖虎不秃头

Java 10月月更 se

Go设计模式“金旋风”——代理模式

Regan Yue

Go 设计模式 代理模式 10月月更

推荐一款id 生成器:Hashids

xiaoxi666

竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码

一灯架构

Java java面试 10月月更

【Nacos源码之配置管理 五】为什么把配置文件Dump到磁盘中

石臻臻的杂货铺

nacos 10月月更

Lyft采用AWS SageMaker与Kubernetes混合架构重构其机器学习平台_框架_Eran Stiller_InfoQ精选文章