华为云PaaS平台以华为FusionStage2.0项目为基础,基于Docker、Kubernetes等主流开源容器项目,提供了开 发、测试、部署、运维的全流程自动化流水线能力,提供先进的微服务框架和丰富的服务组件,致力于让开发者专 注于代码开发本身,提升开发效率,支持丰富的应用生态,推动企业更好的云化转型。
什么是PaaS?
PaaS是云计算的三种模式之一,三种模式如下:
IaaS: Infrastructure-as-a-Service(基础设施即服务),也叫Hardware-as-a-Service,将计算机硬件资源打包对外提供服务,比如云主机、云存储等。
PaaS: Platform-as-a-Service(平台即服务),也叫中间件服务,比如:MySQL数据库服务、ElasticSearch搜索服务等。 SaaS: Software-as-a-Service(软件即服务) ,提供具体应用软件服务,比如:CRM系统,电商平台等。
什么是FusionStage2.0?
华为云称为FusionCloud,它包括三部分:FusionStage(PaaS服务),FusionInsight(华为大数据平台)、
FusionSphere(IaaS服务),FusionStage作为华为PaaS平台的项目其版本已经升级到2.0。
什么是Docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。微服务由于数量众多,其推荐的部署方式业界流行的做法就是Docker技术,使用Docker可以快速批量部署微服务,提高运维效率。
什么是Kubernetes?
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,使用Kubernetes的目标是让Docker容 器化部署更加简单、智能和高效。
华为云PaaS平台支持哪些微服务开发框架?
华为云PaaS平台不光提供云容器部署、微服务治理的功能,而且提供微服务开发、测试、部署、运维一站式解决方案,支持Dubbo、SpringCloud等技术开发的微服务接入PaaS平台,也支持老系统的接入,并且对于Apache ServiceComb开的微服务应用更是零修改代码接入。
华为云PaaS平台提供微服务引擎CSE框架,此框架在ServiceComb框架的基础上另外提供更多的商业功能支持。本 教程会讲解SpringCloud项目接入CSE的方法。
微服务引擎CSE(Cloud Service Engine) 是华为云PaaS家族提供的企业级微服务应用管理平台,包含微服务SDK(用于开发)、服务注册、配置和治理中心,帮助用户实现微服务应用的快速构建、实时监控和高可用保障。兼容主流开源生态,不绑定特定开发框架和平台。
CSE具备开发模式门槛低、通用性强的改造优势,并支持契约优先,服务接口统一规范管理,微服务之间的调用非常方便,根据业务的现实痛点将其后端拆分为多个微服务,并实施集群部署,这一切全部基于CSE微服务框架开发 并统一管理。
产品功能如下:
微服务开发框架
打包了微服务注册、发现、通信和治理等基础能力,开箱即用。微服务治理中心
提供微服务负载均衡、限流、降级、熔断、容错等治理能力。
微服务安全管控
提供认证鉴权、黑白名单等能力,保障微服务访问安全。微服务灰度发布
支持使用接口任意参数(例如用户群组、用户类别、用户所属区域等等)定义微服务灰度发布规则。
分布式事务管理
提供最终一致性(TCC)和强一致性(WSAT)事务管理框架。 非侵入式微服务接入
提供Service Mesh服务,可实现非侵入式接入已有微服务。
统一配置中心
支持微服务配置项的发布、变更和通知。微服务仪表盘
提供微服务实例和接口级吞吐量、时延和成功率的实时监控仪表盘。
ServiceComb与CSE有什么不同?
1、 CSE是ServiceComb的商业版本,CSE的大部分组件来自于开源的ServiceComb,ServiceComb是开源的, CSE没有开源但可以免费使用。
2、 使用ServiceComb开发的微服务不依赖华为云,使用CSE开发的微服务则依赖华为云。为什么要用微服务引擎CSE?
在云上使用CSE,用户无需关心自己业务之外的微服务基础设施,保证系统整体稳定性。同时微服务部署,管理、治理全部开箱即用,还可以获得开发时期的指导和帮助,以及后续技术发展的最新信息。
3.3.1准备华为云环境
参考“快速体验”章节的“华为云环境”章节内容,注册云账号、获取AK/SK密钥。
3.3.2服务提供方
本案例使用ServiceComb回顾章节的helloworld案例进行改造,ServiceComb接入CSE只需要修改依赖及部分配置,无需修改代码。
3.3.2.1引入依赖
接入CSE平台需要在服务提供方及消费方引入 cse-solution-service-engine依赖,为了控制依赖版本在父工程进行依赖管理如下:
com.huawei.paas.cse
cse‐dependency
2.3.20
pom
import
在服务提供方添加依赖:
com.huawei.paas.cse
cse‐solution‐service‐engine
服务提供方完整的pom.xml 如下:
4.0.0
com.itheima
test‐servicecomb
1.0‐SNAPSHOT
helloworld‐provider
com.huawei.paas.cse
cse‐solution‐service‐engine
org.slf4j
slf4j‐log4j12
com.itheima
helloworld‐api
1.0‐SNAPSHOT
org.springframework.boot
spring‐boot‐starter
org.apache.servicecomb
spring‐boot‐starter‐provider
org.hibernate
hibernate‐validator
3.3.2.2服务描述配置
注册中心更改为公有云地址,并且配置AK/SK。
APPLICATION_ID: helloworld service_description:
name: helloworld‐provider version: 1.0.0
cse:
service:
registry:
address: https://cse.cn‐north‐1.myhuaweicloud.com instance:
watch: false
credentials:
accessKey: CMPEUCGEDINQKGWBGHVB
secretKey: HEYSZL5zTw6HLfPEOxzGnWpbzLwHWAylUc99vMtd akskCustomCipher: default
rest:
address: 0.0.0.0:8080
3.3.2.3启动服务
启动服务后,登录云平台:微服务引擎CSE–>微服务管理—>服务目录
3.3.2.4测试
在浏览器输入http://localhost:8080/hello?name=%E9%BB%91%E9%A9%AC 输出如下:
{"name":"黑马","age":0,"address":"北京","birthday":null}
3.3.3服务消费方
3.3.3.1引入依赖
同提供提供方。
3.3.3.2服务描述配置
同提供提供方。
3.3.3.3启动服务
启动消费者服务
3.3.3.4测试
客户端请求服务消费方,服务消费方请求服务提供方。
浏览器请求:http://localhost:8081/request?name=黑马
http://localhost:8081/request:是服务消费方的地址输出:
{"name":"黑马","age":0,"address":"北京","birthday":null}
本章节重点讲解了ServiceComb项目接入CSE的方法,全新的CSE项目开发可以按照ServiceComb开发流程进行, 并且引用CSE依赖、配置公有云注册中心地址等,详细的流程如下:
1、注册云账号
2、引入依赖
添加依赖管理如下:
com.huawei.paas.cse
cse‐dependency
2.3.20
pom
import
添加依赖如下:
com.huawei.paas.cse
cse‐solution‐service‐engine
3、接口定义
同serviceComb开发。
4、服务描述配置
配置公有云注册中心地址。