写点什么

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

  • 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:564883

评论

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

终于找到了一篇文章!通俗地讲解计算机工作原理

图灵社区

cpu 存储器 编译器 计算机工作原理

Spring源码

云淡风轻

spring 源码

只需CSS的下拉式导航菜单

寇云

CSS css3

图片与标题的Ken Burns动效

寇云

CSS css3

产业区块链:产业是本质,区块链是工具

CECBC

新基建 CECBC 区块链技术 中国电子

如何存储1个二进制位&锁存器的核心和本质

姜海天

计算机 数字逻辑

关于字符编码那些你应该知道的事情

꯭🇫꯭

Java MySQL emoji utf-8 ASCII

SpringBoot之多模块开发

北漂码农有话说

不忘初心,继续努力

一周思进

ARTS 打卡计划

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

Vol.10 Java 25岁了!

pyfn2030

Java jdk 编程语言 Java25周年

写给产品经理的信(6):时间管理

punkboy

极客时间,项目管理 职场 产品经理 时间分配 时间管理

【CSS】为什么a标签的伪类选择器要注意书写顺序?

德育处主任

CSS html css3 大前端 Web

面试都在问的微服务、服务治理、RPC、下一代微服务框架... 一文带你彻底搞懂!

程序员柠檬

微服务 后台开发 架构设计

Django ListView DetailView等基于类的视图如何添加装饰器?

BigYoung

Python django LiveView 装饰器

大厂为什么不招30岁以上程序员,看这篇就够了

金刚小书童

程序员 职业规划 技术管理 职业成长

vue-router 容易被忽视的几个地方

꯭🇫꯭

Vue vuejs vue-router router

恭喜你,赢得了爱情长跑的胜利

小天同学

爱情 兄弟 祝福

贴吧电纸书资深用户,从7个方面详谈BOOX Poke2上手体验!

DT极客

谈谈控制感(11):这样提升控制感,谁都能做到

史方远

心理 成长

广告的发展历程

子悠

广告 计算广告 广告系统 互联网广告 RTB

JUC整理笔记四之梳理VarHandle(上)

JFound

Java

毫无意义的人生唯有编织图案

xyz

设计模式:建造者设计模式

毛佳伟🐳

ARTS-week-1

youngitachi

ARTS 打卡计划 arts

平台化服务的基石:权限模型设计

孤岛旭日

企业架构 用户权限 数据建模

Vite for Vue 是什么?

꯭🇫꯭

Vue vuejs vite Vue3

2020年5月30日 泛型程序设计

瑞克与莫迪

一位测试工程师的自我介绍

姬翔

测试

Spring Bean生命周期——初始化和销毁

xiaoxi666

Java spring

python实现·十大排序算法之桶排序(Bucket Sort)

南风以南

Python 排序算法 桶排序

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