腾讯云数据库智能化海量运维的建设与实践

作者介绍:鲁越,腾讯云数据库架构师团队负责人,主要负责腾讯云数据库MySQL、Redis、Oracle等数据库售前架构、运维、调优等工作,曾就职于网易和尼比鲁。

腾讯云数据库海量运维的经验,主要分为以下三部分:

1.数据库架构师团队的组建

2.自动化运维平台的建设

3.智能海量运维的实践

数据库架构师团队的组建

1组建缘由

由于数据库产品的特殊性和复杂性,我们在平时服务客户的过程中常遇到一些问题,例如:分布在各行各业的客户,他们会有不同的场景需求,这对于数据库的应用来说存在有非常大的差别。而我们的售前架构师可能没办法对各行各业在数据库方面的应用、对不同客户需求的架构都做到非常精通,因此无法推荐出最优的架构。

另一方面,我们的客户非常多,但可能我们的一些售后服务工程师对于这么复杂的数据库产品并不是非常精通,对于难度较大的问题不能做到完全覆盖,或是与客户交流不够平滑等,所以服务质量亟需提高。

基于以上两大原因,我们组建了数据库架构师团队。

2分工合作

架构师团队组建起来后,我们整个数据库产品的服务体系就变成了以下这样一个三层架构:第一层是运维,负责处理平台稳定性相关的工作;第二层是架构师,负责在中间督促重难点的攻坚,包括数据库的建设、运维工具的建设等等;第三层是一线服务工程师,负责处理主要的咨询类、流程类的问题。

目前整个架构师团队的工作包括四方面:

·客户运营:在进行数据运营的同时,与客户做更多沟通,包括跟进客户在使用数据库时遇到的各种难题;

·解决方案:包括基础解决方案和行业解决方案;

·服务体系:包括平台运维和基础产品运维;

·平台建设:包括客户运营平台、解决方案出口、支撑服务体系。

其中,在运营平台建设方面,我们做了一个CDB微信小助手,可以实现主动推送和被动拉取,帮助我们的一线同事更好地服务客户。

自动化运维平台的建设

要更好地服务客户、提高服务质量,光有数据库架构师团队和售后服务体系是不够的,我们还要有一个非常稳定的自动化运维平台来支持环境。因此,为什么需要自动化运维平台,这个问题的答案是显而易见的。到目前为止,我们一共有10W+的实例、2W+的物理机,对于平台的稳定性要求肯定是非常高。

1功能

·资源管理:包括实例的象限上限、物理机的管理和部署等;

·运维操作:包括升级、上限等功能;

·监控:一方面是数据库性能方面的监控,包括QPS、CPU相关的性能监控;二是可用性方面的监控。

·自愈:自动发现数据库的一些常见问题,比如发现了复制异常,平台会主动对它进行恢复。

2架构

自动化运维平台的整体架构从下往上共分为三层,其中最底层是APP的入口,即我们的客户端;中间层是客户入口;最上层是平台后端。

从客户端连接到APP这一层,需要经过两个架构,我们MySQL的备份会存储到集群,而性能监控的数据会上传到一个模块来实时展示我们的监控。在客户端这一层,可以通过官网或者API的入口进入到我们的自动化运维管理平台,可以进行资源管理、实例管理、数据传输等系统性的操作。我们的运维平台,除了可以进行这样的一些操作以外,还可以进行监控告警、运营报表、全息监控等操作。我们整个平台的任何一个操作的数据,都会汇总到运营数据库里,去支持我们的后端做一些包括大数据方面的分析。

3监控模块

整个自动化运维平台的模块是非常多的,在此我将重点分享一下监控模块。前面也提及到了,我们的监控模块分为两个部分,第一部分是性能方面的监控,第二部分是可用性方面的监控。

如上图所示,我们的监控模块主要是通过两面两个主线组成,一个是DB master,一个是拨测Svr。如果监测到有异常的话,会把这个信息发送到DB master,收到反馈的实例异常的信息之后,会通过长链接,再去验证是否真的异常。

CDB实例方面的性能监控,主要是通过cdb_report这个模块去监控的,会实时拉取性能方面的监控,将数据、包括CDB告警都汇总到我们的Apd Netman模块,这是比较重要的一个组件。

在一个普通场景下,拨测Svr的操作比较简单,但这样的场景在海量实例的架构下,可能会有什么问题?主要包括两点,第一点是拨测Svr的性能问题,也就是每一次在有这么多实例的情况下,拨测请求是否能够成功发出、按时发出;如果这个拨测Svr的性能不太好,会直接影响到每一次拨测Svr的时间间隔。如果拨测Svr性能不好,只能被迫地去把拨测Svr的时间间隔调大,这样对我们发现实例的问题可能是不及时的。第二点是拨测Svr自身的问题,如果拨测Svr是一个单点的话,万一它挂掉了,整个实例的状态对于我们来说都是不可知的,将会是非常危险的状态。

基于以上两点原因,我们在海量场景下的拨测Svr设计会考虑到以下三点优化目标:

根据这三点优化目标,我们做出了如下图所示的拨测Svr架构。这个节点又会将这些实例发射到后面的pingSvr的节点,是实际去进行拨测操作的节点,这个节点在执行了拨测操作之后,会将拨测失败结果存入DB中,会有一个alarmChecker去实时读取,然后进行告警。不管是成功还是失败的请求,全部都会写进去,会有模块去拉取,并实时地存入数据库中。在这些节点中,其实都有一个灾备的部署。

智能海量运维的实践

经过实践和思考,发现在海量数据运维中,我们的自动化运维平台还不能解决以下这些问题:

·定制化服务。不同行业的场景对于数据库的应用有着非常大差异,其实我们可以根据不同的使用场景为数据库实现定制化和优化的服务。

·数据库问题自动诊断和调优。

因此,腾讯内部目前正在研发一个智能化的产品,可以通过包括数据挖掘,或是架构师与客户沟通等方式,对客户的数据库应用场景进行画像,从而实现定制化服务。

1定制化服务

从数据挖掘的结果以及平常与客户的一些沟通来看,我们把一些比较特殊的使用方法总结为以下四种类型:

·计算型应用:比如一个报表类的应用,可能会需要在一段时间内,频繁地去获取计算资源;

·存储型应用:比如一个历史数据存储的应用;

·流量型应用:会拉取大量的数据;

·热点型应用:比如一个新闻类或红包类的应用,可能在低峰和高峰的界限会非常明显。

针对这四种特殊的使用方法,我们其实可以做一些定制化的服务,如下图所示:

对于计算型应用,如BI报表类,它的业务特点是凌晨才执行,而整个机器在凌晨这个时间段内是比较空闲的,所以我们就可以针对这样的计算型场景,进行一些允许闲时超用的优化。

对于存储型应用,客户可能比较关心的是整个容量的使用情况,那么我们就可以相应地提供自动加载、数据压缩的压缩引擎。

对于流量型应用,可能会对SQL的要求非常高,如果中间有一两个性能不是特别好的SQL,就可能会影响到整个数据库。所以对于这种应用,我们可以给客户提供一个类似自助SQL优化的工具,帮助客户把SQL做一定的优化。

对于热点型应用,我们可以提供一个实例动态升降配的功能,在业务高峰前,快速地将这个实例升到一个较高的配置。

2数据库自动调优

针对前文提到的数据库自动调优的问题,我们可以做一个实时分析和预测分析的工作,来分析实例的质量得分。

其中,预测分析是通过实例过去的历史数据,来分析它在未来两到三个月的走势。其实这个分析也是可以做定制化的,例如上文提及的计算型应用,如果客户对CPU比较敏感,我们在分析时就可以把CUP使用权重的比例调大;如果是对存储、空间利用率比较敏感,我们可以把存储方面的一些指标相应调大。通过这样的预测分析,再加上大数据、AI的一些模型,我们就可以得出一个实例得分的指标,并以此自动地优化数据库,或是提出一些优化建议。

腾讯云数据库海量运维之道-鲁越(1).pptx

更多前沿数据库技术和案例分享,请关注我们的微信号:腾讯云数据库CDB

原文链接:https://mp.weixin.qq.com/s/c-ru8f7Xxr5uVKzhzmI1xQ

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云数据库(TencentDB)

如何运营亿级QPS的Redis系统

作者:冯伟源,高级工程师,腾讯云Redis系统运维负责人。6年DBA经验,一直从事SQL优化、实例调优、数据库架构、海量数据库集群运维、运营平台建设和管理等工作...

5242
来自专栏悦思悦读

浅析软件架构和云计算

到底什么使软件架构?如果你问工程师,一般会被甩给一份文档,其中最显眼的就是类似下面例子中的一副结构图。看起来好复杂,好有深度啊。于是你就退缩了。 ? 其实,功能...

35412
来自专栏程序人生 阅读快乐

高性能MySQL(第3版)

《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关...

462
来自专栏SAP最佳业务实践

SAP最佳业务实践:SD–销售报价(112)-1业务概览

用途 描述了将标准销售报价转换为销售订单的流程。 优点 使用此业务流程,您可以向业务合作伙伴确保您将以指定的时间与价格,交付指定数量和配置的产品。 销售...

3549
来自专栏SDNLAB

适合初学者的软件定义数据中心(SDDC)架构

软件定义数据中心是一种数据管理方式,它通过虚拟化来抽象计算、存储和网络资源,并将其作为服务提供。为了促进这一过程,SDDC包括智能软件以集中管理虚拟化资源,并自...

3428
来自专栏SAP最佳业务实践

SAP最佳业务实践:生产订单拆分-工具生产(236)-1业务概览

image.png 用途 此业务情景将允许您使用按库存生产 (MTS, Make-to-stock) 的生产订单处理来生产工具。工具产品是匿名制造的,并作为...

3296
来自专栏「3306 Pai」社区

3306π武汉站嘉宾专访-斗鱼网络资深DBA赵飞祥

网名 yumushui ,拥有多年一线传统行业和互联网数据库架构设计与运维经验。Oracle 11g OCM,对MySQL、Oracle、PostgreSQL、...

1053
来自专栏大数据

适合初学者的软件定义数据中心架构

软件定义数据中心是一种数据管理方式,它通过虚拟化来抽象计算、存储和网络资源,并将其作为服务提供。为了促进这一过程,SDDC包括智能软件以集中管理虚拟化资源,并自...

1797
来自专栏Snova数据仓库

Snova数仓简介

Snova为您提供简单、快速、经济高效的PB级云端数据仓库解决方案。借助于Snova,您可以在数分钟内创建拥有数百节点的企业级云端数据仓库,并高效的完成日常维护...

1002
来自专栏云计算D1net

不是云计算嫁衣 你应该了解的虚拟化知识

云计算的发展,让虚拟化技术也逐渐被人熟知,那么云计算和虚拟化有何关系呢? 下面让我们来看下: 说到虚拟化,一般是指将物理的实体,通过软件模式,形成若干虚拟存在的...

3567

扫码关注云+社区