Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AI会抢了DBA的饭碗吗?

AI会抢了DBA的饭碗吗?

作者头像
腾讯云数据库 TencentDB
发布于 2019-11-18 03:10:37
发布于 2019-11-18 03:10:37
2.5K0
举报

本文是腾讯云数据库负责人林晓斌(丁奇)在腾讯云Techo开发者大会现场的演讲实录,演讲主题是《数据库智能时代和DBA的职责演进》。

林晓斌演讲现场

以下是上方演讲视频的内容纪要。

在我看来,数据库运维经历了四个大的阶段,前面三个我分别称为石器时代、工具时代、专家时代。

在2008年及之前,少有公司有专门的DBA团队,那时候都统一在OP范畴。

我记得那时候写应用,如果涉及到需要数据库, 我的发布步骤里面,还要包含数据库的安装步骤。然后op同学就按照安装命令一行行执行。数据库很多时候被当做应用程序的本地存储,用来替换更早之前,程序员需要自己维护的本地文件存储。研发要自己确定整个机器的内存分配,当然也是因为那时候单机的内存很小。我记得我要在3G的可用内存里,分配好应用进程和MySQL分别占多少内存。

数据库也被当做一个本地进程一个监控,跟应用服务器上的应用进程、agent等统一对待。所以什么线程监控、死锁监控,还都没有。慢慢地数据库的服务开始转给OP,那时候的工作甚至还包括搬机器。

所以我们说,这是石器时代,当DBA特别需要体力。不止是上服务器,查问题也是,一个个进程看过去,那时候故障排查的资料也不多,很多现象最后陷入到数据库内核原理那一步,就变成无头公案。

后来,数据库越用越多,维护数据库的工作就给了专门的团队,DBA团队才开始慢慢成为中型公司的标配。

懒惰促使技术进步。每次安装数据库、迁移、升级都要一点点执行,可受不了,于是自动化脚本、工具、crontab就开始。当然由于DBA团队多是从op出身,操作还是很规范的,虽然脚本、工具多,却也不会乱。但是每次操作都要登到服务器上,很多窗口都是黑色背景。

在我印象里,这个工具时代的主要特征,就是黑屏

要看个线程状态,上主机执行show processlist;要重启实例,上主机mysql_admin ;MySQL进程crash了,上主机,gdb挂core文件。

那个时候其实已经开始凸显专家的专业性,但是为了看不同的信息,要到主机上执行大量的命令,每个专家的查问题的习惯思路也都还不一样;现在大家流行说devops,其实反过来,在很早之前,op和DBA就先实现了opsdev,也就是运维研发。

他们是第三个时代的缔造者。

从基本的实例生命周期管理开始,再到实例监控,再到实例集群监控、大盘监控……专家时代的特征之一是:agent林立,要采集各种信息,从主机信息、到进程信息,cpu、io、load这些算是通用监控了。

对于每个不同的数据库,又有数据库内的监控,比如MySQL总是要监控增删改查命令数,读写io次数等,而redis更关心mget这类吃cpu的大操作的次数。同时数据可视化技术直接造福DBA。监控数据几乎直接跳过原始数据阶段,进入可视化状态。

为了收集数据并快速展示,消息队列也成了运维系统的标准组件之一。

这些数据被从agent采样,通过消息队列发到存储服务器,然后再可视化展现出来,到web页面上,背景往往是白色的,因此这个时代的特征之一,就是白屏化。当一个公司的DBA团队有了一个统一的白屏系统后,问题诊断的模式开始固定。

举个例子,当然,这些都是示意图。

如果你看主从延迟的监控曲线,看到这种图形,就是在某个时间点后,延迟曲线变成一个45度的线段,然后过一段时间又几乎垂直地恢复,那就是从库应用线程被堵住了。这往往是因为从库上有查询堵住了主从同步线程的更新。

再举个例子,如果你看到一个主库的多个从库的主从延迟,都以类似的曲线上升,这往往表示的是主库的更新特别多了。

这时候有经验的DBA会去看主库的各种更新类监控项。比如这个例子,主库的InnoDB_rows_updated出现类似的突增,那基本就确认结论了。

再看下一个,slave1的延迟增大, 同主库的其他slave的没有明显异常。这就说明不是主库的原因了。而且这个曲线也不是45度直线,表示不是事务堵住。这种情况一般就是slave1上的资源消耗过大。

这样下一步我们就是去看cpu占用,果然有增大,然后再看cpu消耗相关的指标,比如这个例子里,读数据行数增加很多,那就是查询变多,或者慢查询多,也能很快得到结论。

这些是在黑屏的时候很难直观的看出来的,也就很难很快得到答案。

也就是说,白屏化带来了三个方向的改变,催熟了专家时代。

首先,解放后端。

很多操作只需要按一下按钮就完成,这完全可以由业务使用方自己来做。比如申请实例、升级实例、SQL审核等等。这样就把DBA从日常的操作中解放出来。工具时代工具即使再方便,也不会允许研发直接上数据库服务器上去执行工具。

其次,形成定式。

在固定的图形界面下,这些查找问题的经验,开始被定式化。那些“一目了然”的分析和解决问题的方法,开始被当做套路使用,而且成功率还挺高。定式化的方法,特别适合积累和传承。

第三,反馈迭代。

白屏能提供给专家数据的,能够快速定位问题;白屏不能提供的,就会颇费周章。于是作为跟DBA同一个团队,甚至于是同一拨人的运维开发,开始对监控系统快速升级迭代,这个过程是正向循环,在一个团队里飞快地积累解决问题的经验。

因此这个时代的特点是:

  1. DBA的数据库经验和运维经验,得到快速积累。
  2. 数据库专家经验跟业务研发经验分离,DBA的经验在解决数据库问题时成为稀有资源,个人价值被具象化到跟业务挂钩。
  3. 经验易于积累和传承,DBA团队成长很快。
  4. 一个快速积累处理问题能力的团队,很容易形成口碑。这对团队也是一个正向的反馈。

虽然这个过程也经常会碰到一些无奈的情况。比如偶尔会被问到一些很简单的问题,比如在白屏化掩盖了一些细节情况下,还是需要直接登录到服务器上去看更详细的数据,再做分析。

因此这个过程偶尔挺累,但是总体都在把控之中,又有技术的稀缺性,而白屏化加分析讨论又能快速定位和解决一些简单的问题。

总体来说,过得还是比较舒适的。

专家经验持续输出,当然问题也越来越复杂。尤其是公有云数据库场景下,用户的使用场景更加不可控。

在公司内部服务的时候,DBA专家,是可以限定业务研发使用数据库的方式的。比如存储过程不能用、触发器不能用、join不能太复杂、DDL等操作必须后端统一处理等等,而在这种限定使用模式下,首先就不太容易出问题,其次就算出了问题,查明和解决问题的方法,也在专家团队的固定模式,也就是套路中。

但是在云服务就不是这样了。数据库的用户是客户的研发团队。一个云MySQL或者云redis的用户,总会按照他们自己的习惯,来使用数据库服务。

而用户反馈问题的时候,往往现场很快就结束了。这时候传统的方法是开始碰到问题。由于没有现场,查问题非常麻烦。

另一方面,客户的应用端到云数据库服务端,网络很多跳,链路复杂,追查问题很难定位。

在这种情况下,全日志和全链路监控,就应运而生。

全日志也成为审计日志,是把数据库上所有的操作都记录起来,包括增删改查,登录行为等等。

这样理论上可以复现任何时刻的现场。当然由于这种粒度的数据量很大,所以往往只能保存一段时间的日志。审计日志可以用来快速定位数据库内的问题。 

那么数据库外的呢?

由于链路更复杂,链路上每一个环节出点问题,导致连接失败、查询变慢等等,客户都会认为是数据库出问题了。

这类问题首先是特别难查。作为DBA,客户反馈查询语句慢了,第一时间就会去看sql写法对不对、表索引是否合理等等。需要排除掉很多可能,才会最终怀疑到网络上。这就影响了排查问题的时间。而网络由于有多跳,容易最终查不到确切结论。

全链路监控就在这样的场景下出现。

不论是保存日志里所有日志,还是链路上所有状态,都需要一个大规模、压缩率要很高、写入速度足够快的存储系统。数据量大以后,就可以在数据上做各种预分析操作。

自然的,这个系统就会进化为下面的状态。简单的问题能够自动处理;复杂的问题提供建议;疑难问题定位线索,提供给专家准确的信息——腾讯云数据库团队研发的DBbrain,就是面向这样的能力构建的系统

这些能力具备以后,就有了更进一步的能力,提前发现潜在问题:我们知道很多业务,尤其是电商类的业务,在节假日、运营活动前都会封网一周或更久,也就是说,其实真的会导致高峰期出问题的哪些慢查询、哪些不合理的表结构,是在高峰之前一周,就已经在线上的了。只不过处于潜伏状态。因为压力不大,这些潜在的危险查询,并没有造成影响,甚至连慢查询都不算。

这个潜伏期,其实也是发现问题的缓冲区。DBbrain可以在这个缓冲时间内,发现潜在的性能和使用问题,通过给出建议的方式,提示客户的DBA和研发做优化,起到治未病的作用。

当然一旦操作简单以后,将监控、建议和操作集中在移动端,就更容易了。

运维同学不用在婚礼的时候还掏出笔记本,登录V**解决了,一些简单的操作,可以在手机端直接完成。这也是DBbrain结合微信的优势,会提供给运维的便利。

那么,到了智能时代,云数据库+智能诊断系统,会抢了DBA的饭碗吗?

今天我们分析了数据库运维发展过程,大家可以看到,在前面的几个阶段,随着工具越来越成熟,解放了一部分低价值的工作量,DBA的价值一直在提升。

那从专家时代的白屏化,到智能时代,其实本质上,也是工具成熟,减少低价值工作,跟之前是没有区别的。

从拼体力到做工具,通过更快的满足业务需求,去掉的是搬机器的工作,去掉的是一行行敲命令的工作,聚焦于更高的效率;

从工具化到成为专家,通过更快地定位问题,去掉的是登录机器,执行和工具的动作,聚焦于专家经验积累;

到了智能时代,去掉了基本的性能优化、问题发现工作,聚焦于复杂的数据库问题,聚焦于业务架构,优化架构设计,这个是更高的业务价值。

因此我认为数据库运维智能时代的关键词是业务价值。

其实业务价值是贯穿于各个时代的,所有的工作都最终是服务于业务的。只是在智能时代,DBA对业务价值的贡献,因为云数据库和智能诊断工具,会凸显得更加纯粹。

搜索关注“腾讯云数据库”官方微信,回复“1106丁奇”,即可下载本文PPT。

往期推荐

(点击图片即可跳转阅读)

疯狂11.11

11月1日-12月2日, MySQL低至2.5折起,SQL Server 2折起,Redis2.5折起,参与每天5场秒杀,超低价格购买数据库产品。企业新用户及个人新用户可领取千元代金券,企业版最高3200元代金券(满8000可用);个人最高1500元代金券(满3750可用)。

↓↓点击阅读原文拼手速啦~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云数据库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端面试之CSS重点概念精讲
今天,我们又开辟了一个新的篇幅 --「前端面试」。即是把一些平时常用的概念和工具方法整理和罗列,也算是一种变向的「未雨绸缪」。
前端柒八九
2022/12/19
2.6K0
前端面试之CSS重点概念精讲
【前端面试题】04—33道基础CSS3面试题(附答案)
伴随着大量让人欣喜的功能加入HTML5,CSS3也同样为我们带来了更加绚丽的样式效果。
前端达人
2021/03/16
3.2K0
「资深前端工程师总结」前端面试知识点大全—CSS篇
display:none使用后,元素的宽度,高度都会丢失,视为不存在不加载;元素原来占据的空间位置不保留;产生回流和重绘;
用户5997198
2019/08/09
1.7K0
「资深前端工程师总结」前端面试知识点大全—CSS篇
分享 | 前端性能优化(CSS动画篇)
最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到了很多,在这里记录一下,其中的知识都是来源于这俩篇文章,我只是截取了其中比较关注的内容出来,原文地址High Performance Animations及Accelerated Rendering in Chrome
疯狂的技术宅
2019/03/28
2K0
浏览器渲染之回流重绘
回流和重绘是前端开发的高频词汇之一,你可以在各种面经,性能优化相关文章可以看到,但是很多都是草草带过。本文带你从浏览器渲染流程中了解回流与重绘的原理。
政采云前端团队
2021/09/30
1.8K0
浏览器渲染之回流重绘
每天10个前端小知识 【Day 13】
CSS position属性用于指定一个元素在文档中的定位方式。top,right,bottom 和 left 属性则决定了该元素的最终位置。
程序媛夏天
2024/01/18
3050
每天10个前端小知识 【Day 13】
从浏览器渲染层面解析css3动效优化原理
在h5开发中,我们经常会需要实现一些动效来让页面视觉效果更好,谈及动效便不可避免地会想到动效性能优化这个话题:
winty
2021/10/11
6520
从浏览器渲染层面解析css3动效优化原理
Web 性能优化-CSS3 硬件加速(GPU 加速)
上一篇文章学习了重绘和回流对页面性能的影响,是从比较宏观的角度去优化 Web 性能,本篇文章从每一帧的微观角度进行分析,来学习 CSS3 硬件加速的知识。
李振
2021/11/26
3.3K0
Web 性能优化-CSS3 硬件加速(GPU 加速)
干货 | 携程火车票7个优化动画性能的方法
携程火车票营销页使用 css 制作动画很多年了,这大大提高了动画给予页面丰富的视觉体验。不过,在开发的过程中,也遇到了一些性能相关问题和用户反馈,比如头部动画卡顿、页面打开时间较长、页面打开后部分数据加载时间较长等问题。为解决这些问题,我们借助性能检测工具定位问题,并查阅源码、文档等资源解决问题,形成了这篇文章。
携程技术
2023/09/06
3540
干货 | 携程火车票7个优化动画性能的方法
像素是怎样练成的
本来呢,最近在规划一篇关于浏览器的文章,但是在做文章架构梳理和相关资料查询的时候,发现「浏览器在渲染页面」的过程中,也别有洞天。索性,就单独将其作为一篇文章来写。
前端柒八九
2023/08/01
5550
像素是怎样练成的
CSS 强制启用 GPU 加速
最近在学校机房上前端课,用到了之前偶然看到的 CSS 的 GPU 渲染,性能肉眼可见提升。
Cesirdy
2023/05/29
1.2K0
一篇文章带你了解CSS基础知识和基本用法
相信做过网页的对Css都不是很陌生,它可以帮助我们重铸网页中很多绚丽的特效,尤其是现在Css已经发展3.0版本,很多功能更是丰富多彩,让我们的开发时间不仅大大缩短,而且还可以轻松做出许多华丽的特效,需要注意的是,Css相当于Html的一个美化装置,所以它必须依赖于Html才能发挥作用,那么今天我们就来深入了解下它吧。
前端皮皮
2020/11/26
11.7K0
一篇文章带你了解CSS基础知识和基本用法
49个常用的CSS代码片段,建议整理收藏
text-shadow 为网页字体添加阴影,通过对text-shadow属性设置相关的属性值。
前端达人
2021/07/16
2.3K0
57道常被问的CSS面试题及答案汇总,帮你查漏补缺
标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
前端达人
2021/08/10
3K1
57道常被问的CSS面试题及答案汇总,帮你查漏补缺
抖音三面:硬件加速中的“层”和层叠上下文中的“层”,是一个东西吗?
在CSS属性改变时,重渲染会分为“回流”、“重绘”和“直接合成”三种情况,分别对应从“布局定位”/“图层绘制”/“合成显示”开始,再走一遍上面的流程。
用户9899350
2022/07/29
9131
抖音三面:硬件加速中的“层”和层叠上下文中的“层”,是一个东西吗?
深入了解——CSS3新增属性
写过 CSS 的人应该对 CSS 选择器不陌生,我们所定义的 CSS 属性之所以能应用到相应的节点上,就是因为 CSS 选择器模式。参考下述代码:
超然
2018/08/03
1.5K0
深入了解——CSS3新增属性
CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位
web前端开发者最最注的内容是三个:HTML、CSS与JavaScript,他们分别在不同方面发挥自己的作用,HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能
张果
2018/01/04
1.7K0
CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位
看不完的那种!前端170面试题+答案学习整理(良心制作)
圆角border-radius,阴影box-shadow,对文字加特效text-shadow,线性渐变gradient,变化transform,伪元素::selection,媒体查询,多栏布局,图片边框border-image。
达达前端
2021/01/18
11.9K0
CSS动画与GPU
那么问题是:已经小心遵守这些规则了,为什么动画还会卡顿、跳帧?还能优化吗?要从哪里入手?
ayqy贾杰
2023/03/15
2.5K0
CSS动画与GPU
几个前端工程师应当掌握的“词语”
HTML5学堂-码匠:W3C、BFC、FOUC、Hack、GPU、Sprite、UA……各类前端术语知多少? 有不少前端开发工程师,可能并不清楚下面的部分词语,但是在实战中其实都在使用着它们。 明确一
HTML5学堂
2018/03/13
9850
几个前端工程师应当掌握的“词语”
推荐阅读
相关推荐
前端面试之CSS重点概念精讲
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档