QCon 演讲火热征集中,快来分享技术实践与洞见!222222 了解详情
写点什么

Uber 将 4000 多个微服务迁移到新的多云平台 Up

  • 2023-10-27
    北京
  • 本文字数:1071 字

    阅读完需:约 4 分钟

大小:529.81K时长:03:00
Uber将4000多个微服务迁移到新的多云平台Up

Uber 将其大部分容器化微服务从µDeploy迁移到一个叫作 Up 的新多云平台,准备将相当一部分计算迁移到云端。Uber 花了两年时间将其许多微服务变得可移植,以便可以在不同的计算基础设施和容器管理平台之间进行迁移。

 

2014 年,Uber 还只是一个单体应用程序,随着业务的增长,开始迁移到微服务架构。Uber 开发了µDeploy来帮助标准化大规模的应用服务部署。这一措施抽象了主机管理方面的东西,但服务管理仍然是高度手动的,这意味着服务工程师仍然需要决定哪些服务应该在哪个特定区域的哪个区域(物理数据中心)内运行。

 

Uber 高级工程师Mathias Schwarz和工程经理Andrew Neverov解释了 Uber 决定将工程团队与基础设施团队完全解耦的原因:

 

在运营本地数据中心时,由于芯片短缺和供应链问题,我们的交付周期较长。2023 年 2 月 13 日,Uber与甲骨文和谷歌合作,致力于多元化和降低公司在供应链问题上的风险。如果没有一个可以将底层基础设施与数千名负责为业务提供数百种不同的服务 Uber 工程师解耦的系统,那么执行这一战略是不可能的。

 

2018 年,Uber 的平台团队开始研究一个新的多云、多租户联合控制平面,负责自动化服务部署和基础设施级迁移。这个叫作 Up 的新平台旨在成为服务工程师与基础设施系统交互的主要工具。它还将管理和执行最佳实践,以推动安全的代码部署。

 


Up 的高级架构(来源:Uber工程博客)

 

Up 平台采用了分层架构,其中体验层负责用户交互和系统管理,包括工作负载管理和伸缩。平台层为体验层组件提供通用的抽象和概念模型,用来表达基于主机能力和计算能力的服务部署约束。联邦层实现与计算集群的集成,并负责基于可用容量和定义的部署约束来执行服务部署。变更管理组件提供渐进式发布功能。最底层包含实际的集群实例,使用了基于Apache Mesos而构建的PeletonUber自己的开源容器编排平台)和Kubernetes

 

为了准备迁移到云端,Uber 花了两年时间使所有无状态微服务都变得可移植,可以在无需服务工程师参与的情况下在区域之间进行集中式管理。他们使用现有工具在区域之间移动服务,确保它们是可移植的。首先,他们允许将服务移回原始区域以解决可移植性问题,一旦解决了可移植性问题,就定期移动服务以验证其可移植性并防止出现回归。

 

在变得可移植之后,微服务逐步自动迁移到 Up 上,得益于自动伸缩和效率,节省了大量的资金,并大大减少了服务团队的维护负担。Uber 的大部分微服务平台现在都通过 Up 来管理,可以自由地启动其云迁移工作,而不会对服务团队产生太大影响。他们也关注自动化持续交付和部署安全方面的东西。

 

原文链接

https://www.infoq.com/news/2023/10/uber-up-cloud-microservices/

2023-10-27 08:0045840

评论

发布
暂无评论
发现更多内容

第6周作业

andy

MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧

xcbeyond

MySQL MySQL性能优化 执行计划

没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

程序员小富

Java GitHub oauth2.0

JDK1.8新特性(一):JDK1.8究竟有哪些新特性呢

xcbeyond

jdk8 新特性 JDK1.8新特性

路过,凌晨2点的南京

小天同学

总结 思考 个人感悟 夜归人

未来的智慧城市:未来的城市生活愿景

网站,小程序,APP开发定制

MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

大头星

Java MySQL 面试

MySQL性能优化(六):常见优化SQL的技巧

xcbeyond

MySQL MySQL性能优化 SQL优化 优化技巧

课程总结

Thrine

如何在 3 个小时内完成一周的工作

escray

你与30W奖金只差一个 Apache Flink 极客挑战赛的报名

Apache Flink

flink

MySQL性能优化(五):为什么查询速度这么慢

xcbeyond

MySQL 查询优化 MySQL性能优化

SaaS是「包治百病」的良药吗?

ToB行业头条

天元MegEngine深度学习框架贡献者计划全面启动!

flashrunrun

人工智能 学习 开源 AI

Spring循环依赖及解决方式

张sir

Java spring 循环依赖

数据结构学习心得

程李文华

腾讯的区块链为何败给了老干妈的“萝卜章”?

ToB行业头条

海南七星彩网站源码结算功能开发

网站,小程序,APP开发定制

案例解析丨金蝶K/3 Wise接入华为云RDS数据库SQL Server

华为云开发者联盟

MySQL 数据库 Serverless 数据 华为云

分布式存储系统doris

Thrine

开源数据交换(client)

李孟聊AI

Java 大数据 flink spark 数据交换

博睿宏远获颁“2020开发与技术企业服务奖”

博睿数据

运维自动化 开发工具 博睿宏远

从一盏路灯,看亿万级联接的智能之路

华为云开发者联盟

人工智能 物联网 智能设备 华为云

再强调一遍, 我为什么不建议大家接外包干私活?

非著名程序员

程序员 外包 提升认知 接私活

MySQL 连接查询超全详解

X先生

MySQL 数据库

详解区块链应用市场与落地应用现状

CECBC

MySQL性能优化(四):如何高效正确的使用索引

xcbeyond

MySQL 索引 MySQL性能优化

指数 | 2020年6月北京BGP机房网络质量评测报告

博睿数据

评测 博睿宏远 指数

HashMap学习总结

大刘

hashmap hash

第6周课后练习-请简述CAP原理

Dawn

极客大学架构师训练营

第6周总结

andy

Uber将4000多个微服务迁移到新的多云平台Up_微服务_Rafal Gancarz_InfoQ精选文章