云原生实战: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依赖
替换为:
3.重新编译文件,输出jar包。
4.重复以上步骤,依次将acc和storage两个应用重新打包。
部署应用到CSP
以部署order应用为例,介绍在CSP上部署一个应用的流程。
1.新建集群
登录CSP控制台,选择【集群管理】,创建集群,导入容器或虚机资源。
2.创建命名空间及应用组
进入【命名空间】和【应用组】页面,分别创建命名空间order-demo及应用组order-demo。
3.部署应用
1)选择【应用管理】,进入【应用】界面,点击【创建】,新建一个名为order的应用。
2)点击【确认】后,返回应用列表页面,可以看到应用order创建成功。
3)点击应用名称order,进入【应用详情】,选择【版本管理】页面,新建版本。
4)上传完毕jar包,点击确认,等待镜像制作完成。
5)返回应用列表页,点击order应用的操作列【部署】按钮,部署应用。
6)点击【提交】,完成部署。
7)重复本章节1-6步骤,依次将acc和storage两个应用部署完成。
4.验证部署
浏览器输入:xxxxx:port/order/create?userId=1&count=3&money=20&productId=1,回车,出现以下页面,代表部署成功。
结果验证
●验证服务限流
1.场景介绍
用户恶意高频调用订单查询接口,给业务系统带来性能压力。使用限流规则,将接口每秒调用次数限制在一定范围,可有效防止此类事件发生。
2.限流规则配置
点击菜单栏【微服务治理】,选择【服务】,进入服务列表,选择order应用,进入【规则管理】进行流控规则配置。
3.效果验证
●验证调用链跟踪
1.场景介绍
微服务场景下调用链错综复杂,发生异常时排查故障困难。借助调用链查询,可以快速定位故障,从而进行异常修复。
2.调用链查询
点击左边菜单栏【微服务监控】,选择【链路追踪】,进入调用链查询页面。
选择应用order,选择时间范围,点击【搜索】,选择要查询的接口的调用链。
●验证弹性伸缩
1.场景介绍
当业务需求增长时,比如大促等活动,会有大量用户访问应用,对系统的负载带来考验。此时,使用CSP自动弹性伸缩能力,根据提前设置的规则进行应用的扩容或缩容,可以很好的解决这一问题。
2.弹性伸缩规则设置
1)点击菜单栏【弹性伸缩规则】,进入规则列表页,点击【创建】,新增弹性伸缩规则。
2)点击【确认】,返回规则列表页,启用刚刚创建的规则。
3)结果验证。因为扩缩容指标是根据冷却时间计算的平均值,所以需要等待冷却时间后查看扩缩容结果,可以看到运行中实例数和实例总数均已变为3,扩容成功。
总结
微服务平台CSP面对企业级大规模应用,提供了高可用、低运维的生产环境,并且结合容器能力,实现了云原生和微服务的完美结合,为企业实现微服务转型、云原生应用落地提供了专业的解决方案和强大的能力。后续微服务平台将结合服务网格,给客户带来更多的实践案例,帮助企业更好更快地在微服务平台开展业务。
文章来源:中国电子云DevOps与中间件团队