微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... ·...

13
[Website] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb Apache ServiceComb 微服务创新项目解读

Transcript of 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... ·...

Page 1: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Apache ServiceComb

微服务创新项目解读

Page 2: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

面对用户痛点持续创新

在同一个业

务领域的微

服务中使用

了多种不同

语言进行开

发部署

使能多微服

务技术栈开

发的微服务

应用之间协

同工作和共

同治理

使能满足第三

方认证被广泛

采纳的趋势下

认证鉴权的性

能和安全的要

帮助企业用

户达成业务

模型和数据

集成标准统

通过易于理

解的数据和

入口,管理

复杂的分布

式系统配置

多语言运行环境 服务中心异构通信 微服务鉴权

分布式系统配置中心微服务契约工具

Apache ServiceComb

Page 3: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Mesher - 开箱即用的异构、多语言、非侵入式微服务框架

基于Golang实现的高性能服务网格框架,支持零侵入业

务代码实现微服务化改造,与流行微服务框架治理互通

• 项目地址

https://github.com/apache/servicecomb-mesher

• 开发计划

- 网关能力

- 融合生态 Istio/Promethues/Skywalking/…

- 兼容异构基础设施 K8S/BareMetal/docker/VM/…

Page 4: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Mesher - 多语言场景下向微服务架构演进

• 快速入门

http://servicecomb.apache.org/cn/docs/mersher-quick-start/

ServiceCombService Center

ServiceCombMesher

PHPService

ServiceCombMesher

NodeJSService

ServiceCombMesher

PythonService

ServiceCombConfig Center

Go-chassisSDK

GolangApplication

ServiceCombSDK

JavaApplication

Control Plane

Page 5: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

ServiceComb Toolkit

Toolkit - 遵循OpenAPI的微服务开发、改造工具

提供遵循OpenAPI规范的API、代码、文档相互转换和校

验的能力,帮助用户快速构建基于流行微服务框架和编程

模型的微服务脚手架工程,提升遗留系统重构、开发效率

• 项目地址

https://github.com/apache/servicecomb-toolkit

• 开发计划

- 支持API生成Spring Cloud微服务工程

- 支持OAI V3

- 支持toolkit plugin集成到Eclipse&Intellij

接口层

API提取

文档制作 API校验

代码解析

微服务开发框架层

ServiceComb SpringCloud ……

实现层

插件 命令行

……

……脚手架服务

Page 6: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Toolkit - 一键生成基于流行微服务框架的微服务工程

• 快速入门

https://github.com/apache/servicecomb-toolkit/blob/master/samples/README-ZH.md

用户

第三方

输出

遵循OpenAPI规范API文件

代码与API一致性比较报告

API文档

基于ServiceComb/SpringCloud微服务工程

用户交互 转换 微服务开发框架

API提取 代码生成 文档生成 ServiceComb

ServiceComb toolkit

划分微服务(含依赖关系)

定义契约(接口和模型)

发布契约

ServiceComb契约开发工具

开发微服务测试微服务

客户+集成商

软件提供商

部署微服务

契约仓库

微服务运行环

境验收微服务

协同实现基于契约(API)的数据、服务标准化管控

划分微服务(含依赖关系)

定义契约(接口和模型)

发布契约

微服务运行环

境验收微服务

基于OpenAPI规范全新微服务开发

遗留应用微服务化改造

Maven插件

Page 7: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Syncer是一个多服务中心的同步工具,对应用程序透明。专为大型微服务架构设计,实现不同的微服务技术栈实现的微服

务业务可以进行数据通信,未来可支持跨云的数据通信支持

• 项目地址:https://github.com/apache/servicecomb-service-center/tree/master/syncer

Syncer - 融合异构、多服务中心的同步工具

gossip协议

Syncer

Syncer

Syncer

Syncer

Syncer

Syncer

Eureka

ServiceCenter

Consul

Kubernetes

Other DC

ETCD

gossip协议

Serf (Gossip)Pull&&Push

event notification between clusters

data stream of service instance

Pull&&Push

Pull&&Push

SyncerFollower

SyncerLeader

SERVICECENTER B

SyncerFollower

Microservice

Microservice

Microservice

ServiceCenter

Register Discover

Register Instances of other SC Discover

ETCD (Raft)

Microservice

Microservice

Microservice

Eureka

Register Discover

Syncer

Register Instances of other SC

SERVICECENTER C

Microservice

Microservice

Microservice

ServiceCenter

Register Discover

Syncer

Register Instances of other SC

SERVICECENTER A • 开发计划

- 支持动态连接集群

- 支持跨数据中心能力

- 支持对接流行认证鉴权服务

Page 8: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Syncer - 异构流行服务中心融合实践

• 快速入门

https://github.com/apache/servicecomb-service-center/tree/master/syncer/samples/multi-servicecenters

synchronize instances

HelloServer

ServiceCenter

Register Discover

AccountServer

Eurake

Register Discover

HelloServer

ServiceCenter

Register Discover

SyncerA

Register instance of Eureka

AccountServer

Eureka SyncerB

Register instance of ServiceCenter

Register Discover

Page 9: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

Fence - 微服务认证鉴权框架

提供基于Oauth2.0和OpenID Connect的微服务架构认证鉴权框架,帮助用户快速搭建高性能、安全的微服务认证鉴权能力

• 项目地址:https://github.com/apache/servicecomb-fence

多种应用场景支持

对接第三方认证鉴权服务

多种认证模式支持

简化模式授权码模式

密码模式 客户端模式

灵活架构模式

纯Session模式纯Token模式

混合模式

• 开箱即用:提供了默认的Authentication Server、Edge Service、Resource Server实现,简化用户开发难度• 开发简单:提供配置文件和Annotation两种方式配置权限,支持权限配置和代码逻辑分离,也支持在使用Annotation声明式

的权限配置,相辅相成。• 第三方认证支持:采用Open ID协议,对接Github等三方认证系统。• 安全高效:混合Token模式和Session模式,满足性能和安全性的最佳组合。

• 快速入门

https://github.com/apache/servicecomb-fence/blob/master/docs/zh_CN/developersGuide.md

Page 10: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

实现云原生的分布式系统配置中心,使能运维人员通过易于理解的数据和入口,管理复杂的分布式系统配置

• 项目地址:https://github.com/apache/servicecomb-kie

Timeout(service=serviceB, schema=user, operation=getUser):10s

OCR_address(environment=test): http://192.168.1.1

ServiceB.timeout=1sServiceB.user.getUser.timeout=10s

-在这样的数据格式设计下可生成多角度的配置视图,提升易用性,人类可读性-学习成本高,运维人员要学习这个只在团队内部生效的key规则

-所有的key集中在一种类型的视图中管理,管理成本高。

-不断增长的规则定义,越来越复杂,人类不可读。

-Key设计无法扩展变更,没法轻易变更数据结构

Kie - 语义型分布式系统配置中心

core

API

storage

config map cache

backends K8s operator

Consul operator

dao

config view manager

config view selectorsconfig maps

Event producer

数据加密

用户自定义服务

Encryption web hook

Version manager rollback

history

config map config view history

Observer

Config propagate

propagate

auth

自定义服务

Vault

mongodb

Page 11: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

融合开源生态的一站式微服务解决方案

融合开源生态的一站式微服务解决方案

遗留应用转型 全新微服务开发 开源异构微服务兼容

ServiceMesh

服务通信规范

配置

流行微服务框架

可视化监控

分布式追踪

开发工具

代码自动生成

API自动提取

API校验

文档自动生成

微服务脚手架

快速入门

案例代码库用户手册社区网站

内核

服务中心微服务

开发框架分布式事务

框架

认证框架配置中心 多语言方案

Rest(OpenAPI) / RPC

云原生

融合流行生态

Apache ServiceComb

Page 12: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

[Website] http://servicecomb.apache.org

[Github ] https://github.com/apache?q=servicecomb

社区召集令

对开发者们,我们想说

对用户们,我们想说

选择Apache ServiceComb,我们会认真对待您在微信群/Github Issue/MailGroup的:每一个问题每一个建议期待与您共建社区,持之以恒,共同解决微服务难题保护您的选择是我们的使命

不论您是大咖/已是微服务开发者 / 即将进入微服务开发者 / 单纯寻求开源贡献的开发者 / 学校学者 / 学生 /……我们期待您的加盟与贡献

如果您准备贡献代码,请扫描二维码进群,备注“贡献代码”我们将会与您进行一对一交流协作

PS: 不需要任何的顾虑,我们来一起做点有意思的事情未来它会是XX云上服务,会是XX企业方案,运行在各样的业务中

Page 13: 微服务创新项目解读servicecomb.incubator.apache.org/assets/slides/20190920/... · 2019-09-23 · [Website] [Github ] 面对用户痛点持续创新 在同一个业 务领域的微

Copyright©2018 Huawei Technologies Co., Ltd.

All Rights Reserved.

The information in this document may contain predictive

statements including, without limitation, statements regarding

the future financial and operating results, future product

portfolio, new technology, etc. There are a number of factors that

could cause actual results and developments to differ materially

from those expressed or implied in the predictive statements.

Therefore, such information is provided for reference purpose

only and constitutes neither an offer nor an acceptance. Huawei

may change the information at any time without notice.

把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。

Bring digital to every person, home and organization for a fully connected, intelligent world.

加入ServiceComb社区群 微服务微信公众号

Thank you.