阿里数据库DevOps最佳实践

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 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


 

相关文章
|
1月前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第2章:数据库设计最佳实践(2024 最新版)
《MySQL 简易速速上手小册》第2章:数据库设计最佳实践(2024 最新版)
34 2
|
1月前
|
供应链 数据库 开发者
深入了解数据库锁:类型、应用和最佳实践
深入了解数据库锁:类型、应用和最佳实践
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云原生数据库 PolarDB MySQL:云原生时代的数据库新篇章
阿里云原生数据库 PolarDB MySQL,它是阿里云自主研发的下一代云原生关系型数据库。PolarDB具有多主多写、多活容灾、HTAP等特性,交易性能和存储容量均表现出色。此外,PolarDB MySQL Serverless具有动态弹性升降资源和全局一致性等特性,能够适应高吞吐写入和高并发业务场景。本文详细分析了PolarDB的性能、稳定性和可扩展性,以及它在成本、性能和稳定性方面的优势。PolarDB为企业提供了高效、可靠的数据库解决方案,是值得考虑的选择。
334 0
|
1月前
|
Ubuntu 安全 Docker
【DevOps】Docker 最佳实践指南(绝对干货)
祝您的 Docker 之旅一切顺利!
86 4
|
17天前
|
SQL 存储 数据库
深入理解数据库技术:原理、应用与最佳实践
一、引言 数据库技术是信息技术领域的基石,它负责存储、管理和检索数据,为各种应用提供数据支持
|
29天前
|
监控 Devops 持续交付
构建高效可靠的云基础设施:DevOps和SRE的最佳实践
【5月更文挑战第30天】在数字化转型的浪潮中,企业对云基础设施的依赖日益增加。本文探讨了如何通过结合DevOps和Site Reliability Engineering(SRE)的最佳实践来构建一个高效、可靠且灵活的云环境。文章首先概述了DevOps和SRE的核心原则,接着提出了一系列策略来优化云资源的管理、自动化流程、以及提高系统的弹性。最后,文中将分享一些成功的案例分析,以帮助读者理解这些原则在实际场景中的应用。
|
30天前
|
运维 监控 Devops
构建高效稳定的云基础设施:DevOps与自动化运维的融合构建高效微服务架构的最佳实践
【5月更文挑战第28天】 在数字化转型的浪潮中,企业对于云基础设施的依赖日益增加。为了应对不断变化的市场需求和提供不间断的服务,传统的IT运维模式已不再适应现代业务的发展。本文将探讨如何通过结合DevOps理念和自动化工具,实现云基础设施的高效稳定运营。我们将分析自动化运维在提升效率、降低成本以及增强系统稳定性方面的关键作用,并展示实践案例以验证其效果。
|
12天前
|
关系型数据库 MySQL 数据库
精通MySQL:数据库管理、性能优化与最佳实践
h3> 一、引言 MySQL是一个功能强大的开源关系型数据库管理系统,广泛应用于各种Web应用、企业级应用和数据分析等领域
|
1月前
|
运维 监控 Devops
理解并应用DevOps最佳实践的技术指南
【5月更文挑战第22天】本文介绍了DevOps在提升开发效率和保证软件质量中的关键作用,强调文化转变、自动化、持续集成/部署及监控的重要性。文章提出六个最佳实践:建立共同目标、采用敏捷方法、实现自动化、实施CI/CD、加强沟通协作和持续学习改进。Netflix的案例展示了DevOps的成功应用。随着技术发展,DevOps将在软件开发中持续创新。
|
1月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
82 1

热门文章

最新文章