开发者社区> 数据管理dms> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

阿里数据库DevOps最佳实践

简介: DevOps已不再陌生,但目前业界主要集中在开发与运维的高效协作和快速发布上,而作为企业核心资产的数据库,其结构设计、SQL审核、变更发布已成为企业效率提升的主要瓶颈,这篇文章将详细介绍阿里在数据库DevOps上遇到的挑战以及解决方案。
+关注继续查看

发福利!发福利!发福利!杭州云栖大会视频地址:

企业级数据库最佳实践(上半场)

企业级数据库最佳实践(下半场)

阿里数据库内核

本文内容在企业级数据库最佳实践(上半场)中。


DevOps已不再陌生,但目前业界主要集中在开发与运维的高效协作和快速发布上,而作为企业核心资产的数据库,其结构设计、SQL审核、变更发布已成为企业效率提升的主要瓶颈,这篇文章将详细介绍阿里在数据库DevOps上遇到的挑战以及解决方案。

 

1、阿里数据库DevOps是什么

一句话定义: 阿里数据库DevOps是以数据库产品为核心,促进数据库研发自助化,提升研发效率,同时保证员工数据库访问安全及数据库高性能。

阿里数据库DevOps由3款产品组成,分别是阿里企业级数据管理服务iDB、数据库智能优化服务CloudDBA、阿里企业级数据库管控服务DBPaaS,本文会重点介绍阿里企业级数据管理服务iDB。

 

2、我们的挑战

近10年,阿里研发人数从几百人扩展到几万人,与此同时,不断对数据库服务提出挑战。回顾阿里数据库服务发展历程,包含以下几个阶段:

·         2010年前,数据库账号直接开放给开发,自由查询数据

·         2010年,为了解决数据查询安全问题,全面回收数据库账号,只能DBA查询数据

·         2011年,为了解决数据查询低效问题,iDB1.0发布,开发在WEB平台上自助查询数据,但此时数据库变更尚需邮件提交给DBA

·         2012年,为了解决数据库变更沟通问题,iDB2.0发布,数据库变更可以在线提交汇总,同时结构设计规范也可以自动应用到开发数据库设计中,但此时数据库变更还只能DBA执行

·         2013年,为了解决数据库变更低效问题,iDB3.0发布,开发可以自助执行数据库变更

·         2014年,为了满足阿里云用户对数据库管理安全、效率的需求,阿里云数据管理DMS发布,定位于个人数据管理云服务

·         2015年,为了解决阿里业务暴涨DBA支撑瓶颈问题,iDB4.0发布,第一次做到数据库研发全自助

·         2016年,为了解决业务数据库性能问题,数据库智能优化服务CloudDBA发布,定位于用户身边的数据库专家

·         2017年,为了将多年实践/经验/沉淀分享给更多人,阿里云数据管理DMS企业版(iDB对应云上产品)发布,提供完整的数据库研发全自助流程、企业级数据库安全管控等服务

今天,我们(准确说是我们的产品)要解决阿里20,000开发人员高效的结构设计、SQL审核和变更发布,要解决每周上万条SQL发布无慢SQL漏网,要解决每周百万次数据查询分析的权限控制和操作审计,因此在效率、性能和安全上,阿里数据库DevOps正面临巨大挑战。

 

3、解决方案

当你感觉痛苦的时候,正是你成长的时候,阿里数据库DevOps应运而生。

  • 效率

数据库效率最终衡量体现在发布效率,而在发布前面还有结构设计、SQL设计、测试数据构建、库表同步、结构审核、SQL审核等工作,数据库发布自身也会细分成结构变更、数据订正和分库分表发布等。

阿里数据库DevOps在效率上的解决方案:全自助的数据库研发流程,覆盖上述数据库发布涉及的全部工作,如30+结构设计规范自动应用到开发结构设计中、多人设计冲突检测和DDL溯源、多环境的库表同步、百万级测试数据自助生成等等,最终让DBA无需参与具体项目的设计和评审,将主要精力投入到对业务架构理解,更加全局的看待业务和数据库的关系,促进企业效率最优。

效率解决方案涉及功能太多,这里仅以分库分表发布为例,希望大家能对全自助的数据库研发流程有所了解:

 b69f54408d469728b91019170629552fb9e07fb4


如果选择MySQL作为数据存储,随着业务增长,大多数企业都会遇到单表容量瓶颈,其中大表DDL性能问题最为严重。业界普遍解法是将单表拆成分表,分库分表使得容量不再是瓶颈,但给维护管理带来很大挑战。

面对1024、4096个分表,如何加字段就是首要解决问题,经常遇到执行过快导致性能卡顿、一次性全量执行风险不可控、异常任务中断等一系列问题,最终让分库分表方案实际效果大打折扣。

阿里数据库DevOps在物理分库分表基础上封装出逻辑库、逻辑表,所有DDL都在逻辑库、逻辑表上操作,而在物理分库分表上的具体执行动作由产品来保证,目前可以做到数据库锁检测、实例/库级并行、自动灰度、执行限速、任务暂停重试等细粒度控制。

  •  性能

数据库性能,抛开数据库类型/版本选择、内核优化、硬件选型等方面,我们看到对业务感知最明显、最关注就是SQL(准确说是慢SQL),如何从根源上解决慢SQL,而不是每次出问题时救火,是阿里数据库DevOps一直努力的方向。

032bfaa898739e81460312533fda508184c53dc7

在一条SQL被设计出来,到其成为慢SQL前,它需要通过审核,这时开发提交SQL审核后,会自动抽取SVN/GIT代码中SQL并识别变化部分,这时阿里数据库智能优化服务CloudDBA会对有变化的SQL进行诊断,先基于规则对select *、动态SQL等给出审核建议,然后对通过规则校验的SQL进行优化,给出索引建议,整个SQL审核流程由产品完成,开发最终会看到SQL审核报告,包含SQL改写建议、索引建议。

在大多数业务场景中,一次性优化相对容易些,如何做到持续优化?这就需要我们的优化流程能做到闭环,自动打通从采集->分析->建议->采纳->跟踪->评估整条链路,而不是靠DBA人肉串联。

de47aa3d973c59380016a1275e174567ba479eeb

数据库性能话题很大,比如上面提到的SQL上线前审核和优化闭环,还有运行中SQL优化、空间优化、锁优化、全量SQL、性能成本度量等等方面,我这里不做展开,大家可以在阿里云数据管理DMS数据库优化服务(入口:DMS登录数据库-性能)找到你需要的答案。

  •  安全

在数据库领域,可以说数据安全是一切的基础。而大多数企业数据库都会存在以下几种数据安全风险:

·         应用访问

·         主机访问

·         数据仓库

·         备份

·         员工访问

在企业初期,往往会关注在前四种的安全防护上,而忽略人的因素,但随着员工增多、角色增多,员工访问数据安全风险日益突显,而员工访问数据安全正是数据库DevOps要解决的重要课题。

阿里数据库DevOps从以下5大方面解决员工访问数据安全:

·         查询管控

·         变更管控

·         权限管控

·         数据分级

·         安全审计

9731e5c086dbd0d948661ad9ed6c5880ce09806d

每个大方面又细化出很多功能点,如权限管控就包含库/表/列细粒度控制、物理库/物理表/逻辑库/逻辑表权限、查询/导出/变更权限分类、到期提醒回收等功能点。

 

4、云上:数据管理DMS

上面介绍的阿里数据库DevOps,对应到云上产品:阿里云数据管理DMS

480d04b270c7c719d1b2a83ace8614cd859de4b5

 

数据管理DMS产品架构如下:

dbab716d784188a98cdffaf653c84e3ef73073a3

从产品架构图上可知, 数据管理DMS提供了企业版、高级版、免费版和移动版。

其中,阿里云数据管理DMS企业版为每个企业构建独有的数据库管理系统,包含每个企业独有的员工信息、流程、规则和元数据,如果企业研发人数大于20人,强烈推荐使用。

07e1e1e6ff638e3d1ca73cdef0169f99cd3795da

如果你是个人、创业团队或者小企业用户,我们推荐 阿里云数据管理DMS高级版让你访问云端数据更安全。

63c24b6de9585474048d66c285224f839d43fe5b

另外,数据管理DMS最近还添加了新成员:移动版,一期支持云端数据管理,后续还会支持数据库诊断优化、数据库研发流程以及自建IDC数据库。

 

5、期待你的加入

10年走来,我们已经看到企业级数据库服务的未来,欢迎越来越多用户使用我们的服务,同时也欢迎越来越多伙伴加入我们,因为还有太多领域需要我们去深耕。

  • 数据库产品专家/高级专家
    • 企业级数据库产品
    • 分布式数据库产品
    • BI数据分析产品
  • 研发专家/高级专家
    • Java后端开发
    • 前端开发
    • 移动端开发



 作者简介:衡铁刚(佩恩),阿里数据库产品专家,负责阿里云数据管理DMS产品设计,先后从事过运维DBA、淘宝DBA等工作。

30d314e48e4d16c624604b4e36dc029139530a87


 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《阿里巴巴DevOps实践指南》下载地址电子版
本书分为开篇、敏捷研发篇、代码管理篇、持续交付篇和解决方案篇五大篇章,覆盖 DevOps 演进史、核心理念与阿里巴巴最佳实践的全方位解析,从DevOps到云效架构师教你搭建DevOps平台,想要实现高效研发,读这本书就没错啦!
12 0
阿里巴巴DevOps实践指南(六)| 产品导向的交付
业务驱动和产品导向是适应数字化时代要求的协作和交付方式,是我们对 DevOps 实施的核心价值主张。同时,它们的有效实施离不开工程实践和能力的支撑,下一章我们将讨论 DevOps 的另一核心要素——持续交付的工程能力。
544 0
阿里巴巴DevOps实践指南(四)| 需求的层次结构
清晰定义需求的层次结构,明确各个层次的价值。基于它们,我们就可以定义协作过程,实现并交付这些价值,保障协作和交付的效率和效果。
690 0
阿里巴巴DevOps实践指南(三)| 阿里巴巴 DevOps 实施的价值主张
数字化转型是对互联网公司和产业内公司的共同挑战。产业公司要应用数字化能力,提升用户体验和运作效率;互联网公司要将数字化能力与具体的产业结合,带来更广更深的创新。共同点是,它们都需要升级 IT 的交付和运行模式,都离不开 DevOps 的能力。
302 0
阿里巴巴DevOps实践指南(二)| 数字化转型下,DevOps的根本目标是什么?
数字化转型是信息技术与产业的结合。需要转型的不仅仅是各个传统的产业,也包含信息产业本身,如互联网公司。DevOps 是数字化转型的重要组成部分,DevOps 的体系和实践也必须服务于数字化转型的需求,这是互联网和传统产业公司的共同挑战和使命。
463 0
阿里巴巴DevOps实践指南(零)| 序
在数字化变革的浪潮中,中国作为产业规模最大和门类最齐全的经济体,迎来百年未有的崛起机会。拥抱数字基础设施,探索符合数字化时代要求的技术和管理范式,将帮助我们切实把握机会,实现伟大的复兴。而把握这一机会的组织,将在数字化变革的浪潮中脱颖而出。DevOps 是其中不可或缺的环节,希望我们的实践总结对你有所启发。
277 0
阿里巴巴DevOps实践指南(十三)| 测试提效
分布式测试为测试速度插上了翅膀,精准测试有效的识别出了测试的范围,增量覆盖率又为测试的不断完备提供了有利的指引,线上覆盖率帮助我们有效的进行应用瘦身。充分利用好这些技术手段进行测试提效,可以让持续交付的过程更加的顺畅
819 0
阿里巴巴DevOps实践指南(一)| 为什么DevOps的必然趋势是BizDevOps
从精益思想出发,我们可以看到DevOps的必然发展方向,那就是向业务侧延伸。业务是产品开发和运维的源头,完整的价值流必须从源头开始。这不是预测,而是正在发生的事实
4833 0
阿里云云效发布《阿里巴巴DevOps实践指南》
6月23日,在2021阿里巴巴研发效能峰会上,由阿里云云效团队20位专家共同撰写的《阿里巴巴DevOps实践指南》(以下简称指南)正式对外发布。本指南是阿里云云效团队对过去十年阿里巴巴DevOps 实践经验的系统总结。
3626 0
DevOps 从理论到实践指南
什么是 DevOps 如今 DevOps 已经成为一个流行词,很多公司都在说自己在做 DevOps,但是每个人、每家公司理解的 DevOps 又不尽相同,从 DevOps 诞生的第一天起,如何定义 DevOps 就是一个争论不休的话题。
1631 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
企业级数据库DevOps最佳实践
立即下载
袋鼠云基于阿里云RDS的数据库架构实践
立即下载
阿里云云原生DevOps解决方案重磅发布
立即下载