证券公司技术中台的发展与应用
图 技术中台整体架构
1. 以技术中台为核心的技术架构
技术中台的架构会极大影响整个公司的技术体系,通过设计分层服务和一系列面向开发和运维的辅助工具,构建了以技术中台为核心的技术架构(见上图)。
(1)基础设施服务,即 IaaS 层,提供硬件底层支持 ;
(2)基础服务层,即 PaaS 层,包括分布式服务框架、分布式数据库、分布式消息、分布式存储、分布式事务、实时监控服务等等 ;
(3)技术中台,包括从各服务中心抽象出来的共性业务能力,例如交易、账户、会员、行情、渠道、数据、智能等等。同时包含了对研发的支持,包括通用组件服务、开发框架支持、中间件封装及运行开发支持等。最后,通过服务治理,中台服务提供相关配套支持 ;
(4) 网 关,基 于 Open-Resty 搭建的服务网关,提供了服务路由、服务鉴权、灰度发布、服务限流、服务降级等功能 ;
(5)业务应用,经过调取技术中台,组装形成独立业务服务能力的业务应用。
2. 技术中台完整技术栈
技术中台主要功能包含业务组件、技术组件和服务治理三部分。业务组件提供标准的通用业务服务,供前台组装个性化功能,实现业务需求的快速响应和支撑。技术组件服务于系统开发人员,提供各类基础库和框架以及一系列工具 ;致力于标准化研发流程,提高研发效率,提高代码复用能力,实现对自主研发的支撑。服务治理主要面向运维人员,其提供的管理后台及工具用于支持运维人员系统化管控已上线的各类应用和服务,避免手动运维,提升运维和监控效率。
(1)自研微服务 RPC 框架(Lisa)
兴业证券微服务 RPC 框架(以下简称 Lisa)是采用Zookeeper 做服务发现、基于 Netty 异步 IO 库实现的长连接型高性能高可用的微服务框架。Lisa 除了支持精简的 TCP 私有协议外还支持 RESTful 协议提升兼容性,以便于用最小成本将历史陈旧系统纳入微服务体系。Lisa 与市面上流行的微服务框架相比有更折衷的特性平衡。
Lisa 除了在性能和易用性上做了平衡之外还独创地加入了事件机制。Lisa 的事件机制模仿了 .NET 平台语言的 Class设计,服务提供者除了对外提供接口方法之后还会抛出事件用于回调服务消费者逻辑。通过该机制,服务消费者可以监听(Catch)目标服务感兴趣的事件来驱动自身响应逻辑的执行。Lisa 微服务的事件机制为系统双向解耦提供了更多手段。
Lisa 微服务框架实现了应用从单体结构向分布式网状结构的飞跃,它是技术中台研发支撑的重要组成部分。利用微服务架构研发人员可以更好地组织和分派到不同子项目中去,减少开发过程中的协同耦合和代码冲突。
(2)配置集中管控
技术中台通过配置集中管控,面向开发人员提供一套标准的配置访问接口来统一不同应用的配置访问手段。该配置集中管控解决方案带来了诸多好处 :一是配置存储方式与配置访问接口解耦 ;二是配置的变更通过配置管控系统进行,避免了手工运维 ;三是不同团队开发者无需重复编写配置访问代码 ;四是支持服务接口变更配置,业务逻辑实现手段更灵活。
兴业证券基于 Zookeeper 实现了树形配置集中存储解决方案,Zookeeper 的树形节点结构更贴合配置应有的数据结构。通过 Zookeeper 的 Watch 机制将读取过的数据异步更新至内存来实现配置重复高速访问。
(3)系统化代码发布
代码发布是运维的主要工作之一,包括后端代码和前端资源。证券行业是强监管领域,开发和运维工作隔离是底线,而一个强而有效的系统是保障这一底线的必备手段。基于Jenkins 的 DevOps 系统将开发者的源码编译、打包、发布至运维容器中,一气呵成,避免了手工发布的低效方式。
(4)服务网关
OpenResty 是基于 Ngnix 和 Lua 的高性能 Web 平台,内部集成精良的 Lua 库、第三方模块、依赖项。基于 Open-Resty 搭建的服务网关,提供了服务路由、服务鉴权、灰度发布、服务限流、服务降级等功能,可以满足高并发和高可用的系统要求。
(5)全链路监控和性能管理
通过内置采集组件采集各个应用的运行时数据,包括接口调用、DBMS 交互、日志写入、Cache 访问等,将应用业务逻辑的各个关键环节数据全量压缩采集并在高吞吐的流式分析中心进行集中分析。
基于 Kafka 的日志收集功能,实现了公司内网海量日志采集和并行分析计算。服务性能管理(APM)通过部署大量并行计算节点,将日志哈希采集至对应的计算节点进行计算和存储。通过高效的海量时序数据库和表格存储,将各个应用的关键环节性能分析报表进行存储,相关上下文日志存储算法通过降低读取效率和数据一致性的预期,来支持大规模并行写入,这样的设计非常适合监控系统的存储场景。