2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Uber 的云旅程:在 x86 世界中拥抱 ARM

作者:Claudio Masolo

  • 2025-03-19
    北京
  • 本文字数:1417 字

    阅读完需:约 5 分钟

大小:689.49K时长:03:55
Uber 的云旅程:在 x86 世界中拥抱 ARM

2023 年 2 月,Uber 开始从本地数据中心战略性地迁移到 Oracle 云基础设施(OCI)和 Google 云平台。此次迁移的一个关键环节是将基于 ARM 的计算机集成到以 x86 为主的集群中,以降低成本、提高性价比,并在供应链不稳定的情况下确保硬件灵活性。


x86 和 ARM 架构代表了处理器设计中的两种完全不同的理念,它们的区别奠定了数十年来的计算产业格局。x86 处理器通常为计算密集型任务提供更高的峰值性能,但消耗更多电量,这使得它们在电源插座随时可用的台式机和服务器领域占据主导地位;与此同时,ARM 处理器在能效方面表现出色,提供更好的每瓦性能比,使其成为移动设备、嵌入式系统以及日益注重功耗的数据中心的首选架构。


多架构集成面临的挑战不仅在于部署新的硬件。对于 Uber 的基础设施团队来说,这意味着重新看待多年来完全基于 x86 的基础系统。这一历程也显示出架构假设可以深度渗透到技术栈的每一层中。


此次转变的基础是 Oracle Cloud Infrastructure 对 Ampere Computing 的 ARM 处理器的战略性引入。这些芯片提供了卓越的能效——这是 ARM 在移动领域的最显著优势,现已扩展到数据中心环境。对于云提供商来说,这意味着大幅节省电力和提高计算密度,从而降低能源成本和物理占用空间要求。


对于 Uber 来说,这些优势与其可持续发展目标完美契合。随着公司努力实现零排放,采用节能计算基础设施是在减少环境影响的同时改善成本结构的重要一步。


整个转换过程从主机级的准备工作开始——创建包含操作系统、内核和基本基础设施组件的 ARM 兼容镜像。主机启动后,团队开始着手构建各种管道,找出了复杂的 Web 依赖关系。Uber 的容器系统依赖于 Makisu,这是一种针对 x86 优化的工具,无法针对 ARM 进行交叉编译。


为容器镜像构建管道


团队没有重写 5,000 多个服务构建流程,而是采用了一种巧妙的引导方法。他们利用 Google Bazel 构建了 Makisu 本身的 ARM 版本,然后就可以原生构建其他服务了。这个看似简单的任务暴露了一种循环依赖关系:Makisu 在 Buildkite 上运行,而 Buildkite 在 Uber 的 Odin 平台上运行,Odin 平台又依赖主机代理——所有这些都是用 Makisu 构建的。


打破这种循环依赖关系需要使用 Bazel 的多架构特性有条不紊地重建每一层。团队从主机代理开始,然后重建 Odin 的组件,接着是 Buildkite,最后是 Makisu。这个基础启用了分布式构建管道,可以生成统一的多架构容器镜像。


虽然这种方法使构建成本翻倍(每周有超过 400,000 个容器构建),但从经济角度来看,采用 ARM 仍然是有利可图的。分布式构建系统还提供了一个关键优势:它支持逐步、受控的迁移,而不是全有或全无的方法。


部署系统需要类似的增强。Uber 实施了针对架构的放置约束和自动回退机制,如果出现兼容性问题,这些机制将恢复到 x86。这些保护措施让团队可以逐步迁移服务,同时保持生产可靠性。


成功部署他们的第一批基于 ARM 的服务标志着一个技术里程碑,证明了多架构基础设施可以在 Uber 的规模下正常工作。然而,从最初的成功到迁移数千个服务的过程还需要额外的策略和工具。


随着云提供商扩展其处理器架构选项,Uber 和 Bitmovin 等组织展示了将各种计算架构整合到大型基础设施系统中的挑战和潜在好处。Bitmovin 将其编码服务完全迁移到 ARM 处理器的历程,以及 Uber 的经验,为企业如何在大规模范围内应对架构异构性提供了宝贵的见解。


原文链接:


Uber's Cloud Journey: Embracing ARM in an x86 World(https://www.infoq.com/news/2025/02/uber-arm-cloud/)

2025-03-19 14:004810

评论

发布
暂无评论

软件测试/人工智能丨逻辑运算符

测试人

人工智能 软件测试

CloudQuery x 达梦,国产数据库正当时

BinTools图尔兹

数据库 数据库管理 数据库安全 达梦 兼容适配

Wireshark中的http协议包分析

小齐写代码

K8s容器debug高级技巧

SEAL安全

容器 Kubernetes 集群

每日一题:LeetCode-129. 求根节点到叶节点数字之和

Geek_4z9ami

面试 算法 LeetCode 二叉树 DFS

Redis 也支持全文搜索 了?这也太强了

越长大越悲伤

redis Jedis redisearch

华为云CodeArts Artifact:数字化时代软件包管理的领航者

YG科技

大数据离在线混部资源调度的演进和选型

易程

大数据 云原生 云原生大数据

Nacos 配置中心源码 | 京东物流技术团队

京东科技开发者

源码 nacos 源码剖析 配置中心

Sermant:无代理服务网格架构解析及无门槛玩转插件开发

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 DTSE Tech Talk

零基础也能搞定文案生成应用,半小时包教包会!「大模型摇摇乐」硬核教程来啦!

飞桨PaddlePaddle

人工智能 代码 零基础 开发教程 文案生成

昇腾AI开发者创享日·广州站成功举办 四大仪式激发人工智能产业创新活力

彭飞

安卓设备解锁工具 FonesGo Android Unlocker激活中文版

胖墩儿不胖y

Mac软件 安卓设备解锁工具

使用Flink完成流数据统计 | 京东云技术团队

京东科技开发者

大数据 flink stream 数据统计

解锁数字化时代的软件包管理利器—华为云CodeArts Artifact.docx

YG科技

Fusion Studio 18 v18.6.4完美兼容破解版 附Fusion Studio激活补丁

Rose

mac视频后期特效处理 Fusion Studio 18下载 Fusion Studio激活秘钥 Blackmagic Fusion Studio

Q-learning 入门:以 Frozen Lake 游戏环境为例

Baihai IDP

人工智能 程序员 AI 强化学习 白海科技

软件测试/人工智能丨关系运算符

测试人

人工智能 软件测试

华为云 CodeArts Artifact:开启企业管理新模式

YG科技

华为云助力企业引领数字化时代

YG科技

浅谈SQL优化小技巧 | 京东云技术团队

京东科技开发者

MySQL 数据库 sql 性能优化

轻松建网站,一键部署,华为云不止省时还省心

YG科技

华为云耀云服务器L实例,数字化竞争的制胜法宝

YG科技

拓扑排序实现循环依赖判断 | 京东云技术团队

京东科技开发者

后端 排序算法 循环依赖 拓扑排序

Uber 的云旅程:在 x86 世界中拥抱 ARM_编程语言_InfoQ精选文章