近年来,云原生转型已成为众多企业关注的焦点,中泰证券也不例外。但中泰证券的云原生转型面临着很大挑战。
中泰证券的软件架构非常复杂。除了传统架构,还有一些自行研发的云原生架构、独立框架以及独立的 C++ 框架等,云原生架构的比例较低。数据库方面同样如此,内部数据库类型繁多,Oracle 占了 30%,此外还有 MySQL、SQL Server 等等。过多的技术栈,各种架构交织在一起增加了转型难度。
中泰证券金融科技委员会主任兼科技研发部总经理何波在“2023 网易数帆城市行”大会上,分享了自己做云原生转型的过程。面对复杂的技术栈,中泰证券的技术团队的策略是将技术的复杂性与业务研究的复杂性分离。“通过标准化技术,我们可以将技术复杂性下沉,从而更多地关注业务复杂性,减少处理技术细节的时间和精力。”何波表示。
转型过程
从软件工程的演进来看,架构逐渐复杂,但基本原则一直清晰:低耦合、高内聚。通过不断将复杂性标准化下沉至基础框架,可以更好地实现从作坊式向工业化的转变,从而应对更加复杂的体系。
中泰证券在构建微服务体系的过程中,经历了技术选型、技术验证、引入开源实现及完全自研等一系列的过程。对于技术选型,中泰证券不希望重复发明轮子,也不希望完全受制于开源的实现,所以在技术选型时遵循如下原则:
在云原生转型过程中,中泰证券按照一系列明确的步骤进行了架构的迁移,其中一个关键举措是将应用与环境进行解耦。中泰证券需要逐步将原有的粗放式架构层层拆分,将其中台化。新自研项目除少数性能敏感的系统外,全部采用微服务架构;传统架构根据业务分类分组按需进行服务拆分改造;异构系统按需做服务适配,以 API 形式提供服务,保护投资,复用能力。
通过微服务的转型,技术团队成功将研发工作从上层抽离出应用和环境,也解决了过去部署过程中常见的配置文件和环境问题。借助 Kubernetes(K8s),团队成功实现了配置与环境的解耦。目前,中泰证券已经成功在 17 个 K8s 集群上运行了 2000 多个 pod。
应用和环境解耦后,接下来就是应用和配置的解耦。在传统的开发模式中,许多应用都含有大量的配置文件,有时甚至会将配置存储在数据库中。然而,这种做法在软件的配置、交付和上线过程中经常导致问题,因为不同环境中的配置可能不同。但实际上,应用本身与配置是没有直接关联的。按照云原生原则,中泰证券将配置转移到环境变量中,并通过配置中心进行管理,成功将应用与配置解耦,使得测试环境和生产环境中的应用完全一致,避免了配置文件引起的问题。目前,其已经建立了 4 个配置中心,涵盖了 80% 的自研项目。
中泰证券的另一个重要改进是将中间件进行 PaaS 化。团队采用了网易数帆轻舟云原生平台作为中间件的资源池,将资源的管理从单个应用下沉到资源池中,避免了每个应用独立构建这些中间件。无论是 Redis、Kafka 还是多达 40 种不同版本的 MySQL 数据库,都被纳入了这一 PaaS 化的管理中。
金融机构的数据库存储量是很大的。为了提高维护性和升级的便捷性,中泰证券对数据库进行轻量化处理,摒弃存储过程,回归到分布式数据库存储。这样,架构不仅保障了数据的完整性,还将大部分业务逻辑下沉到应用层,资源层的 PaaS 化也为外部提供了便利。此外,中泰证券对制品库进行了全面的管理,实现了统一的交付渠道。
安全建设
技术发展过程中,建立一个更加安全和高效的治理体系至关重要。而中泰证券主要面临着技术栈多样性的挑战,涵盖了注册发现、配置中心、底层数据库、PaaS 等。
对于安全问题,中泰证券的技术团队认为,最关键的是要能够及早暴露出故障率。除了前述的技术栈,确保良好的监控和可观测性显得尤为重要。在实际操作中,技术团队需要明确监控的程度,确定哪些指标有意义、哪些无意义,并对衡量标准作出充分考虑,避免系统出现问题时仓促采取行动。
因此,中泰证券非常重视混沌工程的实践,通过模拟红蓝军演练,在系统中引入破坏并尝试恢复,从而更快地发现潜在故障。在这个过程中,技术团队进行了攻防演练,涵盖了大量故障处理,包括基础故障、CPU、内存使用率、磁盘使用率、中间件问题、MySQL 异常等。这一实践在某二级部门中得以应用,涉及到 20 多个业务场景、100 多个混沌场景以及 300 次的演练,有力保障了业务的运行。
接下来,中泰证券进入安全工具的应用阶段,通过代码扫描等安全工具,在 CICD 安全环节中加入了更多的监测。此外,无论是常规发布还是紧急发布,安全门禁都被置于产品的每个关键点,以确保发布和审核的安全性。
结束语
为了评估转型效果,中泰证券对资产进行了分类:实用资产和战略资产,实用资产包括服务器、网络、财务系统等,战略资产包括企业用来向客户提供产品或服务的工具,可以形成差异化竞争优势。去年,中泰证券的战略资产占比为 20%,如今已提升至 28% 左右。
总体而言,云原生转型带来了研发质量和效率的提升。通过减少重复劳动和不必要的开发,中泰证券实现了研发效率的增加。测试能力的提升以及自动化测试平台的使用,也节省了大量的测试时间,大幅度降低了测试成本。
何波还表示,中泰证券最近也在尝试用大模型自动生成代码、自动化测试等,希望开发人员可以聚焦在写业务代码上,并且通过云原生改造真正把技术沉淀下来,变成一些标准化的东西使用。
目前,中泰证券自研项目的研发部分完成了约 70%。“我们的目标是进行全面的云原生转型。”何波表示,云原生带来了研发质量和效率的提升,通过敏捷 IT 能力的构建,为证券业务数字化转型加速,更好地支撑业务创新与客户体验提升。