写点什么

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:0051092

评论

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

一文详解东数西算下绿色数据中心节能减排十大技术、智算中心八大趋势

GPU算力

【DBA100人】胡中豪:国产分布式数据库DBA炼成记

OceanBase 数据库

利用京东云Web应用防火墙实现Web入侵防护

京东科技开发者

网络安全 安全 防火墙 WEB安全 京东云

Maven的下载安装配置以及IDAEA中Maven的配置

守夜人st

9月月更

开发者必读:2022年移动应用技术趋势白皮书

HarmonyOS SDK

高效工作,文档协作必不可少

Baklib

高效工作 文档协作

Java 在Word文档中添加艺术字

在下毛毛雨

Java word 添加艺术字

【JavaWeb】Servlet系列——模板方法设计模式、HttpServlet源码分析、Web站点的欢迎页面、关于WEB-INF目录

胖虎不秃头

Web java; 9月月更

Spring源码解析(十二)Spring扩展接口SmartInstantiationAwareBeanPostProcessor解析

石臻臻的杂货铺

spring 9月月更

Java注解详细

石臻臻的杂货铺

Java 阅读 9月月更

CLIP-as-service 升级啦!

Jina AI

开源 算法 神经搜索

数据如何指导决策:优酷主客APP播转率的C端优化

阿里巴巴文娱技术

数据分析 数据 BI

云对象 - 重新定义前后端交互

崔红保

uni-app Serverless unicloud

jdbcs之连接池和框架

楠羽

JDBC 笔记 9月月更

OpenSSF发布npm 最佳实践指南,应对开源依赖风险

SEAL安全

npm DevSecOps 开源安全 软件供应链安全 开源安全与治理

ShareSDK Android端分享与授权示例代码

MobTech袤博科技

android sdk

24小时的客户服务如何实现?来建立产品知识库吧!

Baklib

产品 知识库 客户服务

启科量子公布量子计算机工程化进展

启科量子开发者官方号

我们的月饼不一样!来线上 DIY 微软限定款

Azure云科技

技术 活动报名

FlyFish开发者说|开源低代码平台的体验与思考

云智慧AIOps社区

前端 低代码 开源项目 数据可视化 可视化大屏

中小企业如何有效应对计算资源的弹性变化需求?

阿里巴巴中间件

阿里云 Serverless 云原生 中小企业

不清楚产品帮助中心怎么设置?从这几点出发!

Baklib

产品 帮助中心

【JavaWeb】Servlet系列——请求和响应过程的角色和协议、模拟Servlet本质、开发第一个带有Servlet的Webapp、关于Java EE的版本

胖虎不秃头

Web java; 9月月更

Sovit3D数字孪生智慧港口三维可视化解决方案

数据可视化平台

物联网 智慧港口 5G智慧港口 港口三维可视化 智慧港口解决方案

如何理解「数字化是 IT 公司在给传统企业贩卖焦虑」?

BizFree

数字化转型 企业 焦虑 智能制造

SpringBoot源码 | printBanner方法解析

六月的雨在InfoQ

源码 springboot 9月月更 springboot源码

数字藏品电商平台开发:如何开发数字藏品?

开源直播系统源码

区块链 NFT 数字藏品 数字藏品系统 数字藏品软件

【JavaWeb】Servlet系列——响应HTML代码、Servlet连接数据库、IDEA开发Servlet程序、Servlet对象的生命周期、Generic

胖虎不秃头

Web java; 9月月更

从数据库发展史看数据库未来技术趋势

OceanBase 数据库

高端扫地机销量占比全球第一 石头科技创新驱动增长

科技热闻

2个原则,8个小撇步,带你探究 Dockerfile 在工程实践中的实战技巧!

Jina AI

Dockfile

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