服务器 频道

DTCC2016去哪儿网数据库总监周彦伟专访

  【IT168 专访】从人人网到去哪儿网,在多年的MySQL运维过程中,经历了各种各样的数据库架构设计。一直在为提升MySQL的服务能力而努力。爱数据库,也爱运维——他就是周彦伟。

  周彦伟一直钟爱着MySQL数据库运维工作, 热衷于大规模数据库管理、数据库调优和数据库架构,在业余时间还担任了ACMUG (中国MySQL用户组)主席,负责组织MySQL线下技术交流,线上技术推广等工作,非常敬业,在圈内有着人尽皆知的好口碑。目前就职于去哪儿网,担任数据库总监,主要负责公司内的MySQL,Redis以及其他一些数据库系统平台的构建,维护和优化。不久前还被Oracle官方授予了Orace ACE Director的荣誉称号。可以说周彦伟与数据库有着割不断的缘分。

 DTCC2016去哪儿网数据库总监周彦伟专访

  ▲去哪儿网数据库总监 周彦伟

  作为2016第七届中国数据库技术大会专家顾问团成员之一,我们有幸采访到了他,对于DTCC来说,周彦伟可以说是老朋友了,自2010年第一次举办至今,周彦伟连续六界给予了大力支持,并且多次在大会上担任演讲嘉宾,而此次的采访同样给力,相信通过周彦伟多年来的经验总结与分享,大家会有不同程度的提高。

  大环境下,如何更好的运用数据库?

  在全民迎接数据技术(Data Technology)时代的今天,大家对数据认可和重视的同时也提升了数据库在整个技术环境中的重要性,同时也延展了数据库的含义。随着互联网的蓬勃发展以及业务类型的不断拓宽,数据存储的需求多种多样,在实际的成产环境中,往往一种传统的数据库是不能满足要求的,如何才能更好的运用数据库呢?

  “这就需要DBA根据实际的业务需求和场景特点,选择合适的工具以满足不同层次的需求。谈到需求,可以分为数据量大小层面的,访问效率层面的,数据结构层面的等等。所以在实际工作中,我们会把目前所用到的MySQL,Redis,HBase以及PostgreSQL等一概称为数据库系统。用不同的工具和不同的架构解决不同的问题,灵活运用,随需而变,这才应该是互联网环境下的数据库运用之道。”周彦伟如是表示。大数据环境下,数据的种类和规模都越来越多,对数据库的需求也变得多样化了,一种数据库形式或者单一架构一般都很难满足业务的需求,因此在选型时,他提倡多结合自己业务的需求和数据库的特性,随需而变,毕竟适合自己的才是最合适的。

  MySQL为什么如此受欢迎?

  对于周彦伟来说,在过去的2015年里最重要的事是MySQL5.7的发布,MySQL5.7是具有划时代意义的重要版本更新。在性能和功能上都有了巨大的提升,这使MySQL在开源数据库市场上同其他数据库的竞争处于有利地位,有助于MySQL的进一步发展,也使得MySQL在实际生产环境中能适应更多的需求。可以说,到目前为止,MySQL应该算的上是最受欢迎的开源数据库,很多人都问为什么?周彦伟从五方面解读这个问题:

  (1) 功能

  MySQL典型的插件式存储引擎的特点,可以让MySQL使用多种存储引擎。而InnoDB的引入让MySQL拥有了几乎关系数据库应该具备的所有特征,这为MySQL的流行奠定了最坚实的基础。

  MySQL基于Binlog的replication功能,让用户可以很方便的扩展实例,并在扩展的基础上搭建各种高可用和分布式方案,这让MySQL满足了大部分用户的可用性的需求,在早期的数据库方案中,能既方便又廉价的实现这个功能的开源数据库产品是很少的。

  MySQL很早就官方提供了各种附带的维护工具和开发程序包,不仅可以帮助DBA很方便的管理数据库,而且可以让开发人员通过多种程序设计语言来连接和操作数据库。

  MySQL是单进程多线程工作,对用户的连接是用内部线程来管理的,这降低了连接的开销,对于没有连接池的访问也能很好的支持。

  MySQL支持大部分最常用的标准SQL语法,自定义的SQL也通俗易懂,很容易让程序员上手。

  (2) 官方

  MySQL在被Oracle收购之后,到目前为止并没有看到官方有制约其发展的动作,与此同时,我们看到在Oracle手里,MySQL5.6,MySQL5.7不管是在功能上,还是在性能上都取得了长足的进步与发展。同时,官方也提供了MySQL Cluster,MySQL Router,MySQL Fabric,MySQL HTTP Plugin等重量级的外围工具。Oracle发挥了其在数据库领域的绝对技术权威的作用,为MySQL的进步做了很大的努力。在这样一个强有力的官方背景的支持下,我们有理由相信MySQL会越做越好。

  (3) 第三方

  作为历史久远的开源数据库,MySQL还有很多实力雄厚的第三方支持平台,最典型的莫过大家熟悉的Percona,它不断紧跟官方版本,并在此基础上做了很多优化和升级,同时还提供功能强大的工具包,让MySQL更易用,更实用。Percona-Toolkit应该是MySQL DBA最熟悉的第三方工具包了,它几乎称得上数据库维护中的瑞士军刀。

  (4) 互联网

  过去十年是MySQL迅速发展和普及的十年,同时我们也看到过去十年也是互联网发展的黄金时期。特别是随着电子商务,社交网站,O2O与互联网金融的发展,互联网应用对数据库的依赖和需求越来越强烈,同时数据库成本也是需要考虑的重要因素。综合多方面因素,MySQL被推到了前台,不管是Google,facebook还是淘宝,腾讯,百度都选择MySQL作为自己的主要存储数据库。这些互联网大鳄的大规模使用,不仅促进了MySQL技术的发展,也为MySQL社区培养了大批优秀的技术人才,直接促进了MySQL的发展。

  (5) 社区

  MySQL用户社区的蓬勃发展,也为MySQL的流行与受欢迎做出了不可磨灭的贡献。社区的壮大,不仅很快解决了很多用户在工作中面临的问题,让大家使用MySQL没有后顾之忧,也培养了一大批MySQL爱好者和DBA。MySQL人才群体的壮大,反过来也促进了MySQL的发展和普及,这已经形成了良性循环,互相促进,不断发展。在国内,中国MySQL用户组(ACMUG)在MySQL的推广和普及上做了非常大的贡献,非常感谢。

  一个优秀的DBA是如何养成的?

  我们知道DBA承载着一个重要的角色,有着特殊的职责和使命,一个优秀的DBA其实是非常难得的,作为一个DBA来说应该具备怎样的能力呢?对于DBA的要求,周彦伟精辟的总结为“DBA精神”,而责任心、服务心、沟通心、学习心,进取心和分享心这六大体现正是DBA精神的基石所在。

  DBA精神是责任心体现。

  维护数据库数据的安全和完整是作为管理员的首要责任。在管理数据库的过程中,作为一个DBA,要把数据库看做自己的财产,自己的儿女,自己的身体的一部分。此种的职责,需要你像呵护自己眼睛一样去照顾你所维护的数据库。时刻去想,有没有做应该有的备份,有没加应该有的监控,有没有做必须的安全权限限制。一旦出问题,有没有第一时间去分析和解决问题,这就像你的自己的眼睛,一旦出现红肿病态,多少人会视而不见?

  DBA精神是服务心的体现。

  现代互联网对DB的需求,是需要支撑业务持续稳定的运行和源源不断的变更,这要求DBA有7*24小时服务精神。这是一个服务性职业,需要随时随地响应来自各方面的各种需求。其一,包括人的需求,业务要发展,DB就会有变更,只有DBA与开发人员紧密配合,才能顺畅高效地完成工作。其二,包括事的需求,DB是个动态的系统,不断的运转就会不断的面临新问题,机器故障,磁盘报警,内存不足,CPU过载等等。这是个脆弱的系统,它不会对DBA的迟钝有半点仁慈,一旦有问题,任性的宕机是必然的结果。其三,包括心的需求,DBA应该出自内心地主动去对DB做不断的优化,这种优化,可以在结构上,可以在架构上,可以在业务逻辑上,关键之处在于,你有没有心。说得通俗一点:“没事找事儿”。

  DBA精神是沟通心的体现。

  DBA的工作,不是封闭的科学研究和孤傲的英雄主义,不管是主动的优化,还是被动的接受任务,都是需要与人做不断的沟通与交流。假如你不懂业务流程,不知道数据的来龙去脉,轻重缓急,那就谈不上数据库表的设计和优化。而数据库的优化,往往最大的进展是来自对业务逻辑的优化。这需要运用良好的沟通心态和技巧,深入了解业务流程和架构。与人沟通,是DBA获取知识和信息的主要途径,需要做到能与人沟通和会与人沟通。生活工作中,人的个性是千差万别的,面对形形色色的沟通对象,充分调动对方的积极性,进行愉快有效的交流也是DBA需要掌握的一门技术。

  DBA精神是学习心的体现。

  DB在技术体系中是一个承上启下的中间环节,它运行在物理硬件和操作系统之上,同时承载着上层各种各样的业务逻辑的调用。对DB的运维和管理,不仅仅需要掌握数据库自身的基础知识,要保证这个系统的稳定和优化,就需要知己知彼,去了解它上下游的知识和特性。所以,一个优秀的DBA,需要了解你所使用的硬件,这包括磁盘的特性,网络的布局,内存的使用,CPU的处理能力等等;需要了解DB所运行的操作系统的知识,它是怎么调度IO的,怎么管理内存的,怎么优化文件的。需要了解上层业务是怎么调用数据库的,SQL怎么写的,看懂了业务逻辑的程序才能明白有的SQL是不是多余,某些SQL是不是可以优化。我们看到在MySQL官方和MariaDB官方,都已经针对硬件开始在官方源码的基础上做自动优化了,同时MySQL官方也提供了自己的集成于业务端的高可用方案,这都是开源数据库的进步发展的必然结果。同时,由于开源数据库的盛行,针对数据库自身代码的学习和研究,也逐渐成为优秀DBA的敲门砖了。

  DBA精神是进取心的体现。

  随时发现问题,分析问题,解决问题。通过问题现象,依赖自己的经验和知识,同时探索未知的知识去解决现实的问题,在这个过程中,也是自己积累经验和不断成长的过程。相对而言,解决问题本身并不重要,重要的在此过程中探求解决问题的方法和所获取的经验,DBA的职业优势也在于此,同时,主动花费心思与精力去不断追求问题的优解和技术的极致,这也是DBA应尽的职责。

  DBA精神是分享心的体现。

  这些年,我们一直在倡导做一件事情,那就是提倡DBA,特别是开源社区DBA的持续做技术分享。我们做了CMUG,或者叫ACMUG,全称是 China MySQL User Group。A你可以认为是All,或者About,或者是Active,它代表了所有关心MySQL及其相关技术的积极参与分享活动的人,在过去的数年里面,ACMUG可能已经组织了上百场技术分享,分享者都是工作在一线的DBA或者数据库技术爱好者,通过参与这个活动,大家都切切实实的得到收益,个人在技术上也取得了巨大的进步。通过分享,大家学到了技术,开拓了视野,展开了思路,当然也交到了朋友。我们希望能通过这样的活动,把DBA精神永续下去,让更多人受益,让更多技术普及。

  作为老朋友,对于此次第七届中国数据库技术大会周彦伟依旧非常看好“我曾经建议一位朋友去写一篇有关数据库发展的文章,文章的题材就是看历届中国数据库技术大会的各种演讲的内容,可以看到我们从第一届开始带着对数据库青涩的理解一路走来,到现在为止,已经轻车熟路,并且在数据库技术上百花齐放,这是让人十分欣喜的景象”,他表示:”DTCC真正见证了中国数据库技术的发展。到现在为止,大数据与云的结合,已经成为所有人的共识,这也许是百花齐放之后的开花结果了,期待在这届大会上能看到更多的收获之果。技术运用已经超出了单一的品种门类了,不管是Oracle,还是MySQL,还是PostgreSQL,还是Hbase,所有的能提供优秀解决方案去更好的支撑业务需求的数据库技术都是我们所期待看到的。”

DTCC2016去哪儿网数据库总监周彦伟专访

  2016第七届中国数据库技术大会(DTCC)将于2016年5月12日-14日召开,盛况空前不容错过,更多精彩内容请访问DTCC 2016官网:http://dtcc.it168.com/


0
相关文章