微服务引擎
产品介绍
文档版本 01
发布日期 2022-02-16
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129 网址:
https://www.huawei.com
客户服务邮箱:
[email protected]
客户服务电话:4008302118目 录
1 什么是微服务引擎 CSE... 1
2 应用场景...3
3 CSE 版本支持机制... 6
4 产品规格...8
5 配额说明...9
6 计费说明...10
7 权限管理...12
8 基本概念...16
9 与其他服务的关系... 18
产品介绍 目 录
1 什么是微服务引擎 CSE
微服务引擎(Cloud Service Engine,CSE),是用于微服务应用的云中间件,为用户 提供注册发现、服务治理、配置管理等高性能和高韧性的企业级云服务能力;CSE可无 缝兼容Spring Cloud、ServiceComb等开源生态;用户也可结合其他云服务,快速构建 云原生微服务体系,实现微服务应用的快速开发和高可用运维。
CSE分为CSE 1.0、CSE 2.0两个版本。
CSE 2.0提供微服务引擎专享版。微服务引擎专享版是可支持大规模微服务应用管理的 商用引擎。您可根据业务需要选择不同规格;引擎资源独享,性能不受其他租户影 响。
相较于CSE 1.0,CSE 2.0版本底层架构、功能、安全及性能全面升级,提供了独立的服 务注册发现中心和配置中心,支持基于用户业务场景的定义和治理。两个版本的特性 比对请参见表1-1。
表1-1 CSE 2.0 和 CSE 1.0 特性比对
功能 特性 2.0 1.0 备注
引擎管 理
安全性 支持安全认证 √ √ -
可靠性 3AZ高可靠 √ √ -
微服务 管理
基础能力 注册发现 √ √ -
多框架接入 √ √ 支持Spring Cloud、
ServiceComb Java Chassis、Dubbo、
Go Chassis。
无实例版本自动 √ x 保留最近3个微服务
产品介绍 1 什么是微服务引擎 CSE
功能 特性 2.0 1.0 备注 配置格式多样化 √ 仅支持
文本 2.0新增支持配置格 式有:YAML、
JSON、TEXT、
Properties、INI、
XML。
导入导出 √ √ 2.0新增支持设置导
入相同配置策略
高级特性 历史版本 √ x -
版本对比 √ x -
一键回滚 √ x -
配置标签 √ x -
性能 秒级下发 √ x -
微服务 治理
业务场景 化治理
业务场景定义 √ x -
基于请求Method 的匹配规则
√ x -
基于请求Path的 匹配规则
√ x -
基于请求Headers 的匹配规则
√ x -
治理策略- 流量控制
服务端的令牌桶 限流
√ √ -
治理策略- 重试
客户端通过重试 来保证用户业务 的可用性、容错 性、一致性
√ √ -
治理策略- 熔断
服务端通过熔断 故障业务,防止 故障蔓延到整个 服务,发生大规 模故障
√ √ -
治理策略- 隔离仓
服务端基于信号 量控制请求并发 能力
√ x -
开发工 具
本地轻量 化引擎
本地一键启动,
方便开发者离线 开发微服务
√ √ -
产品介绍 1 什么是微服务引擎 CSE
2 应用场景
微服务注册发现
微服务启动时,将实例信息注册到CSE,包括实例的基本信息,如应用名称、微服务名 称、版本号、服务契约、实例地址等;微服务需要调用其他微服务的接口时,从CSE查 询实例信息,并将实例信息缓存到本地,缓存会通过事件通知、定时查询等机制更 新;通过本地缓存的地址信息,实现微服务之间的点到点调用,当微服务存在多个实 例的情况,可以配置不同的负载均衡策略,包括轮询、权重、灰度发布、同可用区优 先等。
运维层面,可以通过CSE查看实例列表、微服务调用关系、服务契约等,帮助客户了解 应用系统组成、运行状态等信息。
产品介绍 2 应用场景
服务治理
服务治理有两种开启策略:
1. 一种是开发态就配置好,这种策略适合通用型,满足全业务场景的策略,比如负 载均衡策略。
2. 另外一种是运行态修改,这种策略适合根据业务变化需要动态调整的场景,比如 限流策略。
两种策略内部实现机制一般是相同的,需要配置管理系统下发治理策略和运行时SDK 执行治理策略,运行时治理SDK包含在用户选择的微服务开发框架及其扩展包里面,
与微服务一起编译集成。CSE控制台提供了常见的治理策略管理功能,方便用户根据业 务变化,调整治理策略。
配置管理
配置管理集中管理微服务的配置,配置管理根据配置项的属性,比如作用域、标签 等,将配置下发到具体的微服务。
产品介绍 2 应用场景
配置管理提供一系列方便的功能,比如查看历史版本和配置回滚、配置导入导出、灵 活的作用域管理等,满足用户管理复杂环境和海量微服务的业务诉求。
产品介绍 2 应用场景
3 CSE 版本支持机制
本章节为您介绍CSE的版本支持机制。
版本号说明
版本号格式为:{major}.{minor}.{patch}。
其中:
● {major}.{minor}为正式版本号。
● {patch}为补丁版本号。
例如,v2.3.1。2.3为正式版本号,1为补丁版本号。
版本支持机制
● 引擎创建
只能创建最新版本的微服务引擎,不支持指定版本创建引擎。
● 引擎维护
CSE后台同时支持维护最新的3个正式版本。其余的版本,CSE将不再提供技术支 持,包括支持新的功能、社区bugfix回合、漏洞修复、升级等。
● 引擎升级
– 正式版本升级,支持当前最新的3个正式版本中的2个较低版本升级到最新版 本。例如,当前最新的3个正式版本为2.3、2.2、2.1,则支持由2.1、2.2升级 到2.3。
说明
当引擎升级已超出可支持升级的版本范围,例如由2.0升级到2.3,可能导致微服务引 擎的管理功能不可用,请谨慎操作。
您可以通过提交工单,进行升级前风险评估。
– 补丁版本升级,CSE后台提供补丁版本自动升级,例如由2.3.0升级到2.3.1。
产品介绍 3 CSE 版本支持机制
版本约束
引擎版本升级后,不支持版本回滚。
产品介绍 3 CSE 版本支持机制
4 产品规格
您可根据需要托管的微服务实例数量,参考表4-1来选择CSE实例规格。
如表4-1所示,不同微服务实例数配额的CSE实例会赠送相应数量的配置条目数配额和 最大支持微服务版本总数。
表4-1 CSE 实例规格
微服务实例数配额 配置条目数配额 最大支持微服务版本总数
100实例 600 200
200实例 600 400
500实例 3,000 1,000
2,000实例 12,000 4,000
产品介绍 4 产品规格
5 配额说明
配额是指您在CSE实例中可创建的资源数量限制,具体的资源配额限制如表5-1所示。
表5-1 资源配额限制
功能 资源 最大配
额
是否支持修改 配额
注意事项
微服务管 理
单个微服务版本数据量
(KB) 2 支持 扩大配额后,将
增加了查询微服 务元数据的时 延。
单个实例数据量
(KB) 2 支持 扩大配额后,将
增加了微服务发 现的时延。
单个微服务契约数量
(个) 500 暂不支持 -
配置管理 单个配置数据量
(KB) 128 暂不支持 -
单个应用级配置数量
(个) 2,000 暂不支持 -
微服务治 理
应用级的治理策略 1,000 暂不支持 -
产品介绍 5 配额说明
6 计费说明
计费项
CSE根据您选择的CSE引擎实例规格计费。
表6-1 CSE 计费项
计费项 计费说明
CSE引擎实例 CSE根据您选择的CSE引擎实例规格计 费。
计费模式
CSE当前提供“包年/包月”和“按需计费”两种计费模式。
● “包年/包月”模式:根据购买的CSE引擎实例的规格和使用周期,一次性支付费 用。
● “按需计费”模式:根据购买的CSE引擎实例的规格,以实际使用时长(小时级)
付费。
变更计费模式。
● 按需计费变更为包年/包月。
按需计费变更为包年/包月,需要用户购买包年/包月配额,生成新的订单,用户支 付订单后,包年/包月计费模式立即生效。
● 包年/包月变更为按需计费。
包年/包月变更为按需计费,需要用户退订包年/包月订单,退订之后自动转为按需 计费模式。
续费
微服务引擎为包周期计费,已经购买的微服务引擎实例在到期前,可执行续费操作,
延长实例的有效期,您也可以设置到期自动续费。续费相关操作请参考续费管理。
产品介绍 6 计费说明
到期与欠费
CSE为包周期计费,在购买的CSE实例到期后,如果没有按时续费,云服务平台会提供 一定的保留期。保留期的具体时长和处理规则请参见保留期。若保留期结束时您仍未 续费,CSE实例中的数据将被删除且无法恢复。
产品介绍 6 计费说明
7 权限管理
如果您需要对CSE的资源,给企业中的员工设置不同的访问权限,以达到不同员工之间 的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简 称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功 能,可以帮助您安全的控制云资源的访问。
通过IAM,您可以在公有云帐号中给员工创建IAM用户,并使用策略来控制员工对云资 源的访问范围。例如,您希望您的员工中负责软件开发的人员拥有CSE的使用权限,但 是不希望其拥有删除等高危操作的权限。那么您可以使用IAM为开发人员创建用户,
通过授予仅能使用CSE,但是不允许删除的权限策略,控制其对CSE资源的使用范围。
如果公有云帐号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您 可以跳过本章节,不影响您使用CSE服务的其它功能。
IAM是公有云提供权限管理的基础服务,无需付费即可使用,您只需要为您帐号中的 资源进行付费。关于IAM的详细介绍,请参见《IAM产品介绍》。
CSE 权限
默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授 予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权 后,用户就可以基于策略对云服务进行操作。
CSE资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级 项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;
如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CSE时,需 要先切换至授权区域。
根据授权精细程度分为角色和策略。
● 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该 机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间 存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角 色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达 到企业对权限最小化的安全管控要求。
● 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资 源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业 对权限最小化的安全管控要求。
如表7-1所示,包括了CSE的所有系统权限。
产品介绍 7 权限管理
表7-1 CSE 系统权限说明
系统角色/策略名称 描述 类别 依赖关
系 CSE FullAccess 微服务引擎服务管理员权限。 系统策略 无 CSE ReadOnlyAccess 微服务引擎服务查看权限。 系统策略 无
如果表7-1所列权限不满足实际需求,可以在这个基础上创建微服务引擎自定义策略。
表7-2列出了微服务引擎常用操作与系统权限的授权关系,您可以参照该表选择合适的
系统权限。表7-2 常用操作与系统权限之间的关系
操作 CSE
ReadOnlyAccess CSE FullAccess
创建微服务引擎 x √
维护微服务引擎 x √
查询微服务引擎 √ √
删除微服务引擎 x √
创建微服务 x √
查询微服务 √ √
维护微服务 x √
删除微服务 x √
创建微服务配置 x √
查询微服务配置 √ √
编辑微服务配置 x √
删除微服务配置 x √
创建微服务治理策略 x √
查询微服务治理策略 √ √
编辑微服务治理策略 x √
产品介绍 7 权限管理
表7-3 微服务引擎细粒度权限依赖说明
权限名称 权限描述 权限依赖 应用场景
cse:engine:list 列出所有引 擎
无 查看引擎列表。
cse:engine:get 查看引擎信
息 cse:engine:list 查看引擎详情。
cse:engine:mod
ify 修改引擎 ● cse:engine:list
● cse:engine:get
修改引擎,修改的操作 包括:开启/关闭公网 访问操作、开启/管理 安全认证操作、引擎失 败任务重试操作。
cse:engine:upgr
ade 升级引擎 ● cse:engine:list
● cse:engine:get
升级引擎,升级的操作 包括:引擎版本升级操 作、引擎规格变更操 作。
cse:engine:dele
te 删除引擎 ● cse:engine:list
● cse:engine:get
删除引擎。
cse:engine:crea
te 创建引擎 ● cse:engine:get
● cse:engine:list
● ecs:cloudServerFlav ors:get
● vpc:vpcs:get
● vpc:vpcs:list
● vpc:subnets:get
● vpc:ports:get
● vpc:ports:create
创建引擎,创建的操作 包括:创建引擎操作,
引擎备份/恢复任务创 建操作。
cse:config:modi
fy 服务配置管
理修改 ● cse:engine:list
● cse:engine:get
● cse:config:get
全局配置功能与治理功 能涉及的配置修改。
cse:config:get 服务配置管
理查看 ● cse:engine:list
● cse:engine:get
查看服务的配置。
cse:governance:
modify 服务治理中
心修改 ● cse:engine:list
● cse:engine:get
● cse:config:get
● cse:config:modify
● cse:registry:get
● cse:registry:modify
● cse:governance:get
创建与修改服务治理。
产品介绍 7 权限管理
权限名称 权限描述 权限依赖 应用场景 cse:governance:
get 服务治理中
心查看 ● cse:engine:list
● cse:engine:get
● cse:config:get
● cse:registry:get
查看服务治理功能。
cse:registry:mo
dify 服务注册管
理修改 ● cse:engine:list
● cse:engine:get
● cse:registry:get
服务修改。
cse:registry:get 服务注册管
理查看 ● cse:engine:list
● cse:engine:get
服务目录查看。
说明
创建“计费模式”为“包年/包月”的微服务引擎专享版时:
● 创建订单不支付,创建该引擎的用户需拥有“BSS Operator”权限。
● 创建订单并支付,创建该引擎的用户需拥有“BSS Administrator”权限。
相关链接
●
IAM产品介绍。
●
创建用户并授权使用微服务引擎。
产品介绍 7 权限管理
8 基本概念
微服务
微服务是业务概念,即提供某种服务的某个进程。
每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API (最常用的是 HTTP)。
多个微服务组成应用程序。
实例
一个微服务的最小运行和部署单元,通常对应一个应用进程。同一个微服务通过部署 在多个容器或虚机,可以实现多个实例同时运行。
版本
微服务场景中版本用来标记微服务的迭代记录,方便对微服务的不同迭代进行管理。
契约
微服务场景中的契约是指服务契约,它是基于OpenAPI规范的微服务接口约束规范,
是服务端和消费端对于接口的定义。
说明
● Java Chassis默认使用契约功能。
● Spring Cloud默认不使用契约功能,如果Spring Cloud需要使用契约功能,需要引入以下依 赖:<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-swagger</artifactId>
</dependency>
配置
微服务场景中的配置是指对程序代码中某些变量的取值控制。比如,动态配置就是通 过在微服务运行过程中对某些变量的取值进行动态变更。
产品介绍 8 基本概念
应用
完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务 能够相互发现和调用。
环境
服务中心建立的一个逻辑概念,比如development、production等。不同环境里面的 微服务实例逻辑隔离、无法相互发现和调用。
治理策略
微服务治理中的一个概念,指当前治理使用的某种方法。每一种治理策略都可以绑定 一个业务场景,同一种策略不可以绑定多种业务场景。不同的治理策略可以绑定同一 个业务场景。
业务场景
用来描述治理中的治理策略作用生效的条件,一个业务场景可以绑定多个不同的治理 策略。
产品介绍 8 基本概念
9 与其他服务的关系
云原生架构模式下,完成业务功能需要很多服务相互配合:
● CSE一般和数据库、缓存和消息中间件同时使用,完成业务功能的开发。
● AOM、APM、LTS等工具,则为业务提供运维能力,帮助检测业务故障、分析故 障原因。
以Spring Cloud为例,典型的云原生架构和技术选型如下:
云原生架构和DevOps通常是密不可分的,配合使用ServiceStage,可以实现云原生环 境的管理、部署流水线,简化微服务应用部署到容器CCE的流程。
产品介绍 9 与其他服务的关系