转载

WOT2016翁宁龙:美团数据库自动化运维系统

WOT2016翁宁龙:美团数据库自动化运维系统

4月14-15日在北京珠三角JW万豪酒店,51CTO将举办WOT互联网运维与开发者峰会。WOT秉承专注技术,服务技术人群的理念,自 2012年首次举办以来,历经4届,积累了大量的技术资源,成为广大技术从业者和技术爱好者一致认可的技术分享大会、交流和人脉拓展平台。记者专访了本次大会数据库技术与应用专场的翁宁龙讲师,他分享的内容:《美团数据库自动化运维系统 》。

作者:王雪燕 来源:51CTO | 2016-04-05 17:51

51CTO首届中国APP创新评选大赛正在招募>>

美团数据库目前机器数大约1300台(包括mysql、redis、mongo)、mysql的日均流量约9亿、数据库中间件的线上使用比率80%+、mysql 5.6+GTID的线上使用比率70%+、DBA日常操作的自动化率达到50%+。面对这样一串可观的数据,不得不让我们对美团数据库的运维产生好奇。接下来,让我们随着翁宁龙走近美团数据库自动化运维系统,进一步了解。

【受访人简介】

WOT2016翁宁龙:美团数据库自动化运维系统

翁宁龙·  美团网高级DBA

翁宁龙,2015年6月加入美团网,目前负责美团网数据库自动化相关的架构设计以及开发工作。2012年,东北大学研究生毕业加入百度从事数据库自动化相关的设计、开发工作,参与了分布式数据库、私有云数据库以及公有云数据库的相关设计、开发。

美团数据库自动化运维系统初期架构及后期的演进

翁宁龙在采访中表示,美团自动化运维系统初期仅支持在线的DDL操作、数据库账户申请操作以及数据库相关集群信息查询操作。初期架构,前端将用户相关的操作信息以任务的形式记录在数据库中,服务端有常驻内存的模块去数据库中取任务、操作并进行相关元信息的修改工作。美团自动化运维系统初期的功能比较单一,整个系统缺乏高可用、高性能等方面的设计。

WOT2016翁宁龙:美团数据库自动化运维系统

如上图所示,为当前美团自动化运维系统的架构设计:

  1. 用户在前端所有的数据请求都通过API层获取,所有的操作都通过API层提交;API层除了系统使用外,还为公司其他团队提供方便的接口化、服务化支持。
  2. 用户的所有请求都由任务管理模块进行消费,任务管理模块获取任务之后,找到对应的任务执行者,将任务抛给任务执行者,即反馈前端任务提交成功。
  3. 任务执行者托管于OS,负责单元任务的执行,并将执行过程中相关的数据记录在数据库,展示到前端,方便用户查看任务进展情况,任务执行结束,任务单元退出。

美团数据库自动化运维系统支持的功能展示

如上图所示,美团数据库自动化运维系统现在主要支持的功能包括:

WOT2016翁宁龙:美团数据库自动化运维系统

  1. 总览:查看数据库集群的实时情况,相关报警信息,慢查询等
  2. 工单:方便RD提交数据库问题,引导RD进行问题解决
  3. 系统公告&最新动态:发布数据库相关的重大变更、最新通告等
  4. 初始化:新集群的搭建工作(包括mysql和中间件)
  5. 扩容:给数据库扩容从库
  6. 数据库创建:建库&添加账号
  7. 自助表变更:在线的DDL和DML
  8. 备份管理:数据库集群的备份相关的操作

翁宁龙表示,除了上述功能之外,还有checksum管理、中间件管理、历史、实时processlist查看、历史innodb status查看、SQL评审等。

美团数据库自动化运维系统开发过程中踩过的坑

当问及美团数据库自动化运维系统在开发过程中遇到哪些问题,又如何应对时,翁宁龙从开发流程和功能具体实现两方面来举例:

针对开发流程来说,开发出来的功能与运维DBA预期不符合

应对:数据库自动化的需求来源:运维DBA平时运维工作中的痛点,通过运维DBA投票的方式决定自动化相关功能的开发;功能先进行原型设计,必须要有运维DBA参与其中;功能开发过程中与运维DBA常沟通,开发完成需要至少2个运维DBA测试OK没问题才能上线;上线之后,DBA有任何使用不舒服的地方,随时跟进修改

针对具体功能实现来说,任务中途失败造成的手动回滚

应对:由于数据库操作很多功能没有办法方便得回滚,所以需要手动回滚,如果失败率高的话,就会给运维DBA带来额外的工作;所以在所有功能上必须加上详细的前置检查和后置检查工作,在操作环境不正确的情况下,直接给运维DBA报错,而不是流程走到一半出错退出。

在采访最后,翁宁龙分享了开发过程中总结的三条宝贵经验,供大家参考借鉴:其一,要与运维DBA和RD保持沟通,明确了解需求;现在可以通过工单的方式,统计最需要的功能。其二,用户在使用的过程中,有什么不舒服的地方,如果修改量不大的话,应该立即修改,因为这样的小需求会很多,但是能够解决大问题。其三,高可用、高性能、高扩展的系统设计,方便运维DBA参与到开发中来,提升开发效率。

【编辑推荐】

  1. WOT2016黄继:小米运维发展中的关键节点有哪些?
  2. WOT2016吴兆松:Zabbix监控自动化的未来如何发展
  3. WOT2016彭哲夫:科班出身开发者对运维人员的期许
  4. WOT2016刘紫千: 云堤是互联网安全的捍卫者
  5. WOT2016卢学裕:小团队如何玩转大数据
  6. WOT2016杨大海:优酷土豆Hadoop集群挑战海量数据与高并发之道

【责任编辑:wangxueyan TEL:(010)68476606】

原文  http://developer.51cto.com/art/201604/508316.htm
正文到此结束
Loading...