Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
ServiceComb 的前世今生 华为CloudBU PaaS 微服务引擎开发团队
我们一直在很认真地做微服务
华为CloudBU PaaS 微服务引擎开发团队
议题
• 企业应用微服务化的趋势和动机
• 面临的问题
• 解决思路和设计方案
• 从软件到服务
3
企业IT技术应用曲线
• 微服务在2016年成为仅次于
物联网和认知计算的第三热门技术
• 2014年被很多人认为是企业上云元年
• 2014年几乎企业应用都没有考虑的Docker在2015年就已经被所有人纳入应用计划
2009 2014
MSA
By Simon Wardley http://enterpriseitadoption.com/
传统企业应用开发模式
开发
产品发布计划
开发
集成开发 运维人员替换部 署 旧 版 本
开发
开发
测试/发布
• 技术实现单一,需要想办法用一种技术解决所有问题
• 只能按大颗粒系统发布版本,响应周期长
(小特性版本3-6个月,每年1个大版本)
• 无法做到永远在线,大版本升级时,要停机中断服务
微服务化的应用构建和发布
产品发布计划
产品发布计划
产品发布计划
产品发布计划
开发
部署到生成环境
部署到生成环境
开发
开发
部署到生成环境
部署到生成环境
部署到生成环境
开发
开发
bugs
旧版本持续运行
Speed & Safety
面临的问题
• 企业应用和互联网应用的不同?
• 如何做到不同ISV的应用互联互通统一管理?
• 怎么才能加快微服务的开发?
• 微服务化后如何保证性能?
• 如何进行统一的路由控制?
企业应用和集成
Java
注册中心、治理中心
Go 服务契约
生成工具 框架代码 框架代码 框架代码
接口文档 接口文档 接口文档
生成
生成
• 面向契约而不是逻辑
• 解耦服务提供者和消费者的开发顺序
• 契约定义为语言中立
• 规范化系统接口,让实现与文档的同
步成为必须
• 通过工具简化整个过程
API First
增速微服务开发 --- 工具支持
OpenAPI (Swagger) 定义
编辑器:在线编辑,语法提示,错误检查
文档生成器:生成HTML与符合华为规范文档
Mock生成器:生成Mock工具,用于测试微服务
现有代码提取OpenAPI工具
与RPC的IDL互转工具 protobuf3
多语言多框架代码生成器
多语言Protobuf3对象编码库
Java 微服务编程框架 Go 框架 其他 框架
Spring MVC JAX-RS
POJO
Martini
Mux
Java protobuf对象
Go protobuf对象
编辑
生成
生成
生成 提取
转换
生成
Restful
Rpc
IDE插件支持(Maven插件)
增速微服务开发 --- 降低学习门槛
SpringMVC JAXRS
性能保证
Process
Event-Loop
Process
R R W W
线程池
•异步 • 标准、开放、协议健壮性 • 开发框架的性能在于细节,而不仅仅是协议。
更细致的服务路由管控
ETCD集群
服务中心实例
服务中心实例
服务中心实例
• 统一的路由策略管控 • 缓存以提升性能 •支持pull/push两种模式监控实例变化 • 实例动态扩容,海量的长连接或者短连接 • 支持灰度发布、服务分组等高级管理特性
微服务
ServiceComb 开发框架
通信模型
(序列化、传输协
议)
编程模型
(同步、异步、Reactive…)
服务契约 (OpenAPI)
服务发现 熔断 负载均衡 配置 跟踪 …
运行模型
还远远不止这些…
部署/启
动
日志/监
控
告警
诊断
治理/配
置 扩容
缩容
回滚
停止/卸
载
微服务运维生命周期管理
创建
编码
编译
构建
部署 测试
验收
发布
删除
微服务开发生命周期管理
从软件到服务
微服务治理
微服务部署平台(PaaS)
微服务开发
微服务基础治理 微服务高级治理
服务发现
服务配置
服务路由
多通信访问
调用链跟踪
多事务管理
多运行时管理
ServiceMesh
容错 &
熔断
限流降级
服务隔离
容量预测
微服务安全
工具链生态
契约开发 工具
代码自动 生成
文档自动 生成
自动测试 工具
本地远程 调试
微服务 流水线
资源管理 容器编排 & 调
度 应用管理 弹性伸缩 灰度发布 监控运维APM
Go语言
XXX语言
Java语言
服务契约 & OpenAPI
SpringMVC
JAX-RS
RPC编程
REST通讯
XX通讯插件
RPC通讯
TCC
XX事务
强事务
多语言 多编程框架 多通信协议 多事务一致性
Java 微服务
Go 微服务
XX语言 微服务
Spring微服务
遗留 应用
微服务云服务: https://servicestage.huaweicloud.com/ 微服务引擎交流论坛: http://forum.huaweicloud.com/forum.php?mod=forumdisplay&fid=622
公众号
扫码入群