一.滴滴DB架构介绍性能优化
通常来讲,自动化运维都会根据本身原有的架构来设计自动化运维平台,上图是滴滴DB的架构图,最上面是TGW LVS,也就是你们所熟悉的VIP,接下来是代理层dbproxy。代理层下面是MySQL的主从关系,通常状况是一主、一备主和一个从库,若是读取操做多,QPS会比较高,从库也需相应的增多。架构
同时还要有MySQL高可用的监控来应对主库挂了等等的异常状况。运维监控,咱们是使用最多见的ZABBIX来作的。除此以外,咱们还作了备份模块和性能优化的模块。运维
dbproxy至关于一个入口,链接应用,它是分布式的,所以每台上都会有本身的原始配置,全部的访问DB的流量都要通过dbproxy层,dbproxy会记录正常的访问日志,还有一些错误日志,例如没有加白名单或者是SQL语法错误等等都会在dbproxy层拦截,产生错误日志。分布式
上图的架构就是咱们在作自动化运维的初始部署,咱们但愿可以完成从业务申请到部署完成的一系列连贯动做。性能
二.主要工做优化
咱们平时的工做内容如上图所示,基本包括部署、工单处理、扩容拆分、监控报警处理以及其它任务。设计
一周时间,RD申请30—50个实例在咱们的工做中是很常见的,这时若是没有自动化运维,单纯靠本身手工部署的话,是很消耗时间的;工单处理的工做内容基本就是作一些DDL、表结构的变动,白名单以及其它需求;随着业务的发展,数据量会猛增,因为单机磁盘的存储是有限的,这时咱们就要思考扩容、拆分的问题了,还有一种状况是磁盘可能足够存储,可是你的TPS/QPS单机可能撑不住,这时也要去作扩容;监控报警处理指的是咱们前面提到的SQL错误,白名单没有加以及其它一些报警。3d
其中,部署和工单处理是咱们平常工做的重头,其占比大约为70%。可是这一部分工做很容易自动化,一旦实现自动化,咱们的工做强度会大大下降。代理