美团数据库自动化运维系统
美团网高级DBA 翁宁龙
一个真实的故事
—美团自动化运维系统发展的心路历程
主人公介绍
我
2012年毕业成为⼀一名DBA
2015年作为开发DBA加⼊入美团⽹网
小美
⼊入职第⼀一天
公司某重要业务的RD
深度DB依赖者
小团
⼀一线的运维DBA
上线
变更
拆分
报警处理
……
剧情开始
小团,帮我新搭建⼀一个
数据库集群呗;
最好今天能搭好
自动化
解决重复的⼯工作
问题来了?
对于数据库自动化运维系统都有哪些要求呢?
l ⽅方便的操作界面
l 接⼝口化:⽅方便RD的程序接⼊入
l 操作要求⾼高成功率
l 操作要求可以看到详细的执⾏行过程
l 报错信息直观、定位问题⽅方便
l 通知机制
l 最最重要的是:快!
整体架构
�35�1,
APIP
��(������(����
��
*0
�
A-� ������
��1,
zookeeperI6
*0�����
�%!I6
$)'�1,
��&4�$)
$)4�"
8 ������9
A- .7 �)/ .7
RabbitMQ !
�
�
��
����� �
�
������
� �
�
��������
����
TaskControl
����
"��
���
����#/��
��#/��
Celery��
Celery�
�
(1)FE
(2)
(3)
(4)
集群搭建需求的解决
集群搭建需求的解决
RD and DBA各种自动化需求的解决
l 在线的DDL和DML
l 在线的账户申请
l Processlist和InnodbStatus
历史值的查看
l 问题的快速响应、解决
l SQL评审
l 扩容
l 升级
l 资源利用率
l 集群管理:流量上
下线、主从切换
l 数据库实时状态查看
在线的DDL和DML
�-D)���,%7!
opweb autoddl-lib
1 mysql�8
*�mysql�8
*��
#��4:5�
,3TL
2TL
,"TL
,3TLD)(/��������$0 *�5�
job_consumer
+'(/
*�mysql�8
������
9
����-
�-����
�����
�- �
在线的DDL和DML
在线的DDL和DML
RD自助账户申请
Processlist & InnodbStatus历史查看
RD问题的快速响应与解决
(1)客服功能:RD方便找到其接口DBA
(2)工单功能:需求提交入口
SQL评审
扩容
其他
l 资源利用率管理
l 集群管理(流量上下线、主从切换)
l 数据库实时管理(数据库集群实时情况查看,连接实时操作)
整体效果
聊聊坑和经验
(1)开发流程:开发出来的功能与运维DBA预期不符合
->明确需求、静态原型、DBA审核、开发、DBA参与测试、上线
(2)功能实现:任务中途失败造成的手动回滚
->必要且丰富的前置、后置检查
(3)需求来源:现在可以通过工单的方式,统计最需要的功能
(4)用户体验:用户在使用的过程中,有什么不舒服的地方,如
果修改量不大的话,应该立即修改,因为这样的小需求会很多,但
是能够解决大问题
(5)系统架构:高可用、高性能、高扩展的系统设计,方便运维
DBA参与到开发中来,提升开发效率
广而告之
• 机器数约:1000+
• mysql的日均流量约:100亿
• 数据库中间件的上线比率:80%+
• mysql + GTID的线上使用比率70%+
Q &A