大咖专访 | 深度对话腾讯云数据库专家雷海林

大咖简介:雷海林,腾讯云数据库技术专家,2007加入腾讯,一直从事支付,数据库领域相关的开发工作。重点研究方向是Linux和数据库内核,在内核编程,后台程序性能优化,分布式数据库方面有丰富经验,目前主要负责分布式数据库TDSQL的研发。


2019年DTCC中国数据库大会上,腾讯云数据库专家雷海林受邀接受了深度专访。对个人在数据库领域的心路历程,TDSQL智能运维平台架构,以及数据库运维的宝贵经验逐一进行了分享。

采访视频

采访问题

问题1:请您介绍下日常工作重点,以及您在数据库领域经历了哪些心历路程?

目前重点是负责TDSQL的研发工作,把控技术方向,部分模块的开发等。

我在做数据库研发之前,前面几年是做支付业务系统方面的开发,当时除了做业务逻辑,很大一部分的复杂工作在考虑业务系统如何做数据高可用,高一致性,数据扩容的工作,深刻理解了应用的痛点。

随着经验的提升,我们在09年的时候认识到需要将业务和数据库在容灾上彻底的解耦,所以开始成立专门的TDSQL团队来负责金融数据库的研发工作。

最初的时候我们重点是解决MySQL的bug,性能优化和在跨IDC场景下实现主备自动切换,并且做到数据不丢,以满足我们支付业务对数据库高性能、高可用和切换不丢事务的要求。

之后,腾讯的业务呈现爆发式增长,业务对数据库层快速容量伸缩的需求要求越来越迫切,比如某个游戏突然火爆,支付量很快增长10倍,那我们数据可性能也要相应跟上。

问题2:腾讯云在金融行业已经有很多落地的解决方案,尤其腾讯云TDSQL已是金融行业的“杀手锏”级应用,那么TDSQL 智能运维平台扮演的是怎样一种角色?

TDSQL是一整套金融级分布式数据库解决方案,除了核心数据库模块以外,我们提供的智能运营平台是整个解决方案中运营配套设施中最重要的组成模块。这也是我们产品能获得诸多金融客户认可的一大亮点。这里提两点:

第一点是:TDSQL智能运维平台源于腾讯自身数据库PaaS平台的实践,我们内部运营着数以十万计的数据库节点,如果采用人肉运营,工作量非常大,容易出错,DBA很难对整体有个好的把控,运营工作会存在非常大的风险,这需要一个高效的数据库运营管理平台,帮助DBA团队管理好这些实例;

第二点是:无论是MySQL这类开源数据库,还是当前如火如荼的分布式数据库,我想我们的目标客户群,例如这些金融机构,他们除了关心数据安全性、一致性等核心功能外,他们最关心的是可运维性,他们能否自己掌控,以及出了故障后,如何快速有效的解决。

基于以上两点,所以我们将智能运维平台产品化,让DBA对数据库的所有运营操作都能前台化,并且每个任务要操作简单,步骤直观。当DB存在风险的时候能提前预警并给出优化方案,出现异常能自动准确分析出原因的自动化运营平台,这样才能让大家用起来放心,系统才能更稳定。TDSQL智能运营平台为TDSQL插上了飞翔的翅膀,使我们飞的更高,更稳,通过它能更好的服务好我们的客户。

问题3:TDSQL智能运维平台是怎样一种架构模式,是不是主要包括赤兔自助运营和扁鹊智能DBA?

差不多,TDSQL智能运营平台主要包含三大块,第一块主要包含对DB的各项运营操作,如申请实例,扩容,回档等等,这是最基础的功能。第二块主要是对DB数据的采集,统计,曲线展示和监控,比如能实时查看QPS命中率指标等,在遇到突发的SQL报错,变慢了自动触发监控。第三块则是在第二块的基础之上做的智能化延伸,需要在出问题的时候自动分析出原因,比如主备切换了需要找出根源,是DB故障了呢,还是SQL引起变慢的?如何对这个SQL进行优化等等。

问题4:能否谈一下腾讯金融云TDSQL智能运维平台到底智能到什么程度,到底有多大比例的业务能实现自动运维?

目前我们就几个DBA运营10多万个数据库节点,并且要提供5个9的可用性,所以没有智能化的运营操作平台基本上是不敢想象的。我们在做智能运营平台的时候就设定了一个目标,就是要求所有的运营操作都能前台化,将DBA彻底从后台的手工运营中解放出来,到目前为止,基本上很好的完成了预期的目标。目前在智能运营这块包括了可用性问题,性能问题,可靠性问题等方面的智能诊断与优化,基本上覆盖了数据库运营工作的方方面面,极大的提升了运营效率,让系统跑的更稳定。

问题5:能否结合具体的应用场景分享下,TDSQL智能运维平台有哪些优势?能给用户带来哪些价值?

我想我们的核心优势,就是这个智能运营平台由我们运营着数十万数据库实例的DBA团队自己开发的,他们最懂他们需要什么样的运营工具,而非由没有切身之痛的人去凭空想象客户需要什么。

所以我们的设计重心是放在从DBA使用角度作为出发点,如何快速的有效的处理问题,我们也体验过一些友商的运营管理台,对比下来,处理同一个运营操作,我们可以少很多次页面跳转与按钮,因此学习和使用门槛很低,用起来会觉得特别自然,处理问题的效率特别高,这也是我们运营平台设计上诸多独特性之一。举个例子,比如db因为遇到bug重启了,那么正常的设计可能会触发大量告警,比如db不存活了,系统错误率高,主备切换之类等等,这样一下子收到大量告警,人可能很容易就懵了,但是我们从实用角度触发,会对这些告警做一个立体化分析,最后给出的是db异常重启,发生了正常的切换,并且会大概率自动分析出重启的原因等等,这样使用起来会特别的方便,这些东西都是我们DBA在数十年的大规模的数据库集群运营中积累的经验,每种优化可能都是对应之前踩到的坑,通过我们的智能平台输出给我们的客户,是非常具备独特而实用的价值的。

对客户来说,整体来说平台的价值就是提升客户的运营效率,降低客户的运营风险。

一来可以降低客户的运营风险,我们的页面操作,做了很多保护动作,例如删除实例,我们会做很多检查,检查最近7天是否还有业务请求,备份是否可靠等等,避免误删。

二来可以降低客户对TDSQL的咨询需求,很多常规问题,都可以自己定位解决了,例如我们在公有云上线智能DBA后,关于性能分析的工单几乎将为0了,常规性能问题客户用我们的扁鹊就可以发现,例如索引不合理等等。

三来通过我们的管理平台,我们将TDSQL集群的内部运营状态全部透明出来,同时通过评估体系,对潜在风险进行预判,让客户能对我们数据库内部运营情况一目了然,安心使用。

问题6:在机器学习、人工智能等领先技术方面,TDSQL智能运维平台有哪些体现?

整个智能运维平台,前期主要是通过将我们数十年的运营经验,以及故障处理经验沉淀成为专家知识库,规则化,程序化,进而实现自动化。但是在很多地方,我们也在积极探索AI在智能运维体系里面的应用,例如

1、根因关联分析,一个磁盘故障,可能同时引发很多异常和告警,我们通过关联分析,以及决策树算法,来协助快速找到根本原因,以及实现告警收敛。

2、智能告警,在不同的业务场景,有着不同的运营指标曲线,如何识别突发异常,是监控的一大难点,我们结合iforrest,深度学习等AI算法,去识别曲线上的异常点。

3、智能判断,例如SSD寿命检测,因为SSD的寿命不是突然死亡,而是有一个曲线的,我们需要根据SSD的参数指标,去识别判断磁盘寿命,避免影响数据库。

 4、安全审计,例如我们与我们安全AI团队合作,来智能识别拖库或者SQL注入等潜在风险;

5、同时我们现在也在与我们公司AI团队合作,依托公司内部大量的运营实例样本数据,探讨在不同资源条件下,不同的业务场景下(常规SQL模式),如何配置最合理的数据库参数,以获得智能调优。

当然这里面,很多地方还处于持续优化阶段,所有这些对于我们的运营效率会有极大的提升。

问题7:就您的经验来看,数据库运维应注意哪些关键点?要想真正做到可视化管理、快速部署、实时监控报警,有哪些捷径可走?

一般来说,数据库的运营工作需要非常丰富的经验,并且操作需要非常小心,稍有不留神,可能就会引起生产事故,要注意的地方很多,比如要做好容量,性能评估,做好可靠的备份,做好容灾演练等等。

但是,如果采用TDSQL,这些细节都已经集成在我们的平台里,只要熟练使用我们的平台即可,平常重视告警就好了。

至于说捷径这东西,我觉得不存在啥特别的捷径,每个功能都需要踏踏实实去做,去使用并且不断低去做迭代优化,唯有专注专业才是真正的捷径。

原文发布于微信公众号 - 腾讯云数据库(TencentDB)

原文发表时间:2019-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券