Upload
buibao
View
371
Download
14
Embed Size (px)
Citation preview
企业IT技术应用曲线
• 微服务在2016年成为仅次于
物联网和认知计算的第三热门技术
• 2014年被很多人认为是企业上云元年
• 2014年几乎企业应用都没有考虑的Docker在2015年就已经被所有人纳入应用计划
2009 2014
MSA
By Simon Wardley http://enterpriseitadoption.com/
传统企业应用开发模式
开发
产品发布计划
开发
集成开发 运维人员替换部 署 旧 版 本
开发
开发
测试/发布
• 技术实现单一,需要想办法用一种技术解决所有问题
• 只能按大颗粒系统发布版本,响应周期长
(小特性版本3-6个月,每年1个大版本)
• 无法做到永远在线,大版本升级时,要停机中断服务
微服务化的应用构建和发布
产品发布计划
产品发布计划
产品发布计划
产品发布计划
开发
部署到生成环境
部署到生成环境
开发
开发
部署到生成环境
部署到生成环境
部署到生成环境
开发
开发
bugs
旧版本持续运行
企业应用和集成
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插件)
更细致的服务路由管控
ETCD集群
服务中心实例
服务中心实例
服务中心实例
• 统一的路由策略管控 • 缓存以提升性能 •支持pull/push两种模式监控实例变化 • 实例动态扩容,海量的长连接或者短连接 • 支持灰度发布、服务分组等高级管理特性
微服务
还远远不止这些…
部署/启
动
日志/监
控
告警
诊断
治理/配
置 扩容
缩容
回滚
停止/卸
载
微服务运维生命周期管理
创建
编码
编译
构建
部署 测试
验收
发布
删除
微服务开发生命周期管理
从软件到服务
微服务治理
微服务部署平台(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
公众号
扫码入群