微服务应用现代化交付与管理一体化实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 微服务应用现代化交付与管理
一体化实践
阿里云/曾庆国
2.
3. 个人简介
曾庆国(悦达),KubeVela 社区 Maintainer。阿
里云技术专家。长期从事应用持续交付、可观测、
基础设施管理等领域,积累大量基于 Kubernetes
的云原生应用管理平台建设经验。曾帮助多个行业
头部用户完成云原生 DevOps 转型。
个人微信
(加入社区群)
4. 目录
• 微服务交付和管理的技术背景和挑战;
• 社区及阿里云的实践方案;
• 社区下一步计划;
5. 什么是服务?
CDN
SLB
第三方 API
基础设施服务(基础团队/云厂商)
Ingress Gateway
User Service
Cache Server
Order Service
Mysql
Payment Service
MQ
OSS
传统意义的微服务(业务团队)
中间件服务(中间件团队/云厂商)
常见的基础互联网应用的基础架构
业务应用、中间件、基础设施和第三方应用都是服务
统一交付、统一管理、统一衡量成本
6. 微服务管理的挑战
服务数量的爆炸性增长带来管理难题
敏捷开发
业务快速
增长 需求快速
变化
技术不断
迭代 新业务不
断尝试
服务化
多样化的服务不断产生
1. 传统交互式流水线维护的困难;
流水线
需求/环境差异
目标状态
不确定
交互式
决策压力/谁是决策人
2. 多样性配置变更管理的困难;
环境变量
进程参数
配置中心
动态配置匹配
多样化
工作负载
3. 异构的基础设施实施的困难;
CPU/Memory/GPU/Disk
资源需求差异
Cache/DB/MQ/Gateway
中间件需求差异
4. 成本难以衡量和控制;
服务资源/管理成本
无法预估
全链路成本
很难监测
闲置资源能否
及时回收
多地域实施的
巨大环境差异
7. 微服务管理的挑战
运维(平台)团队在云原生转型中负重前行
cat access.log | grep "/gateway/api" |
grep "\" 500" | rev | cut –d " " –f4 | rev |
sort | uniq
自研发布平台
搭建自动化流水线:业务团队难以接手 容器化&平台化:肩负平台研发和业务运维重任
面向系统的命令编排:重复且大量的工作
网关
网关
API 网关
服务
专注于标准化
平台能力
服务
服务
把服务标准化管理权力
转移给服务创造者
服务
服务
服务
服务
任务
任务
任务
任务
任务
数据库
平台开发者
服务
服务
服务
异步任务
大数据平台
业务开发者
8. 企业服务发布平台的发展
宝 塔
灵活组合的云原生能力
CI/CD 流水线 & IaaS
容器云 & 传统 PaaS
云原生化
面向开发者的一站式平台
平台工程化
PaaS 封装: 特性:
a) a) 业务开发者体验优先,提供标准化服务管理能力;
易于使用,但管控能力的扩充主要依靠平台本身升级实现;
b) 封闭、锁定、黑盒化的 API; b) 流程标准化,向业界统一发展;
c) 一旦平台层人力投入不足便跟不上研发诉求; c) 低成本跟进云原生能力,新型应用交付技术;
容器 PaaS:
a)
b)
复杂资源概念暴露给业务开发者,复杂,学习成本高;
开发者难以从众多资源中定位业务故障;
d) 研发、发布、管理一站式统一,数据驱动,相互支撑;
9. 平台工程
Gartner
“Top Strategic Technology Trends 2023””
企业平台一直存在,
今天为啥再提 “平台工程”?
业务微服务化、云原生化发展到今天,需求更加复杂;
充分重视业务开发者的诉求:Serverless体验;
技术生态在持续演进,对平台的建设提出新要求:标准、统一;
10. KubeVela: 企业实践平台工程的好帮手
KubeVela 里程碑
•2019 年 阿里联合微软发布 OAM 应用规范;
•2020 年 KubeVela 作为 OAM 的官方实现发布;
•2021.3 KubeVela 发布 v1.0.0 GA 版本;
•2021.6 KubeVela 正式捐赠成为 CNCF 项目;
•2021.6 OAM 规范成为 信通院《开放应用模型》核心行业标准;
•2022 年 以招行、百度、钉钉、京东云、理想汽车等行业标杆用户出现并向社区分享了其实践案例;
•2023.2 KubeVela 正式成为 CNCF Incubating 项目;
• 截止至 2023.2 累计:
• 200+ 社区企业用户,5+ 生态合作伙伴,220+ 位贡献者来自 60+ 组织,Maintainer 10+ 人,
涵盖云服务PaaS、AI、游戏、金融支付、电商、物联网、音视频等众多场景和领域
• 镜像下载250w+, Star 4.8k+,Issue/PR 5.5K+, 社区成员 4400+
面向混合环境的应用交付控制平面
标准应用模型 OAM
Application Engine
Platform Framework
支撑“开发者平台”建设;
以应用为中心标准化衔接生态能力;
对接差异化基础设施;
项目地址:https://github.com/kubevela/kubevela
11. 统一应用模型-OAM
Kubernetes 提出了面向资源的声明式终态描述模型
Component
工作负载抽象,可根据企业业务团队实际情况进
行设计,暴露必要的参数给开发者。可覆盖业
务、中间件、虚拟机应用、外部API 服务等;
Trait
组件运维能力抽象,例如设置副本数、HPA、注
册 Metric 端点、日志分析、网关规则等
抽象
渲染
Policy
应用交付策略抽象,用于定义应用部署区域,差
异化,回收策略,状态维持策略等。
Workflow
内置应用交付工作流,定义应用交付的具体流程
和终态。实现声明式的灰度发布、分批发布等。
12. 应用模型OAM 粘合云原生生态能力
角色/责任分离
13. 声明式工作流技术
面向终态为啥还是需要工作流?
应用交付声明式工作流技术的要点?
与传统 CI 流水线不同,需要更轻量级的(线程级)运行模
式;
应用完整描述
能够低成本的方式扩展,匹配各种流程场景需求;
应用需求描述
到达终态过程描述
与应用声明式需要天然的契合,围绕着 Kubernetes 生态;
统一控制面,对目标环境无依赖(Serverless);
能够以并行、串行综合的方式执行;
多集群/多环境部署
高级发布策略
资源回收
碎片化的复杂应用交付场景
安全控制
14. 声明式工作流技术
丰富的能力和
强大的流程控制
https://github.com/kubevela/workflow
Declined
Or
Timeout
数据传递
Image ID
Output
Input
Step A
步骤组
Step G
生产环境 A 部署
Timeout: 24h
Step B
构建镜像
可扩展,
可编程,可复用
参数校验和
安全执行
高效且
轻量
Step C
推送镜像
镜像扫描
Step H
Step F
Step E
等待条件满足
开发环境部署
If: C.failed
Metrics
Check
生产环境 B 部署
If: Always
Step J
消息通知
Step I
生产环境 C 部署
Step D
镜像清理
Workflow Step Definition (IaC 抽象)
注册内置/自定义函数
内置函数
自定义函数
HTTP 请求,多集群资源管理,流程控制等…
CI 集成
ACR
扫描插件
多环境部署
Cluster Gateway
多集群
Cloud Providers
IOT / Edge
可观测能力
…
HTTP 请求
15. 声明式工作流技术
Provider 调用
Provider 实现
流程控制
Workflow Spec(YAML)
Workflow Step Definition (CUE)
16. 应用场景-自动化灰度发布
获取系统 Metric 服务端点信息
下发新工作负载,
生成 20% 副本和承接 20% 流量
基于 Metric 指标变化决策是否继续
方案优势
灵活对接社区原子能力:
应用观测、工作负载控制、流量调节;
灵活对接企业已有平台:通知、审批;
工作流与应用工作负载协同,负载类型灵活定义;
不再是固定的模式,应对需求变化;
自动检查失败,通知人工确认
全量发布完成
17. 基础设施对接
Kubernetes 多集群技术与声明式使用
KubeVela Controller
KubeVela API
CLI
原生支持多集群代理访问
技术侧:
Kubernetes APIServer
大多数场景采用直连模式,不用
Cluster Gateway
X509 Certificate/
ServiceAccount
安装 Agent;
无状态网关模式,可水平伸缩;
User/Group Mapping
OCM Proxy Tunnel
多种用户鉴权方式,托管/透传
用户侧:
集群灵活编排;
应用和资源灵活匹配;
On-premise
Cloud
Edge
工作流串行/并行交付;
屏蔽了底层复杂性;
18. 基础设施对接
Kubernetes 资源风格衔接其他基础设施
Kubernetes API 请求
Kubernetes APIServer
Aggregated API 请求转发
MTLS 身份互验
注册
鉴权
KubeVela Prism (Dynamic API)
APIService
Dynamic Server
Package Controller
APIService
o11y.prism.oam.dev/v1alpha1
vector.prism.oam.dev/v1alpha1
自动创建
Package
GrafanaDashboard (CUE Template)
Package
NginxConfig (CUE Template)
集成
无需开发 CRD 控制器,转化传统服务为面向资源终态描述
19. 可观测流水线全栈声明式
Agent Gateway Store & Analyze Report
Logs/Metrics/Traces ETL Tools Data Warehouse Dashboard
Collect
Transform
Aggregation
Rewrite
数据就近处理 异构数据处理
数据发现;
过滤、格式化;
转化:Log2Metric,
Recording Rule
数据安全 数据分类,转存;
数据合并、重写;
Logs Rule
Store
Analyze
存储&查询
匹配合适的存储服务类似;
Metric Rule Tracing Rule Dashboard/Alert Rule
Dynamic API
Observability Traits
Application
View
Alert
数据利用
进一步数据聚合;
综合可视化大盘;
数据报警规则;
20. 高扩展性平台开发框架
Addon
OAM API
Component Definition
RuntimeApp
工作负载资源自定义渲染,也适用于
其他资源。
Views
Trait Definition
生成旁路资源,或对工作负载资源做修正。
Policy Definition
主要影响控制面的工作流程,
或根据环境修正资源。
Workflow Step Definition
定义步骤执行逻辑,处理数据输入/输出。
Definitions
UI Components
动态加载
Vela Core
VelaUX
社区已发布的开箱即用的生态扩展
21. SAE:基于 KubeVela 的阿里云 Serverless 应用管理平台
面向开发者友好的一站式应用托管平台
微服务应用
Web 应用
容器工作负载
批任务处理
镜像加速 低门槛、零改造
GB 级镜像 秒级启动 Spring 应用零代码改造迁移
微服务治理
优雅上线/下线+全链路灰度
JVM 极致优化
定时任务
企业级特性
核心优势
使用场景
大数据 ETL
启动加速40%,线程占用省
20%
微服务架构转型
安全稳定 一键启停、降本增效
核心业务打磨、合规安全可观
测 低门槛容器化转型
智能弹性
秒级弹性扩缩、100% 资源利用
轻松应对流量洪峰脉冲
Serverless 应用引擎 SAE
应用交付
控制面
工作负载定义
内置运维能力
多 Region 交付
应用观测
平台提供的全托管 Kubernetes 集群(多 Region)
Serverless
基础设施
应用交付工作流
神龙裸金属服务器
盘古 2.0 存储
洛神网络
袋鼠安全容器
22. 钉钉混合云交付平台实践
专属钉混合部署云业务(应用市场)
钉钉
交付平台
衔
接
行
业
应
用
上
云
云控制面
直播加速
视频 SIP
高校数智课堂
服务
网络代理
存储网关
数据库
网关
零信任网关
ISV 厂商应用
OAM 应用规范
VelaUX
(Framework)
VelaUX API
(Framework)
应用观测
应用交付/管理
平台管理
通用 UI 模块
多租/项目管理
流水线
钉钉
自研
云基础设施
专属钉
服务交付流程
API 代理/鉴
权
钉钉
自研
交付
派单
单点
认证
边缘节点
管理
Kubernetes API
Vela Core
Terraform Controller
RDS
VPC
Cluster Gateway
ACK
ACK Edge
FluxCD
( 及 addon 仓库其他插件 )
客户边缘节点
23. KubeVela 社区下一步计划
如何帮助更多企业解决平台研发难题?
项目建设
围绕应用交付提供平台研发框架和对应开发者工
具,支撑企业升级改造已有平台或快速研发新平
台;
进一步提升核心应用引擎的性能、稳定性和体
验;基于大规模应用交付场景优化;
力争 2 年内成为 CNCF 毕业项目;
项目地址:
https://github.com/kubevela/kubevela
社区生态
推动 OAM 行业规范在 钉钉(企业办公)、招行(金融)、
京东云(云厂商)等行业充分落地;
带动社区打造更多的开箱即用的标准平台插件能力,企业可
以按需组装。
24.