4月14-15日在北京珠三角JW万豪酒店,51CTO将举办WOT互联网运维与开发者峰会。WOT秉承专注技术,服务技术人群的理念,自 2012年首次举办以来,历经4届,积累了大量的技术资源,成为广大技术从业者和技术爱好者一致认可的技术分享大会、交流和人脉拓展平台。记者专访了本次大会数据库技术与应用专场的翁宁龙讲师,他分享的内容:《美团数据库自动化运维系统 》。
美团数据库目前机器数大约1300台(包括mysql、redis、mongo)、mysql的日均流量约9亿、数据库中间件的线上使用比率80%+、mysql 5.6+GTID的线上使用比率70%+、DBA日常操作的自动化率达到50%+。面对这样一串可观的数据,不得不让我们对美团数据库的运维产生好奇。接下来,让我们随着翁宁龙走近美团数据库自动化运维系统,进一步了解。
翁宁龙,2015年6月加入美团网,目前负责美团网数据库自动化相关的架构设计以及开发工作。2012年,东北大学研究生毕业加入百度从事数据库自动化相关的设计、开发工作,参与了分布式数据库、私有云数据库以及公有云数据库的相关设计、开发。
翁宁龙在采访中表示,美团自动化运维系统初期仅支持在线的DDL操作、数据库账户申请操作以及数据库相关集群信息查询操作。初期架构,前端将用户相关的操作信息以任务的形式记录在数据库中,服务端有常驻内存的模块去数据库中取任务、操作并进行相关元信息的修改工作。美团自动化运维系统初期的功能比较单一,整个系统缺乏高可用、高性能等方面的设计。
如上图所示,为当前美团自动化运维系统的架构设计:
如上图所示,美团数据库自动化运维系统现在主要支持的功能包括:
翁宁龙表示,除了上述功能之外,还有checksum管理、中间件管理、历史、实时processlist查看、历史innodb status查看、SQL评审等。
当问及美团数据库自动化运维系统在开发过程中遇到哪些问题,又如何应对时,翁宁龙从开发流程和功能具体实现两方面来举例:
针对开发流程来说,开发出来的功能与运维DBA预期不符合
应对:数据库自动化的需求来源:运维DBA平时运维工作中的痛点,通过运维DBA投票的方式决定自动化相关功能的开发;功能先进行原型设计,必须要有运维DBA参与其中;功能开发过程中与运维DBA常沟通,开发完成需要至少2个运维DBA测试OK没问题才能上线;上线之后,DBA有任何使用不舒服的地方,随时跟进修改
针对具体功能实现来说,任务中途失败造成的手动回滚
应对:由于数据库操作很多功能没有办法方便得回滚,所以需要手动回滚,如果失败率高的话,就会给运维DBA带来额外的工作;所以在所有功能上必须加上详细的前置检查和后置检查工作,在操作环境不正确的情况下,直接给运维DBA报错,而不是流程走到一半出错退出。
在采访最后,翁宁龙分享了开发过程中总结的三条宝贵经验,供大家参考借鉴:其一,要与运维DBA和RD保持沟通,明确了解需求;现在可以通过工单的方式,统计最需要的功能。其二,用户在使用的过程中,有什么不舒服的地方,如果修改量不大的话,应该立即修改,因为这样的小需求会很多,但是能够解决大问题。其三,高可用、高性能、高扩展的系统设计,方便运维DBA参与到开发中来,提升开发效率。
【编辑推荐】
WOT2016杨大海:优酷土豆Hadoop集群挑战海量数据与高并发之道
【责任编辑:wangxueyan TEL:(010)68476606】