数字化转型的不断加速
企业应用和服务不断迭代更新
越来越多的金融机构选择“微服务架构”
构建数字化底座
但随着“微服务架构”的部署越来越广泛
一些不合理的用法
使得系统开始变得“臃肿”
恒生采取了一系列轻量化措施
协助客户进行微服务“瘦身”行动
![](http://n.sinaimg.cn/spider20241127/256/w128h128/20241127/a961-ac89a8d11b1e9a9c7e91ca8fd06e4606.png)
![](http://n.sinaimg.cn/spider20241127/256/w128h128/20241127/a961-ac89a8d11b1e9a9c7e91ca8fd06e4606.png)
什么是微服务架构?
微服务架构是一种将大型的应用程序分解为多个小型、独立自治的服务单元的软件架构模式。
每个服务单元完成特定的业务功能,可以独立开发、部署和运行;服务单元之间使用轻量级通信机制交互(如HTTP、gRPC、消息队列等)。
与传统的单体应用架构相比,微服务架构将应用程序分解为多个小型服务,每个服务都有独立的代码库和团队,这使得代码更加模块化,更易于维护和扩展。此外,微服务架构允许使用不同的编程语言和技术栈,每个服务可以根据需要选择最适合的。
值得关注的是,微服务架构让每个服务都可以独立部署和运维,但如果服务切分不合理,部署架构设计不当,服务之间的依赖关系变得更加复杂,会给运维带来不小挑战。
针对客户痛点和需求,近几年,恒生LIGHT技术平台和产品部一道积极开展“瘦身”行动,通过轻量化措施让产品更易用、更好用。
以财富管理IT轻量级应用为例
恒生We6财富管理IT系统一直致力于为各类财富管理机构、资产管理机构打造财富终端、营销展业、投顾服务、资产配置、理财销售、登记过户等数字化能力和服务。
新一代的财富管理IT系统背后使用了微服务架构,但在客户实际应用中,由于需求迭代速度快,每当跨版本升级时,微服务节点多,整体部署升级耗时长,硬件成本、维护成本也相对增加。
针对这些问题,恒生的“瘦身”实践如下:
1
缩小发布包体积
微服务系统中,每个服务都具备独立运行的能力。传统做法中,独立服务的部署包会包含所需依赖全量包,故随着服务单元增多,发布包体积增大。
基于不同单元存在共同依赖包,我们采用发布物栈的方式提供交付物,使得每个系统每次交付均为单个安装包,且利用SEE平台本地仓库,将发布包体积缩小了70%左右。
![](http://n.sinaimg.cn/spider20241127/454/w900h354/20241127/cf9d-fdebc6229d37d512e8543dc83d1c075d.jpg)
2
增量升级
我们将大的JAR包拆成了以模块为维度的多个小JAR包,发包时,先判断相对上一个版本哪些模块有改动。
对于没有改动的旧模块,自动排除该JAR包,这样升级后就可以继续使用上一个版本的模块JAR包。之后只需要根据升级清单,来执行对应模块的回归测试用例即可。
![](http://n.sinaimg.cn/spider20241127/598/w900h498/20241127/13c3-4bc0ca9a0e3318a2813837286596cd17.jpg)
3
服务合并
例如理财5交易和账户合并,BFF和运营服务合并,用IGW服务代替了原先的adapter、BUS server、WSS三个组件,以此满足金融机构架构“瘦身”的需求。
![](http://n.sinaimg.cn/spider20241127/789/w900h689/20241127/67f8-c1a7aaff5a02959873eb86c4ed4f7767.jpg)
4
服务简配
针对内存资源占用问题,我们在服务合并的基础上,实测了单节点性能最佳和满足稳定运行两种情况下每个服务最少需要的内存。
根据测试结果,每个服务都预置几档内存配置,可在安装界面勾选(最低配置、推荐配置、高性能配置),最低配置下大多数服务的内存只有1-2G左右。
![](http://n.sinaimg.cn/spider20241127/737/w900h637/20241127/d26e-2f3e685e9a5bd2bd585e0675b0f31d87.jpg)
5
可分可合部署
针对开发实施需要在本地电脑上启动完整系统的情况,以及部分客户仍希望以单体应用的模式部署以便达到服务器资源最节省的诉求,恒生开发微服务合并部署工具,将发布物栈包内的所有服务整合为单个进程部署和运行。
![](http://n.sinaimg.cn/spider20241127/36/w900h736/20241127/209f-6cfb4ae9525f5057d87402e27320ab29.jpg)
这些短期实践是恒生团队在应对微服务架构挑战过程中的重要阶段性成果,从提升系统交付效率、优化内存资源利用、简化回归测试流程、降低运维难度等层面,为理财产品相关应用提供了优质的轻量化解决方案。
轻量化微服务的长期思考
除了短期微服务场景,恒生也开启了一系列的长期优化“瘦身”运动:
1
组件解耦
对新一代核心系统里面应用之间的耦合点,加强领域内的封装和抽象,减少不同领域间的直间依赖,引入中间件,通过标准化和统一的技术组件,进行架构重新设计。
在保证原有功能兼容的前提下,完成应用之间解耦,支持应用的无耦合部署,提升系统的可维护性、对外的开发性,支持客户可根据实际诉求选择周边应用和中间件。
![](http://n.sinaimg.cn/spider20241127/680/w900h580/20241127/f07f-cc7792d472bdb9ee30a99d3f89d008fb.jpg)
2
可拆可合
原有模式下,恒生微服务拆分比较细,服务节点多,对客户的IT运维能力要求较高。
因此我们进行了优化,在支持原有拆分部署模式下,提供进程合并部署、war包合并部署,既不影响原有微服务标识,又能并行启动运行。
服务在部署时,可按不同业务规模、基础设施差异进行按需组合、拆分,合理使用硬件资源,并降低IT运维难度。
![](http://n.sinaimg.cn/spider20241127/776/w900h676/20241127/eee8-996b0ba07f8cfccbb1bf1e14f3ea8d5a.jpg)
3
业务/平台独立升级
组件解耦、服务可拆可合解决了一部分的服务节点多、中间件依赖多的问题,但未解决业务/平台独立维护、独立升级的问题。为彻底攻克微服务架构下资源占用高、服务节点多、运维复杂的难点,我们开启以下优化:
- 组件下沉:不同应用服务的组件下沉为各应用共享的公共资源,同时具备应用可独占的能力。
- 独立升级:应用、组件之间松耦合,在无功能依赖的前提下,均可实现独立升级,升级后互不影响。
![](http://n.sinaimg.cn/spider20241127/87/w900h787/20241127/1105-55f009d7e550c0fd72146a90f1179ca2.jpg)
除上述行动外,恒生还根据不同业务规模场景,制定旗舰版、自定义轻量版、极致轻量版的不同配置规格,以期通过持续的轻量化革新、应用的有效“瘦身”,为金融机构数字化转型提供更快、更轻盈、更便捷的技术体验。
*本文原载于《恒生世界》2024年第5期
![](http://n.sinaimg.cn/finance/cece9e13/20240627/655959900_20240627.png)
VIP课程推荐
APP专享直播
热门推荐
收起![新浪财经公众号 新浪财经公众号](http://n.sinaimg.cn/finance/72219a70/20180103/_thumb_23666.png)
24小时滚动播报最新的财经资讯和视频,更多粉丝福利扫描二维码关注(sinafinance)