导读:
金融业研发过程都离不开平台支撑,实现研发过程自动化协同和控制,其中代码的质控可以通过集成Sonar、Checkstyle等很好的实现自动化,但是sql的质控在自动化流程中却长期处于空白。
如今,通过SQM研发的Jenkins插件、JVM探针,将sql质控的自动化能力组装到DevOps流水线中,彻底填补了这个空白,必要时配以SQM的OpenAPI,能实现更强大的能力。
DevOps与金融企业研发
IT研发领域里,DevOps已经成为一套越来越主流的实践方法集和文化价值观,它可以帮助企业缩短软件发布周期,提升软件质量,安全快速获取产品开发反馈。
在国内,各大金融企业很早就开始实践DevOps理念,并且有些银行落地比较到位,已取得很好成效,比如招商银行、平安银行、民生银行、中信银行等。
研究机构发现,在DevOps过程中,
自动化
是带来组织效能差异的关键因素,也是DevOps 的关键点。产品/项目的规划设计、计划跟踪、迭代开发、持续交付这些不同阶段都有好的方法论支撑,比如故事地图、Scrum框架、看板方法等,但是那些将全局过程标准化、自动化、可视化,关键流程和节点管控到位,并行开发过程协同管理到位,构建起完整DevOps流水线的企业才能获得最大收益。
因此,过去几年,各企业都在构建自己的DevOps平台,即完整的DevOps流水线。 笔者总结了一下,大致分为两个流派,开源或自研。
开源流派,基于开源工具链的持续交付流水线,实现从0到1快速构建DevOps能力。
自研流派,核心大多都是对开源工具链的封装、扩展、增强,简化使用难度,实现DevOps目标。
金融企业出于安全性、稳定性,自主可控等因素,大多走自研或合作研发DevOps平台的路径。
无论哪个流派,对代码的质控管理都是关键一环,通过集成Sonar、Checkstyle等能很好的实现自动化。
但是sql的质量控制却还停留在不检测或者人工检测,效率低,质量标准差异大,不能自动化,不能和DevOps融合的状态,产生很大的风险隐患。
sql质控的挑战和价值
多年的实践中,我们发现影响业务性能、连续性、稳定性的因素多种多样,但归纳起来可以分为六大类,其中两大类和sql有关。
在现代的企业研发中,其它因素都有较好的方法和工具控制,但sql质量问题一直未能得到较好解决,业务爆发各种sql性能及安全问题,倒逼必须将能够sql质量控制住,在其影响业务之前就要发现并消除掉。
经过在sql质控方向多年的探索,我们发现,虽然sql质量问题存在于应用软件的全生命周期,从开发、测试、发布上线、生产运行,sql质量问题,无处不在,但进行sql质量控制的效果,却是越前置越好。
开发测试阶段sql质控效果远远大于生产运行阶段sql质控效果,前置解决才是根本。 同时通过将sql质控按场景工具化、自动化,和DevOps过程集成起来,可以高效的实现质控目标。 SQM-sql质量管控平台,应运而生。
-
两大引擎,sql解析引擎+专家引擎
-
覆盖应用全生命周期:开发、测试、上线发布、生产运行
-
支持各种开发语言构建的应用
-
支持数据库Oracle、MySQL、DB2,即将支持Microsoft sql Server 、Postgresql、OceanBase
-
智能优化,能够对sql进行全面分析后,给出精确的优化建议,比如创建索引等
DevOps中的sql质控
DevOps中的sql质控应从流程制度建设、管控手段建设、人员能力提升三个维度综合解决问题。
sql质控前置到开发测试阶段。 在开发交付给测试的环节前引入sql的质量控制,提升团队之间的协作效率,减少返工带来的成本增加,在测试环节引入自动的sql质量复核能力,全面覆盖。
人员能力和质量管控提升。 人员能力,可通过培训、专业辅导、sql代码规范等方式进行提升。 质量管控,借助专业工具作为抓手进行管控,对于极端复杂问题可借助专家支持优化。
一般的DevOps流程可视为两级流程。 一级主流程是DevOps的整体过程,包括“任务管理、代码管理、构建和发布、其他后续”。
“构建&发布”的二级流程,包括了多个步骤: 源代码管理,代码检查,构建,测试,部署。 二级流程下又包含了多项“操作”,比如“代码检查”包括了规范性检查,安全检查,其他检查。
SQM研发的Jenkins插件、JVM插件,支持快速组装到DevOps流水线中,在代码检查环节,自动化进行sql的质量检查。
在测试环节,自动化进行sql的质量检查。
过程示意图
Jenkins+SQMPlug-in实际运转图
案例解析与探讨
-
X银行
解决方案: Jenkins插件+JVM插件+OpenAPI,分阶段落地
SQM与开发流程融合,在开发测试环节提供sql审核服务。 在开发阶段处理大部分的sql质量问题,将运维工作前置到开发阶段,大大节约成本且提高开发效率。
1)SQM平台实现与DevOps融合
3)复杂sql可经过SQM平台由DBA协助处理
4)提供sql豁免处理流程
-
Y银行
解决方案: 工单+OpenAPI+平台
为了达成sql质量控制目标,该行结合自身情况,从sql质量控制要点出发,持续实践迭代,利用SQM审核工具覆盖开发环境和测试环境,进行sql的审核与监控。
2016年SQM项目正式启动。
SQM从一开始的调研实施,到后续不断的迭代完善,现在已经在该银行的研发体系里扮演了重要的角色。
截止2019年年中,该行的SQM平台的用户有三千余人,配置的项目(子系统)有四百多个,监控五百多个测试库,工单总数将近五千个,每天创建工单数有20个左右,工单当天处理完成率达80% 自动化的sql审核减轻了测试和运维的压力,大大减少了人工的工作量统一了开发规范流程,通过不断探索,总结出了最佳实践的工作流 极大减少了应用投产之后由于sql性能引发的严重问题助力该银行打造数据中台,以及DevOps开发运维一体化建设 促使项目性能问题统一归档、分类和追踪,形成比较完善的处理闭环,并为项目组开发质量评价提供量化指标数据。
-
Z银行
解决方案: OpenAPI+连库捕获+流程再造
该行对sql审核的期望目标如下:
1)防止问题sql流入至生产环境
3)设计的闭环审核流程,确保每个问题sql都完成整改
在对开发测试流程进行梳理,该行决定将SQM审核与开发流程融合在一起,进行流程再造。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。