vlambda博客
学习文章列表

云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践




















导读




















微服务平台(CECloud Service Platform,CSP)是中国电子云研发的应用托管和微服务治理一体化平台,具备应用生命周期管理、应用监控、服务治理等全栈开发与运维能力。同时CSP兼容Spring Cloud、Dubbo、Istio等微服务框架,用户只需要少量改造,就能以最小的成本把开源框架应用迁移到微服务平台CSP。

本文将结合实际订单系统场景,演示如何快速将原生Spring Cloud应用接入到CSP平台,体验云原生平台的一体化能力。


背景介绍


Spring Cloud是目前最流行的微服务架构的框架之一,是一个一站式的开放分布式系统框架,为开发者提供了一系列的构建分布式系统的工具集。目前已经在各大互联网公司得到广泛应用,是实现微服务架构的优选工具,也是程序员进阶和架构师必备的技术。


Spring Cloud得到广泛应用的同时,也暴漏了很多不足,尤其在面对日趋复杂的企业级应用时,无法做到轻松应对大规模高可用的生产级部署及运维环境。


例如:


无法支持自动化部署,缺少对应用的生命周期管理,需要人工进行应用的弹性伸缩。


注册中心需要自行搭建,维护困难,可靠性差。


配置中心要基于Spring Cloud Config进行额外的开发和封装,配置能力弱,维护困难。


缺少性能监控,在复杂业务场景下无法监控调用链。


因此我们需要一个更稳定的商业化产品来支撑企业级应用,而这正是微服务平台CSP的价值所在:


1.支持应用一键部署,具备应用全生命周期管理能力


1)支持应用以jar包、war包及镜像方式一键部署,用户不需要关注应用部署细节。


2)提供应用的全生命周期管理,用户不需关注繁琐的应用启停、升级、回滚等细节。


3)根据应用负载指标进行自动弹性扩缩容,有效减轻运维压力。


2.提供高可用的服务注册中心


提供多副本高可靠的服务注册中心,具备强大的故障恢复能力和离群实例摘除能力。


3.高性能的配置管理能力


提供可靠高效的统一配置中心,不需要用户额外搭建、封装及运维。


4.具备立体化监控能力


具备分布式跟踪的应用性能监控能力,支持非侵入式埋点,调用链跟踪,应用拓扑展示,可灵活配置应用的多指标诊断和报警,满足多维度、全链路地监控及运维需求。


接下来,我们结合具体案例看一下如何将原生Spring Cloud应用接入微服务平台CSP。


环境准备


开通中国电子云微服务平台CSP。


下载Spring Cloud订单系统源码

(原生Spring Cloud应用)

https://github.com/sailer132/demo.git


该订单系统由以下几部分组成:



上云改造


以order应用为例,进行pom依赖替换,替换完毕,重新打包即可。


前提条件


安装Maven。


操作步骤:


1.下载订单系统源码到本地。


2.打开工程的pom文件,修改依赖,将下面的pom依赖


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


替换为:


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


3.重新编译文件,输出jar包。


4.重复以上步骤,依次将acc和storage两个应用重新打包。


部署应用到CSP


以部署order应用为例,介绍在CSP上部署一个应用的流程。


1.新建集群


登录CSP控制台,选择【集群管理】,创建集群,导入容器或虚机资源。


2.创建命名空间及应用组


进入【命名空间】和【应用组】页面,分别创建命名空间order-demo及应用组order-demo。


3.部署应用


1)选择【应用管理】,进入【应用】界面,点击【创建】,新建一个名为order的应用。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


2)点击【确认】后,返回应用列表页面,可以看到应用order创建成功。


3)点击应用名称order,进入【应用详情】,选择【版本管理】页面,新建版本。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


4)上传完毕jar包,点击确认,等待镜像制作完成。


5)返回应用列表页,点击order应用的操作列【部署】按钮,部署应用。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


6)点击【提交】,完成部署。


7)重复本章节1-6步骤,依次将acc和storage两个应用部署完成。


4.验证部署


浏览器输入:xxxxx:port/order/create?userId=1&count=3&money=20&productId=1,回车,出现以下页面,代表部署成功。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


结果验证


●验证服务限流


1.场景介绍


用户恶意高频调用订单查询接口,给业务系统带来性能压力。使用限流规则,将接口每秒调用次数限制在一定范围,可有效防止此类事件发生。


2.限流规则配置


点击菜单栏【微服务治理】,选择【服务】,进入服务列表,选择order应用,进入【规则管理】进行流控规则配置。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


3.效果验证


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


●验证调用链跟踪


1.场景介绍


微服务场景下调用链错综复杂,发生异常时排查故障困难。借助调用链查询,可以快速定位故障,从而进行异常修复。


2.调用链查询


点击左边菜单栏【微服务监控】,选择【链路追踪】,进入调用链查询页面。


选择应用order,选择时间范围,点击【搜索】,选择要查询的接口的调用链。


云原生实战:Spring Cloud应用在微服务平台CSP中的落地实践


●验证弹性伸缩


1.场景介绍


当业务需求增长时,比如大促等活动,会有大量用户访问应用,对系统的负载带来考验。此时,使用CSP自动弹性伸缩能力,根据提前设置的规则进行应用的扩容或缩容,可以很好的解决这一问题。


2.弹性伸缩规则设置


1)点击菜单栏【弹性伸缩规则】,进入规则列表页,点击【创建】,新增弹性伸缩规则。



2)点击【确认】,返回规则列表页,启用刚刚创建的规则。


3)结果验证。因为扩缩容指标是根据冷却时间计算的平均值,所以需要等待冷却时间后查看扩缩容结果,可以看到运行中实例数和实例总数均已变为3,扩容成功。



总结


微服务平台CSP面对企业级大规模应用,提供了高可用、低运维的生产环境,并且结合容器能力,实现了云原生和微服务的完美结合,为企业实现微服务转型、云原生应用落地提供了专业的解决方案和强大的能力。后续微服务平台将结合服务网格,给客户带来更多的实践案例,帮助企业更好更快地在微服务平台开展业务。



文章来源:中国电子云DevOps与中间件团队