写点什么

面对复杂技术栈,中泰证券如何做云原生转型?

  • 2023-09-08
    北京
  • 本文字数:2199 字

    阅读完需:约 7 分钟

面对复杂技术栈,中泰证券如何做云原生转型?

近年来,云原生转型已成为众多企业关注的焦点,中泰证券也不例外。但中泰证券的云原生转型面临着很大挑战。

 

中泰证券的软件架构非常复杂。除了传统架构,还有一些自行研发的云原生架构、独立框架以及独立的 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 能力的构建,为证券业务数字化转型加速,更好地支撑业务创新与客户体验提升。

 

2023-09-08 09:564751

评论

发布
暂无评论
发现更多内容

线程池基本参数解析

android 程序员 移动开发

光的进化曲:电力承载网的升级之路

脑极体

程序员中年危机:该如何打破35岁的魔咒优雅度过中年?

android 程序员 移动开发

程序员的中年危机,这道坎到底是什么?

android 程序员 移动开发

程序员这样准备面试,拿到Offer的概率准会上升。

android 程序员 移动开发

站在巨人肩上操作CAS(三):原子操作类的正确使用实战

android 程序员 移动开发

模块八作业

Geek_fc100d

「架构实战营」

瞬息万变的技术圈与焦虑的技术人,进阶Android需要掌握的那几个关键技术!

android 程序员 移动开发

移动-App-已经趋近饱和,那么-Android-开发凉了吗?

android 程序员 移动开发

程序员与架构师之间的差距很大吗?

android 程序员 移动开发

约束布局(ConstraintLayout)1

android 程序员 移动开发

《Kubernetes in action读书笔记》:运维架构演进

后台技术汇

Kubernetes 11月日更 运维架构

程序员的中年危机该怎么度过,只能靠纯技术?

android 程序员 移动开发

神奇宝贝 眼前一亮的 Jetpack + MVVM 极简实战

android 程序员 移动开发

程序员的专属幽默段子

android 程序员 移动开发

站在巨人肩上操作CAS(一):CAS的原理

android 程序员 移动开发

第一次面大厂就拿到了腾讯的 offer ,同事笑着骂我是搞 Android 的“狗托”

android 程序员 移动开发

算法----字符串

android 程序员 移动开发

Vue进阶(幺陆捌):应用 vw/vh 实现自定义布局

No Silver Bullet

Vue 11月日更

程序员真的有35岁危机这样的年龄危机吗?有些程序员是如何悄无声息渡过中年危机的?

android 程序员 移动开发

ThreadPoolExecutor 线程销毁源码分析

new life

ThreadPoolExecutor

秀一波多线程的操作技巧,又能Get新知识点了

android 程序员 移动开发

程序员毕业十年,我是如何从月薪2800涨到税后年薪30W+的?

android 程序员 移动开发

程序员非要去大一线城市不可吗?小三线的我有话说

android 程序员 移动开发

程序员还不会这6个面试技巧,活该你拿不到offer和高薪?

android 程序员 移动开发

第五章:paging使用

android 程序员 移动开发

什么是碳交易?

石云升

碳中和 11月日更 碳交易

简单易用!快速改善用户界面的10个技巧!

android 程序员 移动开发

简易弹球游戏 (2)(1)

android 程序员 移动开发

简易弹球游戏 (2)

android 程序员 移动开发

算法太TM重要了!刷完这些题,我拿到了梦寐以求的字节跳动和腾讯双offer!

android 程序员 移动开发

面对复杂技术栈,中泰证券如何做云原生转型?_企业动态_褚杏娟_InfoQ精选文章