金融界首页

首页 » 常识 » 常识 » 金融科技提升内力篇之五做交易系统的架
TUhjnbcbe - 2021/8/4 8:16:00
白癜风应该怎么样治疗 http://www.baidianfeng51.cn/m/
一、前言

在我们之前的文章中,我们介绍了独立研发的CIMS华夏投资管理系统,也介绍了一下我们修炼内功的心路历程。

CIMS——公募行业唯一自主研发的交易系统

当然,系统上线后,离不开为支持业务二进行的不断调整。这次,我们将从8年来CIMS的系统架构演进为视角,讲述一个核心系统如何紧贴业务,进行定位、扩张、转型的心路历程,也会为各位带来我们对于基金行业核心系统架构设计的思考。

二、0.X阶段-起步、探索

起步阶段的CIMS系统与其他大部分业务系统一样,首先进行的是业务模式、发展方向的探索。此时系统架构的目标是快速实现、快速交付,伴随着这个目标的实现,一个单体应用诞生了。

接下来的一年左右的时间里,不断的有功能被添加这个单体应用中:账户管理、指令、委托、头寸、合规、各种各样的配置及各种各样的查询。在功能不断的累积后,系统迎来了首次上线。

而此时CIMS的架构,是这样的:

三、1.X阶段-稳定、扩张

“系统终于上线了,可以稍微放松一下了。”

By一个还很年轻的工程师

系统上线,本应该是一件高兴的事情。但是,由于系统包含内容的不断增多,业务能力的不断丰富,原有的系统架构已经不能满足系统高效运行的要求了,由此各种各样的问题也随之而来,整个开发组都比之前更加忙碌,查找问题、解决问题、测试、上线,不断循环。经过某次例会上,小组得出这样的结论——“系统该重构了”。

重构说起来简单,但系统已经上线了,该在如何保证线上稳定的前提下,完成系统重构呢?答案只有一个:测试。但在系统整体要进行重构的时候,单元测试已经没有太大的意义了。因此,我们研发了适应CIMS系统现状的验收测试框架,在此上不断地补充主体流程、分支流程测试,为系统整体梳理及架构重构打下了基础。

重构的前提已经准备完毕,为了快速定位问题、解决问题,我们改变了每个人从前到后全部开发的模式,选择了进行模块化改造。从业务上划分职责、拆分模块,每个模块专人负责、保证质量、排查问题。让每个人深耕自己负责的模块,保证模块使用最适合的设计方式;同时项目增加了跨模块的代码审批和集中的代码走查,确保每个人都对系统有全盘的了解。

此时,经过重构过的CIMS系统的架构图大致如下:

四、.X阶段-转型、发展

“业务转型,在调整前先梳理一下吧…………唉?这两个模块怎么耦合这么严重!”

By一个不再年轻的工程师

年6月,一个剧烈的震荡打破了往日的宁静,证监会要求券商暂停场外配资新端口的接入,导致私募业务难以进一步发展,于是,震天的战鼓再一次响起,CIMS面临着一次业务转型,随之而来的,便是系统架构的再次变动。

此时,组内决定先行进行架构上的准备,之后再进行业务上的调整。通过一轮现状梳理,发现了很多隐藏的问题:1、模块间依赖混乱,存在双向依赖;、模块接口由使用方定义,相似接口重复开发;3、模块间隔离不彻底,越权使用其他模块内部接口。

为解决上述问题,系统引入了服务化的架构设计模式,将单体应用拆分成了多个服务,从而实现了模块间的物理隔离。同时确定了各服务的上下游关系,确保服务间的单项依赖;明确了各服务的接口定义职责,由提供方发布统一接口,对功能进行标准化改造;新功能模块采用独立服务开发,不受已有条框限制,采用最适的设计。

除解决了原有的问题外,也获得了一些意料外的收获:

1、持续集成时间缩短,开发更频繁的提交代码,很多代码问题更早的被发现、解决;、稳定的服务与经常变更的服务隔离,不会错误的修改到稳定的代码,减少上线前代码比对的时间;3、技术升级可以在一些小服务上进行,稳定后再进行推广,提高了技术升级的频率。

现在,CIMS系统的架构图大致如下:

五、3.0阶段-提升、展望

“这个职责,应该是这个服务的…………不对,还是需要再拆一下…………”

By一个反复纠结的工程师

系统功能不断的增加,业务不断地拓展,CIMS系统在不断追赶业务的脚步,虽然现在我们还能赶得上,但是可以感觉到速度已经越来越慢了。这是个明显的信号:是时候进行调整了。但这次调整不同于之前,不是为了解决眼前的问题,而是为了即将到来的业务高速发展、为了即将到来的产品扩张,提前进行架构上的准备。

这次的调整,没有标准答案,甚至也没有明确的方向。因此,我们选择了从源头梳理的方式,先进行了业务架构的梳理:系统的基本业务是什么?投资;投资的基本业务是什么?交易;交易包括什么?头寸、风控、审查、监控……交易依赖什么?账户、证券……交易的核心复杂度是什么?品种拓展、规则拓展……就这样不断的提问、梳理、拆分、合并,最终完善了CIMS的业务架构设计。

有了业务架构设计,应用架构就相对简单了。结合现有成熟的应用架构模式及业务模块面临的问题,我们确定了最终的应用架构方案:以微服务架构为基础,提高系统整体可用性;交易核心采用微内核架构,提高业务品种的可拓展性;业务层借鉴中台型架构,封装基础服务,形成特色业务;每个服务使用其最适合的技术,以最清晰的设计完成业务功能。

将来,CIMS系统的架构图大致如下:

六、总结

CIMS系统现在还不算成熟,我们希望通过本文分享一些CIMS系统这些年的架构演进与反思,为各位读者提供一些思路,也希望每个系统都能健康发展,更好的支持业务发展。

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: 金融科技提升内力篇之五做交易系统的架