覆盖重要业务系统
服务器资源利用率提升
中信证券作为中国领先的综合性证券公司,其业务范围广泛,对数据库系统提出了多样化的要求。中信证券采用多元化的数据库策略,包括分布式数据库、集中式关系型数据库、分析型数据库以及键值、文档、时序、图等非关系型数据库。
中信证券使用 KubeBlocks 容器化数据库管理平台,通过 K8s 实现了数据库与硬件资源的解耦,借助 K8s 的编排技术和高度标准化的数据库容器镜像,并根据不同数据库的特性、安全需求和服务级别目标(SLO),将其智能分配到最合适的容器环境中,大大简化了对多种类型数据库的管理。实施混合部署时,如何同时满足不同数据库的安全级别和 SLO 要求,同时实现高效的资源利用,是一个重要的技术挑战。
中信证券基于 KubeBlocks 在 K8s 容器平台之上构建了数据库统管平台,充分利用了国产化的海光、鲲鹏等硬件基础设施,并通过 K8s 为上层数据库容器提供统一的运行环境,其自动化调度和资源管理能力为数据库的隔离、混部提供了基础。KubeBlocks 平台使中信证券能够灵活部署和管理多种类型的数据库,针对数据库工作负载进行了优化,提供了统一的生命周期管理、自动化运维、多集群管理、调度混部、资源隔离、迁移打散等功能。
在数据库管理平台中,高效的调度系统需要多维度评估资源并实施约束控制。该平台维护了节点资源分配表,实时监控资源指标,分析节点负载和容量,进行调度决策时考虑多种资源约束策略,如内存不超分配、CPU 允许超分配、对 IOPS 资源预留等。
系统采用多目标优化算法,在满足约束条件下选择最优节点。此外,调度系统根据业务重要性、SLA 和访问模式对数据库实例进行分级,匹配相应的节点资源,平衡关键业务保障和整体资源效率。
KubeBlocks 调度系统支持节点密度分级和超卖管理,通过区分高低密度节点并设置不同超卖比例,实现资源利用和业务隔离的平衡。系统持续监测资源使用和性能,动态调整密度等级和超卖策略。同时,调度系统对数据库实例进行画像分析,识别负载类型(如 CPU 密集型、I/O 密集型等)和高峰期特征。基于此,系统实施智能混部策略,将互补资源需求的实例调度到同一节点,最大化资源利用率。
在每个交易日,证券行业的交易系统有严格固定的交易时段。相对固定的清算时段以及几乎空载的空闲时段。在交易时段、清算时段,交易、清算系统的资源需要得到最高优先级保障;而在空闲时段,交易系统的资源完全可以出让给后台管理、分析、报表等场景。在时间维度上,KubeBlocks 调度系统通过人为指定与自动分析实例的负载高峰期,实现负载错峰调度。算法目标包括最小化同一节点上实例高峰期重叠度,避免负载尖峰。系统定期或根据触发条件重新执行混部和错峰调度,必要时迁移实例以保持错峰状态。调度系统持续监测优化效果,收集性能反馈,评估决策质量并调整策略。同时,系统提供人工干预接口,允许管理员根据业务需求调整参数,指导系统进行针对性优化。通过这些策略,调度系统在保障业务质量的同时,有效提升资源利用效率,降低运维成本。
在这个基础上,中信证券进一步优化了其数据库容器化方案,特别关注了安全性和资源利用效率。考虑到金融行业对数据安全的严格要求,以及不同类型数据库的安全级别差异,中信证券采用了更加细粒度的容器技术策略。这种策略不仅确保了高度的安全性,还实现了资源的最优配置。为了实现这一目标,中信证券采用了业界还未广泛普及的安全容器技术,将不同安全级别和性能需求的数据库工作负载进行分类处理。这种方法允许在同一平台上同时运行高度敏感的核心业务数据库和相对开放的辅助数据库系统,既保证了整体系统的安全性,又提高了资源利用率。
中信证券基于安全容器的数据库方案是一个创新性的解决方案,其核心在于充分利用 runC 和 runD 容器技术的优势实现可信与不可信容器的混合部署,以及不同 SLO(服务级别目标)容器的混合部署。runC 是一个轻量级的容器运行时,直接与主机操作系统内核交互,提供近乎原生的性能和完整的容器功能。它适用于被认定为可信的应用,如经过严格审核的内部开发数据库系统。runC 容器共享主机内核,具有高性能、资源效率高和广泛兼容性的特点。runD 则是一种新兴的容器运行时,结合了容器的轻量级特性和虚拟机的强隔离性。它通过使用轻量级虚拟机技术为每个容器提供独立的内核,特别适合那些被视为不可信或需要更高安全隔离级别的应用,如某些开源数据库或外部供应商提供的应用。
在混部场景中,采取了差异化的容器技术选择策略:对于内部业务使用的核心数据库可以认为是安全可信的,优先考虑 runC。而对于开源数据库以及外部厂商软件提供的数据库,考虑到它们对核心系统可能存在的风险,则倾向于使用 runD。这种差异化的容器技术选择策略不仅能够满足不同应用的安全需求,还能在资源利用和性能方面取得最佳平衡。
KubeBlocks 在中信证券落地应用半年时间以来,在国产数据库适配度、产品成熟度等方面有显著的提升,特别值得一提的是,KubeBlocks 团队响应中信证券在混部场景下对于错峰调度、弹性资源优先级调度、可信&不可信容器混合部署、不同 SLO 容器混合部署的诉求下给予了大力支持,展现了行业领先的技术实力。
目前中信证券的数据库容器化平台已成功应用于多个关键业务领域,支撑着包括财富管理委员会、计划财务部、资产管理部、研究部、固定收益部等部门在内的应用系统数据库,截至目前,该平台已覆盖超过 30 个重要的业务系统,涵盖了公司多种类型的数据库工作负载。
通过实施这一创新的容器化方案,中信证券取得了显著的技术和业务成效。
(1)安全性增强:采用安全容器技术,特别是 runD 对敏感 workload 的隔离,大幅提升了系统的整体安全性。自实施以来,未发生任何由于容器间干扰、导致的安全事故。
(2)资源利用率提升:通过统一的容器平台和混合部署策略,将服务器资源利用率提高 60% 以上,降低了硬件成本。
(3)运维效率提升:自动化运维和统一管理平台的引入,缩短了数据库部署和维护时间,提高了IT运维效率。
这种先进的数据库容器化解决方案为中信证券提供强大的技术支撑,不仅增强公司在瞬息万变的金融市场中的竞争优势,还为公司的数字化转型和创新业务发展奠定坚实基础,使中信证券能够更敏捷地响应市场变化,更有效地管理风险,并为客户提供更优质的服务。在保证合规与安全生产的同时,切实提升资源利用率,响应国家 ESG 政策要求,促进中信证券践行负责任投资、发展绿色金融,支持经济社会的可持续发展的主体责任。
文章刊登于金融业数据库创新发展报告(2024)