Uber 将 4000 多个微服务迁移至运行 Kubernetes 和 Mesos 的新多云平台

Uber迁移微服务到新多云平台Up

Uber将其大部分容器化微服务从µDeploy迁移到一个名为Up的新多云平台,以准备将大量计算资源迁移到云端。该公司花费了两年时间使其众多微服务具备可移植性,以便它们能够在不同的计算基础设施和容器管理平台之间迁移。

背景和发展

  • 2014年:Uber最初是一个单体应用,随着业务增长,逐渐过渡到微服务架构。
  • µDeploy:Uber创建了µDeploy来帮助标准化大规模应用服务的部署,但服务管理和放置仍然高度依赖手动操作。

迁移原因

  • 供应链问题:由于芯片短缺和供应链问题,Uber在运营本地数据中心时遇到了长时间的延迟。
  • 合作:2023年2月13日,Uber与Oracle和Google合作,旨在多元化并减少供应链问题的影响。
  • 基础设施抽象:为了执行这一策略,Uber需要一个系统来将基础设施与数千名工程师的工作分离。

Up平台开发

  • 2018年:Uber的平台团队开始开发一个新的多云、多租户联邦控制平面,负责自动化服务放置和基础设施级迁移。
  • Up平台:成为服务工程师与基础设施系统交互的主要工具,并管理和实施最佳实践以确保安全的代码推出。

Up平台架构

  • 分层架构

    • 体验层:负责用户交互和系统管理,包括工作负载管理和扩展。
    • 平台层:提供通用抽象和概念模型,用于表达服务放置约束。
    • 联邦层:实现与计算集群的集成,负责基于可用容量和定义的放置约束来执行服务放置。
    • 变更管理组件:提供逐步推出功能,支持健康监控。
    • 底层:包含实际的集群实例,使用Peleton(Uber自己的开源容器编排平台,基于Apache Mesos)和Kubernetes。

迁移过程

  • 可移植性:公司花费两年时间使所有无状态微服务具备可移植性,以便在区域和区域之间进行集中管理。
  • 验证:团队使用现有工具在区域之间移动服务,以解决可移植性问题并验证可移植性。

成果

  • 自动迁移:微服务逐渐且主要自动迁移到Up平台,带来了显著的财务节约和效率提升,并大幅减少了服务团队的维护负担。
  • 云迁移:随着大部分微服务平台由Up管理,Uber可以开始其云迁移工作,对服务团队的影响较小。
  • 自动化:公司还希望专注于自动化持续交付和部署安全性。
阅读 30
0 条评论