语言
<< 返回案例列表

从被动救火到主动管控,银行业SQL开发DevOps实践

2022年6月17日
,
D
e
v
O
p
s
,
S
Q
L
,
S
Q
L
,
399

 

近年来,金融行业迅速发展,服务领域不断扩大,业务负载与运行压力给系统架构带来极大的挑战。数据库作为金融行业信息系统的承载平台,其性能直接关系到业务能否连续正常运行其中,不良SQL是影响数据库性能的重要原因。因此,金融行业对SQL质量管控提出了新的要求。

 

银行系统面临多种SQL问题

A银行是12家全国性股份制商业银行之一。截至2020年底,近4万职工通过千余家营业机构为客户提供多种金融服务。该银行业务发展导致其技术架构十分庞大。虽然已经建立了开发过程管理体系,但A银行缺少SQL质量管控流程,SQL问题较多,具体主要表现在以下三个方面:

1. 开发人员基数大,SQL开发水平参差不齐,人工审核效率低;

2. 数据库类型多样,数量超过2500个,待审核SQL大量累积;

3. 问题SQL流入生产环境,导致数据库负载高、性能差,影响业务体验。同时,问题SQL跟踪,溯源困难,DBA疲于救火。

为改变被动救火的局面,该行在SQL质量管控方面做了许多尝试,如从只监控生产库的TOP SQL到运维前置,在应用发布上线前通过人工找出问题SQL进行整改。但是这些尝试始终没有很好解决开发人员SQL编写欠规范的问题,大量审核未整改SQL给应用如期上线造成巨大压力。

SQM实现应用全流程SQL质量管控

基于A银行系统在SQL方面的问题,云和恩墨为其提供了SQM-SQL质量管控平台,将SQL质量控制进一步前置到开发环节,结合自动化的审核能力实现了应用全流程SQL质量管控的闭环。

 云和恩墨为A银行提供的解决方案

  • 在需求设计阶段,云和恩墨为该行提供了可参考的设计规范准则,确定项目与成员配置,保证SQL质量管控的制度约定;

  • 在开发阶段,通过工单审核和开放接口审核,开发人员可以自检SQL并初步优化,DBA进行复核;

  • 在测试阶段,SQM通过Java应用监控和上线前严格的SQL审核管控和留痕,确保每次应用发布无SQL问题;

  • 在生产阶段,SQM自动监控生产SQL,将低效SQL形成生产问题工单处理。

SQL质量管控融入A银行DevOps建设

截至2021年4月,该行有3700多个用户使用了SQM平台,持续审核600余个项目中的SQL问题,监控近900个开发测试库,生成的工单数量超3万个,审核的SQL数量超过65万条,发现问题SQL 23万多条。

使用SQM后,A银行由于SQL性能引发的严重问题减少。同时,统一开发规范流程帮助该行将SQL质量管控融入了DevOps建设中。此外,SQM能够促进项目性能问题归档分类追踪,为银行项目组开发质量评价提供了量化指标依据。

SQM的前置SQL审核能力,有效阻断了问题SQL流入生产环境,帮助A银行从根本上解决了由于不良SQL导致的生产性能低下问题,打通从研发到生产全流程的SQL质量管控,满足A银行应用频繁变更上线场景下的应用高效平稳运行的需要。

 

SQM-SQL质量管控平台简介

SQM-SQL质量管控平台,能够自动抓取数据库开发与运行环境中的对象设计与SQL 信息,并依据既定的审核规则分析,找出对象设计与SQL中的潜在问题,给出专业改进建议,规避应用性能和稳定性风险。SQM可在应用开发、测试、上线、生产不同阶段对SQL进行质量管控,前置性地保障应用稳定、高效运行。