近些年以来,监管层对于金融科技的包容太对,各家券商通过互联网展业的力度不断扩大,因未有历史包袱,券商的系统总体架构均为在目前主流技术基础上进行重新选型,包括各端架构、CI/CD及团队协作工具。后台微服务、移动端组件化、DevOps等在证券金融领域的实践,希望可以给到大家一些启发,更期待能够一起探讨,一起碰撞思维的火花。qq欢迎交流
本文将分为以下几个部分:
系统特性
技术架构
部署架构
金融安全
核心系统选型
一、首先是系统特性
跨境互联网券商需要同时兼具金融、互联网和跨境属性,而这每个属性对系统都会有着不一样的要求。
金融属性:因为跨境券商特殊的的金融属性决定了系统对合规、安全性及稳定性有更高的标准要求;
互联网属性:运用互联网的思维,则是想要让系统的拓展性更强,迭代效率高,用以跟上不断变化的需求;
跨境属性:搭建系统需要提供给多个地区(大陆,香港)的客户访问,要求系统架构选型及部署时需要兼顾版本国际化及跨境访问的问题。
因此,在符合监管规定的前提下,系统需着重围绕安全性、易扩展性、稳定性、国际化这四个特性来进行设计,考量以下细节:
安全性:终端安全、服务安全、通讯安全、存储安全、数据安全等;
易扩展:服务分层,横向扩容支持,前后端分离;
通讯稳定(HTTPDNS,专线),服务稳定(多点部署,监控告警,网关支持熔断、限流),数据稳定(热备);
国际化:多个券商、多种皮肤、多门语言支持和跨境加速。
二、技术架构
没有统一代码,可以根据需求比较开放、客观的在目前主流技术上进行选型,充分考虑并平衡各技术方案的在当下稳定性、生态以及未来发展性。
基于Spring Cloud进行后台架构设计,服务界限及层次均有一个较好的划分,只允许上层服务依赖下层,不允许出现平级调用或下层服务调用上层服务的情况。万一出现,则是组内讨论,看是否有必要做服务下沉,调整服务层级。
两个网关:为提升推送速度及节约跨境带宽成本,行情服务设计成无状态服务,不依赖统一网关,可在全球多站点部署。
移动端组件化架构:用两种语言进行组件化设计,分别是Swift及Kotlin。除了三方库无法替代使用objc以及java外,业内组件开发均用新语言编写,Crash明显减少,代码更加简洁,开发效率变高。
web前后端分离架构:在Web端采用的是前后端分离架构,并选择Vue做为主体框架,由于其学习曲线相对较平滑,国内生态也不错,可同时支持移动端H5、PC端开发,所以可以较好的进行前端技术栈的统一。
三、部署架构
部署架构设计时需要考虑以下要素:
客户跨境访问稳定性;
业务扩展性(能对接境内外地区券商,如境内A股、东南亚)
成本;
符合交易所要求。
交易所要:期望自行对接交易所行情或交易的公司需注意,因港交所线路不断升级(如从SDNet/1升级到SDNet/2),会对托管机房本身提出更高要求,有些机房就不一定能满足这些硬性条件了,因此需提前了解清楚交易所的要求,找好对应机房。若不是自行对接,行情柜台供应商选择的机房一般情况下都会符合要求。
业务扩展性:根据规划,核心服务将来可以扩展提供A股、东南亚股市交易功能,且业务重心可能会更偏向香港和境外。
跨境访问:因国际出口带宽限制,若通过公网进行跨境访问,偶尔还是会出现网络不可达情况,在没使用专线的情况下确实碰到过网络问题,使用专线服务后情况有很大改观。
成本:大型券商的架构中,大部分网络访问是在专线内进行,但对于刚起步的券商,专线成本需考量),我们仅在大陆跨境访问、柜台连接交易所使用专线,其余部分专线替换为VPN访问,不牺牲安全性的前提下,牺牲部分稳定性,迄今为止网络基本上未出现过问题。
另外专线还是尽量做到多方询价,可以有三种方式搭建专线(直接从网络运营商拉设专线比较实惠):
1、向网络运营商询价并拉设专线;
2、向阿里云有合作的供应商询价并拉设专线;
3、找系统供应商负责对应的专线拉设,如柜台到阿里云的专线可交由柜台供应商负责。
四、金融安全
安全的设计是贯穿在整个系统中,从架构设计、代码开发到运维,从用户输入到最终数据落地的整个链条均应考虑安全问题。主要分为以下几个方面:全站HTTPS,客户端尽量对SSL证书进行严格校验,并非申请一个HTTPS证书就万事大吉,为避免中间人攻击导致用户数据泄漏;敏感数据加密,主要采用RSA非对称加密方式在HTTPS之内对部分敏感的数据再进行一层加密,以防范由于HTTPS证书颁发机构出问题,随意签发证书导致的安全问题;API签名防篡改,所有面向终端的接口均要求签名,防止接口数据被恶意篡改。
五、核心系统选型
在证券系统中,交易和行情属核心的业务系统,选择自研还是外部供应商?市场上供应商情况又如何?
目前市面上的外部供应商可定制化能力普遍较弱,定制化需求排期相对较慢,拥有自己柜台,相当于有了技术壁垒,因此很多公司有自研柜台的想法。但目前实际自研柜台的券商非常之少(宣称的不算)主要是两个原因:
业务能力:港股品种众多(除常见的股票、基金外还有窝轮、牛熊证、股指期货、股票挂钩票据等丰富的衍生品),交易规则多样(手数、价格步长不是确定值),支持融资融券业务。考虑的异常(业务异常,如孖展风控预警、牛熊回收、临时休市等)非常之多,对团队的港股业务经验有着较高要求;
成本及周期:业务的复杂度与研发成本、周期正相关,并且考虑到交易所交易权的申请、专线铺设、柜台的MR测试、生产试运行等流程,若可达到正式客户使用,少则1年(有柜台研发经验),上不封顶,小券商基本不会选择这条路。
一般因业务时间限制,都最终选择对外部供应商进行选型对比,目前市面上头部选手为ayers、iasia、恒生三家,大概做个总结:
Ayers:简单、易上手,统一版本,定制开发较难,但价格在三家中较低,适合小客户起步阶段;
iAsia:大客户较多,系统相对稳定,API相对丰富(英文文档),价格相对较高,适合对系统高可用、高并发有要求和定制化开发要求较多的券商;
恒生:最符合中资券商习惯,服务比前面两家好,对港股业务理解暂时没赶上前面两家本土供应商,不过个人认为成长性较好。PS:恒生收购Ayers会有什么影响需自行判断。
另外还有一家新兴公司,令克软件:目前制作的系统,操作页面简洁,有成品同一版本,也可接受半定制化版本,工期短,且开发系统稳定,目前合作有一百多家客户,好评率达到95以上。目前开拓香港及东南亚市场,2.0版本符合中资和港资券商习惯,服务优质,对港股业务理解较为身后。作为一家新兴的企业,成长性非常高,并且在研发的思维上并未产生固化,可适应时代的变化来进行革新。另外一点就是它的价格是最低的,因此整体性价比是要高出很多同业。
行情资讯供应商:目前就是港交所的行情资讯供应商,可支持直接解析港交所数据源,提供实时和延时服务,数据的稳定性和数据质量都在相对较高的水准。
结束语
从0到1建设起一个互联网券商系统大约需1年时间,20人左右团队,800万左右成本,不算是一个小工程。搭建港美股交易平台和建设券商交易系统及各种券商解决方案,期间也会遇到很多问题。国内外想要做港美股交易系统的券商公司和在做国际金融方面的金融企业。