防患于未然:自动&智能的SQL质控让你的DevOps更高效!

现代研发过程都离不开平台支撑,实现研发过程自动化协同和控制,其中代码的质控可以通过集成Sonar、Checkstyle等很好的实现自动化,但是SQL的质控在自动化流程中却长期处于空白。如今,通过SQM研发的Jenkins插件、JVM探针,将SQL质控的自动化能力组装到DevOps流水线中,彻底填补了这个空白,必要时配以SQM的OpenAPI,能实现更强大的能力。

DevOps与金融企业研发

IT研发领域里,DevOps已经成为一套越来越主流的实践方法集和文化价值观,它可以帮助企业缩短软件发布周期,提升软件质量,安全快速获取产品开发反馈。在国内,各大金融企业很早就开始实践DevOps理念,并且有些银行落地比较到位,已取得很好成效,比如招商银行、平安银行、民生银行、中信银行等。

研究机构发现,在DevOps过程中,自动化是带来组织效能差异的关键因素,也是DevOps 的关键点。产品/项目的规划设计、计划跟踪、迭代开发、持续交付这些不同阶段都有好的方法论支撑,比如故事地图、Scrum框架、看板方法等,但是那些将全局过程标准化、自动化、可视化,关键流程和节点管控到位,并行开发过程协同管理到位,构建起完整DevOps流水线的企业才能获得最大收益。

bf20ef32ca7794ee3763f9464fb6747e.png

因此,过去几年,各企业都在构建自己的DevOps平台,即完整的DevOps流水线。笔者总结了一下,大致分为两个流派,开源或自研。

开源流派,基于开源工具链的持续交付流水线,实现从0到1快速构建DevOps能力。

0c7f574bd8dc1bc6d1e7e9c51f5ead56.png

自研流派,核心大多都是对开源工具链的封装、扩展、增强,简化使用难度,实现DevOps目标。金融企业出于安全性、稳定性,自主可控等因素,大多走自研或合作研发DevOps平台的路径。

无论哪个流派,对代码的质控管理都是关键一环,通过集成Sonar、Checkstyle等能很好的实现自动化。

36a1c470f2450b1defd84d4f5b6779ff.png

但是SQL的质量控制却还停留在不检测或者人工检测,效率低,质量标准差异大,不能自动化,不能和DevOps融合的状态,产生很大的风险隐患。

SQL质控的挑战和价值

多年的实践中,我们发现影响业务性能、连续性、稳定性的因素多种多样,但归纳起来可以分为六大类,其中两大类和SQL有关。

90a4a1aad53fe604d93b41f543d29400.png

在现代的企业研发中,其它因素都有较好的方法和工具控制,但SQL质量问题一直未能得到较好解决,业务爆发各种SQL性能及安全问题,倒逼必须将能够SQL质量控制住,在其影响业务之前就要发现并消除掉。

30d93c3358ea804172cfe689760924c5.png

经过在SQL质控方向多年的探索,我们发现,虽然SQL质量问题存在于应用软件的全生命周期,从开发、测试、发布上线、生产运行,SQL质量问题,无处不在,但进行SQL质量控制的效果,却是越前置越好。

7468b586115861dfc796d2b5f6bf113a.png

开发测试阶段SQL质控效果远远大于生产运行阶段SQL质控效果,前置解决才是根本。同时通过将SQL质控按场景工具化、自动化,和DevOps过程集成起来,可以高效的实现质控目标。SQM-SQL质量管控平台,应运而生。

  • 两大引擎,SQL解析引擎+专家引擎;

  • 覆盖应用全生命周期:开发、测试、上线发布、生产运行;

  • 内置的专家经验规则+语法树特征值、文本正则匹配的灵活自定义规则能力,全面覆盖用户SQL规范;

  • 支持各种开发语言构建的应用;

  • 支持数据库Oracle、MySQL、DB2、Microsoft SQL Server,即将支持GaussDB、OceanBase、PostgreSQL等;

  • Jenkins插件、JVM插件,与DevOps集成,自动化SQL质控;

  • 强大的OpenAPI,方便用户快速将SQM能力与其它用户系统集成;

  • 支持不同规模、不同研发模式的十多种场景化SQL质量管控方案,适合的才是最好的;

  • 智能优化,能够对SQL进行全面分析后,给出精确的优化建议,比如创建索引等。

ff7538e4f417e07aec28b349cb8f11d4.png

DevOps中的SQL质控

DevOps中的SQL质控应从流程制度建设、管控手段建设、人员能力提升三个维度综合解决问题。

SQL质控前置到开发测试阶段。在开发交付给测试的环节前引入SQL的质量控制,提升团队之间的协作效率,减少返工带来的成本增加,在测试环节引入自动的SQL质量复核能力,全面覆盖。

人员能力和质量管控提升。人员能力,可通过培训、专业辅导、SQL代码规范等方式进行提升。质量管控,借助专业工具作为抓手进行管控,对于极端复杂问题可借助专家支持优化。

5dbc6debfd93eaeefdf8a10d28c826c2.png

一般的DevOps流程可视为两级流程。一级主流程是DevOps的整体过程,包括“任务管理、代码管理、构建和发布、其他后续”。

“构建&发布”的二级流程,包括了多个步骤:源代码管理,代码检查,构建,测试,部署。二级流程下又包含了多项“操作”,比如“代码检查”包括了规范性检查,安全检查,其他检查。

SQM研发的Jenkins插件、JVM插件,支持快速组装到DevOps流水线中,在代码检查环节,自动化进行SQL的质量检查。在测试环节,自动化进行SQL的质量检查。

522d07a857e8bc1dc9e91f26c2520881.png

过程示意图

f14af31846dd97fa771a57f29f420b7f.png

Jenkins+SQM Plug-in实际运转图

案例解析与探讨

X银行、Z企业等

解决方案:Jenkins插件+JVM插件+OpenAPI,分阶段落地
SQM与开发流程融合,在开发测试环节提供SQL审核服务。在开发阶段处理大部分的SQL质量问题,将运维工作前置到开发阶段,大大节约成本且提高开发效率。
1)SQM平台实现与DevOps融合;
2)SQM提供SQL脚本审核功能(实时审核);
3)复杂SQL可经过SQM平台由DBA协助处理;
4)提供SQL豁免处理流程。

b67a267a84eee422108d8932d5729694.png

Y银行

解决方案:工单+OpenAPI+平台
为了达成SQL质量控制目标,该行结合自身情况,从SQL质量控制要点出发,持续实践迭代,利用SQM审核工具覆盖开发环境和测试环境,进行SQL的审核与监控。
2016年SQM项目正式启动。SQM从一开始的调研实施,到后续不断的迭代完善,现在已经在该银行的研发体系里扮演了重要的角色。

04289b3c6a043a3e5de54fa6a3e8f16b.png

截止2019年年中,该行的SQM平台的用户有三千余人,配置的项目(子系统)有四百多个,监控五百多个测试库,工单总数将近五千个,每天创建工单数有20个左右,工单当天处理完成率达80% 自动化的SQL审核减轻了测试和运维的压力,大大减少了人工的工作量 统一了开发规范流程,通过不断探索,总结出了最佳实践的工作流 极大减少了应用投产之后由于SQL性能引发的严重问题 助力该银行打造数据中台,以及DevOps开发运维一体化建设 促使项目性能问题统一归档、分类和追踪,形成比较完善的处理闭环,并为项目组开发质量评价提供量化指标数据。

131081afede401cc7cf86ab9056116c0.png

H企业

解决方案:OpenAPI+连库捕获+流程再造
该行对SQL审核的期望目标如下:
1)防止问题SQL流入至生产环境;
2)项目上线前SQL的检测,对问题SQL进行审核整改;
3)设计的闭环审核流程,确保每个问题SQL都完成整改;
在对开发测试流程进行梳理,该行决定将SQM审核与开发流程融合在一起,进行流程再造。

681b11f40a0aac5f3875ce0eac76dc9b.png

c1dcb3baaabf74229f4a67e3702ccae2.png

相关阅读

重磅发布丨云和恩墨新一代数据库实时监控和智能巡检平台:BethuneX

产品速递丨对话SQL质量管理 - 云和恩墨SQL质量管控平台SQM

重磅丨云和恩墨zCloud数据库云管平台2.0版本发布

d9ef163963848d0612219b3a1402ebe7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值