SlideShare a Scribd company logo
1 of 35
阿里DChain中台的弹性架构设
计与深度实践
冯微峰(诸葛瑾)
阿里巴巴资深技术专家
• 阿里供应链中台介绍
• 中台开放弹性架构设计
• 弹性架构下稳定性设计
• 弹性架构下的深度实践
• 挑战和展望
供应链中台为什么做弹性架构?
千亿规模 15个大域 26个BU
行业快速接入
中台弹性伸缩
行业业务复杂
中台体量庞大
+
端到端: 盒马,天猫超市,阿里健康
全球买全球卖:Lazada,AE
渠道分销:零售通,淘乡甜
平台入仓:消费电子,大快消
中台弹性架构解决哪些问题?
• 行业快速接入-->高内聚,低耦合-->OCP软件设计原则
• 中台弹性伸缩-->业务规模化-->基础设施即代码(IaC)
CLED:Configuration + LowCode + Extension + Development
IaC:可弹性+可替换
• 阿里供应链中台介绍
• 中台开放弹性架构设计
• 弹性架构下稳定性设计
• 弹性架构下的深度实践
• 挑战和展望
中台弹性架构技术底座——NBF
NBF:New-Retail Business Factory——技术PaaS平台
IaC
云原生中间件
研发 交付
云原生容器
云原生SDK
IDE插件
CI/CD流水线
资源/环境/运维
多环境交付
多厂商交付
服务生产
Faas能力
服务消费
路由/流控/降级
模型编排
服务编排
流程编排
UI编排
开放网关
集成平台
服务市场
工具市场
微服务体系 低代码平台 开放平台
行业快速接入—数据结果
支持近百个行业快速接入
40%的行业需求配置化(Configuration)实现
40%的行业需求(LowCode + Extension)实现
行业需求平均交付时长 14天5.8天
20%的行业需求(Development)实现
中台弹性伸缩:NBF之IaC
云原生交付设施
+ +
云原生中间件
云原生容器
IaC之云原生容器
Kubernetes IaaS
Open Application Model
(OAM)
Alibaba Serverless
Infrastructure
Other IaaS
容器生命周期SPI
容器创建 容器启动 容器置换 容器销毁
微内核设计
Bundle隔离机制 中间件隔离机制
Bundle生命周期
Bundle注册 Bundle加载 Bundle启动 Bundle销毁
核心能力
FaaS能力 动态加载 Agent AOP 参数 AOP
主流框架
集团 业界
Pandora SOFA Spring Cloud Tomcat
EDAS套件 SOFA Stack套件 ECS/ECI 其他云厂商容器
云原生
微内核
FaaS
NBF云原生容器—FaaS能力
NBF Serverless容器
常驻的NBF-Faas引擎
Bundle Bundle Bundle
动态载入 动态载入 动态载入
传统应用:
服务发布时间=容器启动时间+镜像加载时间
NBF:
服务发布时间=Bundle的加载时间
NBF-FaaS VS AWS-FaaS
IaC之云原生中间件
云原生中间件动态路由
MQ
弹内
海外
云端
Notify
MetaQ
ONS
方案一:${env}指定DefaultBundle,比如云端defaultBundleId=“ons”;
方案二:代码打包时替换不同环境变量;
方案三: ${env}指定bundle路由规则表达式
IaC之资源弹性
Kubernetes IaaS
Open Application Model
(OAM)
Alibaba Serverless
Infrastructure
Other IaaS
容器生命周期SPI
容器创建 容器启动 容器置换 容器销毁
弹性智能决策系统
Metrics信息 Agent进程 数据上报 调度策略
数据采集
离线计算
历史数据
用户画像
历史指标体系
实时计算
单机指标 决策引擎
稳定性调度
资源管理 参数动态调整
弹性策略配置
分时复用
极速扩容 指标归一化 仿真系统
核心能力
IaC之资源弹性—弹性策略
最大实例
归一化
指标
分时复用
• 阿里供应链中台介绍
• 中台开放弹性架构设计
• 弹性架构下稳定性设计
• 弹性架构下的深度实践
• 挑战和展望
弹性架构下的稳定性设计—容器
弹性架构下的稳定性设计—极速扩容
弹性架构下的稳定性设计—极速回滚
传统应用回滚 NBF—Serverless回滚
构建
打包
新镜像加载
容器启动
Bundle
Reload
Bundle 1.1
Bundle 1.0
Engine常驻
reload
弹性架构下的稳定性设计—服务降级
生成履约单 调用集单算法 生成履约批次
盒马履约
NBF Broker SDK
集单服务 集单降级服务
被动降级
主动熔断
Broker 判断 BundleA
降级BundleA’
被动降级
主动熔断
• 服务找不到
• 服务异常
• 服务超时
是
否
• 超过基线指标
弹性架构下的稳定性设计—服务降级
• 阿里供应链中台介绍
• 中台开放弹性架构设计
• 弹性架构下稳定性设计
• 弹性架构下的深度实践
• 挑战和展望
弹性架构实践—资源弹性
资源节约:(236-73.6 / 236)*100 = 68.8 %
手淘首页依赖P0级地址服务:POI QPS:35w+ 原有机器数: 236
机房 机器数量
张北中心 136
上海云单元 100
RT<3ms
Serverless后:73.6
弹性架构实践—资源弹性
Serverless后
CPU平均使用率:
1.2%15%
弹性架构实践—资源弹性数据
容器实例 10000+ Pod
CPU核数 50000+ Core
业务体量 26个BU(大业务部门)
服务数量 7000+ 服务
调用次数 20+ 万亿次
线上故障 0
机器节约(资源弹性+混合部署) 4000+ Pod
弹性架构实践—NBF云端输出
1.NBF产品第一次云
端商业输出
2.基于弹性架构实现
了NBF产品弹内,
海外,云端主版本
一致性交付能力
弹性架构实践—NBF海外输出
一个版本
国内
海外 云端
Lazada 阿里云
一个标准化DevOps流程
蚂蚁云
AE
一套中间件架构
国内
海外 云端
Lazada 阿里云 蚂蚁云
AE
IaC之云原生交付设施
1.从代码生产到容器部署一站
式DevOps产品能力闭环
2.SPI扩展设计能力,快速接
入各生态下的CI/CD能力
3.弹内/海外/云端自定义
Pipeline和一致性交付能力
基础能力
生产能力
开放能力
交付能力
代码管理 资源管理 环境管理 变更管理 运维管理
Repo仓库管理
分支管理
代码托管
代码安全
容器管理
额度管理
智能决策
弹性能力
生产环境
测试环境
海外环境
云端环境
版本管理
集成区管理
配置项管理
变更记录
发布/回滚
扩容/下线
灰度/Beta
监控报警
代码生产
IDE插件 构建
打包 动态配置项
镜像构建 镜像上传
镜像发布 镜像分发
FaaS模式 传统应用模式
独立部署 混合部署
镜像生产 容器生产
SPI扩展设计
构建扩展点 打包扩展点 部署扩展点 发布扩展点 扩容扩展点 下线扩展点
Aone(国内/海外) 云效(阿里云) LinkE(蚂蚁云)
Pipeline管理 弹内/海外/云端Pipeline自定义 弹内/海外/云端主版本一致性交付 弹内/海外/云端主版本基线检测
• 阿里供应链中台介绍
• 中台开放弹性架构设计
• 弹性架构下稳定性设计
• 弹性架构下的深度实践
• 挑战和展望
云原生容器的技术挑战
1.业务Bundle代码和容器代码的版本冲突(运行态)
2.FaaS场景下多classloader与中间件能力冲突?
比如多个Bundle混合部署在容器,长链接如何共享
比如多Bundle混部,中间件Bean实例注册失败
3.多classloader之间的序列化和反序列化问题
4.支持阿里和业务技术框架(webx, pandora-boot, sofa, spring-boot, spring-cloud等)
云原生容器的技术挑战
1.业务Bundle代码和容器代码的版本冲突(运行态)
从双亲委派的方式,发展到采用微内核的设计,设计容器和Bundle,Bundle和Bundle之间的隔离框架
2.FaaS场景下多classloader与中间件能力冲突?
向阿里中间件和开源社区以“贡献方案”,“贡献代码”和“Patch包”等形式支持FaaS场景化能力
3.多classloader之间的序列化和反序列化问题
封装和复写本地跨classloader的序列化协议
4.支持阿里和业务技术框架(webx, pandora-boot, sofa, spring-boot, spring-
cloud等)
容器纯Java编写,只依赖spring-core,common-log等非常少量的基础包
定义标准的打包格式和MVN-Builder插件
定义不同阶段的HooK能力,支持各种入口函数的启动
资源弹性的挑战
1.缩容后的SLA如何有效的保障?
2.面向扩容失败的稳定性设计?
3.缩下来的机器如何有效安放?
资源弹性的挑战
1.缩容后的SLA如何有效的保障?
如何验证弹性决策算法是有效的?(100台50台)
--弹性仿真环境:链式反应,仿真数据偏移,线上数据回放等等
2.面向扩容失败的稳定性设计?
如果流量剧烈波动,而因为各种原因扩容失败如何容灾?
--有损降级:流控
--预留一部分空载Buffer + FaaS的极速服务发布
3.缩下来的机器如何有效安放?
--终态:云端资源与内部资源共享和弹性流动
--分时复用(10000台机器:5000台白天,5000台晚上 6000台)
--NBF托管的Bundle有明显的错峰场景,ToB场景下的批处理计算,补货计划,销售预测等
--实时计算与离线计算的资源打通
展望—供应链中台商业化输出
云原生研发基础设施
云原生代码
云原生系统和服务
云原生产品化能力
开放和集成能力
集团框架
阿里云
华为云
蚂蚁云
其他
云技术框架 云厂商
云原生中间件
消息
配置
缓存
数据库
云原生容器
Bundle
独立部署
传统应用
合并部署
业界框架
云原生交付基础设施
产品能力工厂
开放网关 集成平台 云研发工具
套件
物料
套件
生产
套件
实施
多租户 租户管理 计费体系
沙箱环境
资源可视
数据隔离
租户鉴权
租户授权
页面 服务 流程 配置 组件定义 配置定义 菜单和权限
组件项
配置
业务属性
配置
菜单和权限
配置
管理能力
资源管理
运维管理
环境管理
变更管理
生产能力 开放能力 实施能力
构建 打包 部署
安全检查 发布 基线写入
Aone 云效 LinkE
SPI扩展机制
弹内 海外 云端
服务生产 低代码平台
基础工具 研发效能
OpenAPI管理 访问控制 权限管理
流量控制 开放设计 Pop网关集成
数据集成 服务集成 套件集成
集成市场 Connector 权限管理
云商家 云ISV
云商家 云ISV
服
务
集
成
研
发
已完成
建设中
待建设
阿里巴巴中台架构设计与实践(NBF)_ArchSummit2021_冯微峰

More Related Content

What's hot

Scrum--敏捷开发过程框架介绍
Scrum--敏捷开发过程框架介绍Scrum--敏捷开发过程框架介绍
Scrum--敏捷开发过程框架介绍
coolCow
 

What's hot (20)

A Practical Guide to Scaling Agile
A Practical Guide to Scaling AgileA Practical Guide to Scaling Agile
A Practical Guide to Scaling Agile
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring Cloud
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
Introduction to scaled agile framework
Introduction to scaled agile frameworkIntroduction to scaled agile framework
Introduction to scaled agile framework
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 
Cloud Native: what is it? Why?
Cloud Native: what is it? Why?Cloud Native: what is it? Why?
Cloud Native: what is it? Why?
 
Scrum--敏捷开发过程框架介绍
Scrum--敏捷开发过程框架介绍Scrum--敏捷开发过程框架介绍
Scrum--敏捷开发过程框架介绍
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
 
Circuit Breaker Pattern
Circuit Breaker PatternCircuit Breaker Pattern
Circuit Breaker Pattern
 
Agile software process
Agile software processAgile software process
Agile software process
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
Servlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use CasesServlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use Cases
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Software Quality Gate.pptx
Software Quality Gate.pptxSoftware Quality Gate.pptx
Software Quality Gate.pptx
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 

Similar to 阿里巴巴中台架构设计与实践(NBF)_ArchSummit2021_冯微峰

Q con成都主题演讲【弹性计算】by马介悦
Q con成都主题演讲【弹性计算】by马介悦Q con成都主题演讲【弹性计算】by马介悦
Q con成都主题演讲【弹性计算】by马介悦
drewz lin
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
drewz lin
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
锐 张
 
Houxiaoqiang soa
Houxiaoqiang soaHouxiaoqiang soa
Houxiaoqiang soa
d0nn9n
 

Similar to 阿里巴巴中台架构设计与实践(NBF)_ArchSummit2021_冯微峰 (20)

美团点评技术沙龙07 - 美团配送平台高可用实践
美团点评技术沙龙07 - 美团配送平台高可用实践美团点评技术沙龙07 - 美团配送平台高可用实践
美团点评技术沙龙07 - 美团配送平台高可用实践
 
Oracle汽车行业解决方案概览
Oracle汽车行业解决方案概览Oracle汽车行业解决方案概览
Oracle汽车行业解决方案概览
 
Oracle汽车行业解决方案概览
Oracle汽车行业解决方案概览Oracle汽车行业解决方案概览
Oracle汽车行业解决方案概览
 
刘昌钰:阿里大数据应用平台
刘昌钰:阿里大数据应用平台刘昌钰:阿里大数据应用平台
刘昌钰:阿里大数据应用平台
 
海外企业Saa s市场趋势
海外企业Saa s市场趋势海外企业Saa s市场趋势
海外企业Saa s市场趋势
 
饿了么异构服务平台数据访问层的演进
饿了么异构服务平台数据访问层的演进饿了么异构服务平台数据访问层的演进
饿了么异构服务平台数据访问层的演进
 
饿了么异构服务平台数据访问层的演进
饿了么异构服务平台数据访问层的演进饿了么异构服务平台数据访问层的演进
饿了么异构服务平台数据访问层的演进
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
Q con成都主题演讲【弹性计算】by马介悦
Q con成都主题演讲【弹性计算】by马介悦Q con成都主题演讲【弹性计算】by马介悦
Q con成都主题演讲【弹性计算】by马介悦
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍
 
云计算概念介绍2011 03
云计算概念介绍2011 03云计算概念介绍2011 03
云计算概念介绍2011 03
 
云运维的理念和思维
云运维的理念和思维云运维的理念和思维
云运维的理念和思维
 
美团点评技术沙龙07 - 外卖后端端技术架构
美团点评技术沙龙07 - 外卖后端端技术架构美团点评技术沙龙07 - 外卖后端端技术架构
美团点评技术沙龙07 - 外卖后端端技术架构
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04   美团下一代分布式存储系统美团技术沙龙04   美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
 
Cnut 容器大会 京东
Cnut 容器大会 京东Cnut 容器大会 京东
Cnut 容器大会 京东
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 
海量集团概况
海量集团概况海量集团概况
海量集团概况
 
Houxiaoqiang soa
Houxiaoqiang soaHouxiaoqiang soa
Houxiaoqiang soa
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
 

阿里巴巴中台架构设计与实践(NBF)_ArchSummit2021_冯微峰