14
ServiceComb 的前生今世 张琦

ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

ServiceComb 的前生今世

张琦

Page 2: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

• 企业应用微服务化的趋势和动机

• 面临的问题

• 解决思路和设计方案

Page 3: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

• 微服务在2016年成为仅次于物联

网和认知计算的第三热门技术

• 2014年被很多人认为是企业上云

元年

• 2014年几乎企业应用都没有考虑

的Docker在2015年就已经被所

有人纳入应用计划

2009 2014

MSA

By Simon Wardley http://enterpriseitadoption.com/

Page 4: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

• 技术实现单一,需要想办法用一种技术解决所有问题

• 只能按大颗粒系统发布版本,响应周期长

(小特性版本3-6个月,每年1个大版本)

• 无法做到永远在线,大版本升级时,要停机中断服务

产品发布计划 集成开发 测试 / 发布运维人员替换

部署旧版本

开发

开发

开发

开发

Page 5: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

bugs

产品发布计划 旧版本持续运行开发

开发

开发

开发

开发

部署到生成环境

产品发布计划

产品发布计划

产品发布计划

部署到生成环境

部署到生成环境

部署到生成环境部署到生成环境

Page 6: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

Speed & Safety

Page 7: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

• 企业应用和互联网应用的不同?

• 如何做到不同ISV的应用互联互通统一管理?

• 怎么才能加快微服务的开发?

• 微服务化后如何保证性能?

• 如何进行统一的路由控制?

Page 8: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

Java Go服务契约

生成工具

框架代码框架

代码框架代码

接口文档接口

文档接口文档

生成 生成

• 面向契约而不是逻辑

• 解耦服务提供者和消费者的开发顺序

• 契约定义为语言中立

• 规范化系统接口,让实现与文档的同步成为必须

• 通过工具简化整个过程

API First注册中心、治理中心

Page 9: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

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插件)

生成

生成

Page 10: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

SpringMVC JAXRS

Page 11: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

Process

Event-Loop

Process

R R W W

线程池

• 异步

• 标准、开放、协议健壮性

• 开发框架的性能在于细节,而不仅仅是协议。

Page 12: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

ETCD集群

服务中心实例

服务中心实例

服务中心实例

• 统一的路由策略管控

• 缓存以提升性能

• 支持pull/push两种模式监控实例变化

• 实例动态扩容,海量的长连接或者短连接

• 支持灰度发布、服务分组等高级管理特性

微服务

Page 13: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

通信模型

(序列化、传输协议)

编程模型

(同步、异步、Reactive…)

服务契约(OpenAPI)

服务发现 熔断 负载均衡 配置 跟踪 …

运行模型

Page 14: ServiceComb 的前生今世servicecomb.apache.org/assets/slides/20170619/ServiceCombIntroduction.pdf• 解决思路和设计方案. • 微服务在2016年成为仅次于物联

l Github:https://github.com/ServiceCombl 官网:https://www.servicecomb.io

Thank You