技术开发 频道

9年积淀SQL审核非常好的实践核心观点

  【IT168 资讯】随着信息技术的高速发展,IT系统由传统的烟囱式架构向平台化、去中心化转变,通过业务模块无状态化改造,结合Docker等容器技术,应用系统可以轻松实现秒级线性扩展以满足业务增长的需求。SQL语句作为应用系统与数据库之间的桥梁,在高并发下,只要质量稍有下降都会导致数据库成为性能瓶颈。虽然BAT等互联网巨头具备较强的核心掌控力以及完备的架构和工具链,能在一定程度上减轻数据库压力,但仍然需要完善的管理流程与规范约束开发人员合理编写SQL。

  自2007年起,在中国移动浙江公司信息技术部副总经理、国内首批Oracle9iOCM王晓征的带领下,浙江移动与新炬网络联合制定了浙江移动首版《IT系统数据库开发规范》,历经9年更新迭代百余次,目前已积淀2万余字,涵盖数据库设计、用户创建、数据同步、应用连接、高可用设计、对象命名、对象设计、SQL编写、数据库安全等规范,并且通过完善的流程管理,达到了对海量数据经营与业务数据访问的管理。经过多年的探索与实践,浙江移动已形成了一套敏捷、高效的SQL审查方案。

  浙江移动作为全国首个提出并落地SQL审查方案的运营商,经过多年步道与传播,让众多兄弟公司与互联网企业意识到SQL审查的重要性并推进落地。经浙江移动独家授权,在此分享浙江移动在落地SQL审查方法论时总结得出的三个核心观点:

  一、工具是SQL审查手段但不是功能较多

  浙江移动数据平台组于2009年研发出第一代SQL审查工具,并将《IT系统数据库开发规范》中的规范转化成规则,自动审查上线SQL脚本中的违规信息。截至目前,该工具已迭代6个版本,具备SQL规则管理、SQL代码管理、SQL违规报表、SQL自动优化以及按照业务系统、模块、开发商、开发人员等多维度报表的功能。在工具化建设与推进的过程中,工具发挥着方便有效管理、审查、跟进SQL的作用,并且可以随时汇总报表展示SQL审查成果。但是数据库作为操作数据的平台,除了应用之外,还会有诸多客户端接入执行相应的SQL,而工具通常在中间件、数据库中进行部署,因此没有业务层信息带入,工具无法捕获SQL的用途、发起设备、开发商、开发人员等信息,这就对后续整改带来了巨大的工作量。当然,也有部分SQL审核工具通过扫描代码实现,但代码中通常采用动态SQL实现逻辑,因而无法扫描出完整的SQL与相应信息。截至目前,浙江移动只管控了一部分的核心SQL,约调用量的80%。所以说,工具只是SQL审查的一小部分,别把工具当功能较多。

  二、SQL作为企业软资产,需要持续运营

  SQL作为企业的软资产时刻伴随着数据的产生、变迁与消亡,与数据一样,SQL资产也需要进行严格管控。如果任由SQL野蛮生长,将会引发严重的系统性能问题、扩展性问题、安全性问题,甚至会导致业务数据不可恢复的破坏。SQL的管控不仅仅局限在SQL运行质量,而应该覆盖SQL全生命周期,包括SQL创建、SQL运行、SQL下线等阶段的相关信息,例如创建人、所属业务、上线时间、执行频率、调用模块、用途以及上线后SQL在各阶段的运行数据等。开发DBA团队应通过持续运营,为SQL打上标签,对SQL进行全生命周期管控。

  三、快速转型,这一刻拥抱DevOps

  在信息技术快速变革的推动下,数据平台组由ITIL驱动向DevOps转型,浙江移动联合新炬网络建立了直接面向开发人员的开发DBA小组。在开发阶段,开发人员须在审查平台上提交SQL代码,同时可以申请协助服务,开发DBA会提供面对面纠错,并协调开发一起录入SQL相关信息。此举大大提升了SQL代码修复效率,打破了后期在中间件、数据库中扫描代码却找不到SQL开发人员的尴尬局面,为SQL资产运营注入坚实的力量。

  广义上的开发DBA与本文所述略有差异,以下内容摘自知乎作为适当补充:

  开发DBA分为三种。第一种是源码方向,通过修改源码来解决实际问题,比如提高性能、可用性、安全性等;第二种是自动化方向,在数据库周边提供自动化系统来服务数据库业务。包括但不限于自动运维、监控、日志、备份、高可用,甚至是中间件、消息总线、异构数据同步等等,大部分时间满足运维DBA的需求;第三种是辅助开发人员编写业务SQL、PL/SQL开发。

  浙江移动的开发DBA小组除了SQL审核以外,还需负责数据标准审核、物理模型审核、生命周期审核、数据分布审核、数据安全审核,开发DBA基于《IT系统数据库开发规范》对数据相关的属性进行全生命周期管控。与广义上的开发DBA不同,浙江移动的开发DBA肩负着质检总局的重要使命,为生产系统的可持续发展与安全稳定做出不可替代的贡献。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章