apache servicecomb introduction of microservice innovation ... · php service servicecomb mesher...

13
[Website] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb Apache ServiceComb Introduction of Microservice Innovation Project

Upload: others

Post on 23-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Apache ServiceComb

Introduction of Microservice Innovation Project

Page 2: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Continuous Innovation to Address User Pain Points

Multi-language

runtime

environment

Heterogeneous

communication in

the service center

Microservice

authentication

Distributed system

configuration center

Microservice

contract tools

Apache ServiceComb

Helps enterprise

users achieve unified

service models and

meets data integration

standards.

Manages complex

distributed system

configurations through

easy-to-understand

data and portals.

Develops and deploys

microservices in the

same domain using

multiple programming

languages.

Enables collaboration

and governance

between microservice

applications developed

based on multiple

technology stacks.

Meets performance

and security

requirements in the

trend widely accepted

and certified by third-

party organizations.

Page 3: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

A high-performance service grid framework based on Golang,

supporting non-intrusive business code to implement

microservice transformation, and interoperating with popular

microservice framework governance.

• Github link

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

• Next step

- Gateway capabilities

- Fusion ecology suche as Istio/Promethues/Skywalking/…

- Compatible with heterogeneous infrastructure suche as

K8S/BareMetal/docker/VM/…

Mesher - Heterogeneous,multilingual,non-intrusive microservice framework

Page 4: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Mesher - Evolution to microservice in multi-language scenarios

• Quick Start

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

ServiceComb

Service Center

ServiceComb

Mesher

PHP

Service

ServiceComb

Mesher

NodeJS

Service

ServiceComb

Mesher

Python

Service

ServiceComb

Config Center

Go-chassis

SDK

Golang

Application

ServiceComb

SDK

Java

Application

Control Plane

Page 5: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

ServiceComb Toolkit

Toolkit - Microservice development and transformation tools

Provides the ability to convert and verify API, code, and

documents, helping users quickly build microservice projects

based on popular microservices frameworks and popular

programming models, reducing the cost of microservices entry,

enabling users to focus on business development, enhance

refactoring and development efficiency.

• Github link

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

• Next step

- Support one-click production microservice project based on

popular microservice framework such as SpringCloud.

- Support OAI V3

- Support for toolkit plugin integration into Eclipse & Intellij

Interface layer

API extraction

document

generationAPI validator

code generation

Development frame layer

ServiceComb SpringCloud ……

Implementation layer

plugin

(maven/gradle)CLI

……

……Scaffolding

Service

Page 6: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Toolkit - One-click generation of microservice project

• Quick Start

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

User Output

Complying with the OpenAPI

specification API document

Code and API

Consistency comparison report

API document

Based on ServiceComb/SpringCloud

Microservice project

ServiceComb toolkit

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

定义契约(接口和模型)

发布契约

ServiceComb

toolkit

Develop

microservice

Test

microservice

Customer + Integrator

Software vendor

Deploy

microservice

Contract repository

微服务运行环境

验收微服务

Collaboratively implement standard management of contract-based data and services

Divide microservices

(including dependencies)

Define contract

(interface and model)Release contract

Microservice

runtime

environment

Accept

microservice

Based on OpenAPI

New microservice

development

Rebuilding legacy

applications into

microservices

第三方

User interaction Conversion Development

framework

API

extraction

code

generation

document

generationServiceComb

Maven

plugin

Page 7: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Syncer is a multi-service-center synchronization tool designed for large microservice architectures, enabling microservices

developed on different technology stacks to exchange data with each other. This project will support cross-cloud data connection.

Syncer - Multi service center synchronization tool

Syncer

Syncer

Syncer

Syncer

Syncer

Syncer

Eureka

ServiceCenter

Consul

Kubernetes

Other DC

ETCD

Gossipprotoclo

Gossipprotoclo

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 • Next step

- Support for dynamic connection clustering

- Support cross-data center capabilities

- Support connecting popular authentication framework

• Github link:https://github.com/apache/servicecomb-service-center/tree/master/syncer

Page 8: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Syncer - Heterogeneous popular service center integration practice

• Quick Start

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: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Fence - Microservice Authentication Framework

servicecomb-fence provides a microservice authentication framework based on Oauth2.0 and OpenID Connect, helping users

quickly build high-performance and secure microservice authentication capabilities.

• Github link: https://github.com/apache/servicecomb-fence

Multiple

application

scenarios

Authentication and

authorization service for

connecting to third parties

SimplifiedAuthorization

code

Password Client

Session-onlyToken-only

Hybrid

• Out-of-the-box: provides default Authentication Server, Edge Service, and Resource Server, simplifying development.

• Simplified development: allows users to configure permissions using either configuration file or Annotation, and supports separation of permission

configuration from code logic.

• Third-party authentication: uses the Open ID protocol to connect to third-party authentication systems such as WeChat and Weibo.

• Secure and efficient: supports hybrid-token authentication and session-based authentication, meeting the performance and security requirements.

Multiple

authentication

modes

Flexible

architecture

• Quick Start

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

Page 10: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Kie - Semantic Distributed System Configuration Center

Kie is used to implement the configuration center for a cloud native distributed system, enabling O&M

personnel to manage complex distributed system configurations using understandable data and portals.

• Github link: 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=1s

ServiceB.user.getUser.timeout=10s

- Configuration views can be generated from multiple dimensions under such data format design, improving usability and readability.

-The learning cost is high. O&M personnel need to learn the key rule that takes effect only within the team.

-All keys are managed in one type of view, which increases the management cost.

-The ever-increasing definition of rules is becoming more and more complex and unreadable.

-The key design cannot be extended or changed, and the data structure cannot be changed easily.

API

Storage

config map cache

Backends K8s operator

Consul operator

dao

config view managerconfig view selectorsconfig maps

Event producer

API gateway

Data

encryptionUser-defined service

Encryption web hook

Version manager rollback

history

config map config view history

ObserverConfig propagate

propagate

authCustomized service

Vault

mongodb

Core

Page 11: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Open-Source, One-Stop Microservice Solution

Open-Source, One-Stop Microservice Solution

Legacy Application Transformation New Microservice Development Ecosystem Compatibility

ServiceMesh

Configuration

Visualized monitoring

OpenTracing

Code

generation

API

extraction

API

verification

Document

generation

Microservice scaffolding

Quick Start

SamplesUser manualCommunity website

Core

Service centerMicroservice

development framework

Distributed transaction

framework

Authentication

framework

Configuration

centerMesher

Rest (OpenAPI)/RPC

Cloud Native

Fusion

ecology

Apache ServiceComb

Microservice framework

Communication specification

Development toolkit

Page 12: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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

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

Community summoned

For developers

For users

Choosing Apache ServiceComb, we will take your approach to WeChat Group/Github Issue/MailGroup seriously:

Every question

Every suggestion

We look forward to working with you to build a community and persevere to solve the microservice problem.

Expert / is already a microservice developer / is about to join the microservice developer

/ developer who is simply seeking open source contributions / scholar / student /... and so on,

We look forward to your joining and contribution,

If you are ready to contribute code, please scan the QR code into the group and note the "contribution".

We will work with you on a one-on-one basis.

Page 13: Apache ServiceComb Introduction of Microservice Innovation ... · PHP Service ServiceComb Mesher NodeJS Service ServiceComb Mesher Python Service ServiceComb Config Center ... based

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.