从0到1 | 滴滴DB自动化运维实践了解一下

一.滴滴DB架构介绍

97ae2a3d9c9bea330030ec0d21f547770545626f

一般来说,自动化运维都会根据自己原有的架构来设计自动化运维平台,上图是滴滴DB的架构图,最上面是TGW LVS,也就是大家所熟悉的VIP,接下来是代理层dbproxy。代理层下面是MySQL的主从关系,一般情况是一主、一备主和一个从库,如果读取操作多,QPS会比较高,从库也需相应的增多。

同时还要有MySQL高可用的监控来应对主库挂了等等的异常情况。运维监控,我们是使用最常见的ZABBIX来做的。除此之外,我们还做了备份模块和性能优化的模块。

dbproxy相当于一个入口,连接应用,它是分布式的,因此每台上都会有自己的原始配置,所有的访问DB的流量都要经过dbproxy层,dbproxy会记录正常的访问日志,还有一些错误日志,例如没有加白名单或者是SQL语法错误等等都会在dbproxy层拦截,产生错误日志。

上图的架构就是我们在做自动化运维的初始部署,我们希望能够完成从业务申请到部署完成的一系列连贯动作。

二.主要工作

ad91700476f9a28c69a4c26d311321f2331e8e85

我们平时的工作内容如上图所示,基本包括部署、工单处理、扩容拆分、监控报警处理以及其它任务。

一周时间,RD申请30—50个实例在我们的工作中是很常见的,这时如果没有自动化运维,单纯靠自己手工部署的话,是很消耗时间的;工单处理的工作内容基本就是做一些DDL、表结构的变更,白名单以及其它需求;随着业务的发展,数据量会猛增,由于单机磁盘的存储是有限的,这时我们就要思考扩容、拆分的问题了,还有一种情况是磁盘可能足够存储,但是你的TPS/QPS单机可能撑不住,这时也要去做扩容;监控报警处理指的是我们前面提到的SQL错误,白名单没有加以及其它一些报警。

其中,部署和工单处理是我们日常工作的重头,其占比大约为70%。但是这一部分工作很容易自动化,一旦实现自动化,我们的工作强度会大大降低。

猜你喜欢

转载自my.oschina.net/u/3611008/blog/1812200
今日推荐