编辑手记:嘉年华倒计时2天,今年的嘉年华特别设置了开源专场,为广大MySQL技术爱好者提供分享和学习的平台。我们特别邀请新浪MySQL专家肖鹏老师谈一谈对开源世界的认识。肖鹏老师对开源数据库特别是MySQL研究特别深入,今天我们一起来听专家大话开源。
嘉宾介绍
肖鹏
微博研发中心数据库技术负责人,主要负责微博数据库(MySQL/Reids/HBase/Memcached)相关的业务保障,性能优化,架构设计以及周边的自动化系统建设。专注于数据库的高性能和高可用技术保障方向。
开源之路,我们一起走过
小编
1、很荣幸能采访您,首先跟大家打个招呼吧,请您简单介绍下您自己和您的职业生涯的发展
大家好,我是肖鹏,目前在新浪微博研发中心负责数据库相关的技术工作,目前我们部门是对外提供消息队列,缓存、数据存储和数据分析服务的一个技术平台,我们提供的技术栈包括MCQ、Kafka、MC、Redis、MySQL、HBase、Hadoop、Spark等,目前在拓展新的技术服务。
说起来和数据库结缘这个事情主要还是受到大学期间导师的影响,由于我的导师当时在从事Oracle相关的工作,于是从学生时代就对数据库产生了比较浓厚的兴趣。
至于说到技术成长,我个人的总结是业务驱动,虽然最开始入门的时候一定要通过书籍进行系统学习,但是如果要有长足的发展,还要依托于业务环境,在一个高速发展的业务环境下,个人成长的速度是完全不同的,很感谢微博提供了一个非常好的平台。
小编
2、了解到您对各类的开源数据库都比较有研究,现在开源越来越热,您如何看待开源数据库与传统数据库的未来发展趋势呢?
近些年NoSQL发展迅速,在我们公司内已经可以同传统的关系型数据库分庭抗礼了,在这种情况下,貌似传统数据库的前景堪忧?但是,我其实不是这么认为的,我个人认为数据库的技术选型依赖于特定时间段内的特定场景,并没有一种数据库是“瑞士军刀”可以解决所有问题的。举例来说,对于一个创业公司来说,产品可以在市场上得到认可才是第一位的,在这种时候,更加简单、通用的数据库,比如MySQL就是更好的选择,而不用去考虑HBase等。而如果公司已经发展的较大了,业务形态千奇百怪之后,那么就需要针对不同的需求,进行不同的数据库选型。总而言之,任何数据库都有最适合的场景,并且这个场景还和发展阶段强关联。
小编
3、在您十年的互联网数据库的管理中,您遇到过的最棘手的问题或者印象最深刻的案例可否跟大家分享一下呢?
我个人印象最深刻的案例就是微博的feed体系优化,由于微博最开始是标准的LAMP架构,服务的稳定性和可用性是重度依赖于DB的,但是MySQL在高并发的情况下,一旦前面的Cache命中率有波动就会出现大面积的slow query和延迟发生,当时苦不堪言,做了很多的数据库自身层面的优化和改造都没有妥善的解决,最终还是同业务方共同在整体业务架构层面通过多级Cache的思路最终解决的。自此之后,我就坚信数据库最极致的优化方法就是不读数据库。说笑了,其实是业务逻辑的优化,建议广大DBA同学在遇到性能问题的时候不要光埋头优化,也要抬头看看整体的业务架构是否存在优化的空间。
小编
4、任何一门技术,之所以能广受欢迎,肯定技术本身和时代的发展、需求有一定的契合度,现在开源数据库发展快速,越来越受到广大技术者的喜爱,您觉得在云时代,开源数据库有哪些明显的优势呢?
我个人认为开源数据库最大的优势不在于开源数据库自身提供的各种功能,而是在开源社区的支持下,所有使用者都可以参与讨论,可以找到志同道合的伙伴,这种安全感是促使广大公司选择开源数据库的最重要原因之一。
其次,就是开源数据库的源码是可以直接阅读的,甚至可以直接在上面path自己的解决方案,在这一点上传统数据库的节奏是完全跟不上的,因为每家公司的业务场景都是非常特殊的,即使同一个行业也可能由于关注方向不一样,导致各个公司对开源数据库的使用“姿势”千奇百怪,这种百变的使用方式也是大家选择开源数据库的一个重要原因。
小编
5、作为最受欢迎的开源数据库,MySQL发展快速,今年已经发布了8.0版本,当然每一个版本都会带有很多方面的新特性,那您觉得MySQL在不同版本的更新中,最有价值的改进和更新都有哪些呢?
以5.7来说,我个人最关心的是并行复制和Jason,这也是由于我们的业务环境决定的。而对于8.0来说,个人对group replication和官方的一揽子解决方案非常感兴趣。众所周知,如果要用好MySQL需要大家围绕MySQL 在周边建设一系列的自动化运维系统,这点上Oracle确实领先了很多。所以,我们看到官方也注意到这个方向,据我的了解,官方正在开发MySQL Router,并且会出官方的HA解决方案和监控方案,这是非常好的事情。举例来说,如果我们需要一个proxy层来对MySQL 进行代理形成一个可以横向扩展的cluster,那么现在市面上有很多的选择,比如corba,mycat,atlas等等,但是大家在选择的时候会有一个顾虑,那就是是否可以持续的开发和维护下去,如果有一天不在更新了怎么办? 在这个点上,我相信官方的背书能力是更有说服力的。
百变世界,游刃有余
小编
6、您在MySQL数据库的优化方面一直精心研究,专注于MySQL的高性能,那么在这里您愿意跟大家分享下您的经验吗?您觉得相比较其他数据库,MySQL的优化有哪些不同之处呢?
正好我本次OTN要分享的也是优化主题,我个人认为优化是系统的,分层次的。我们不能只盯着MySQL自身,需要往下看硬件和系统层,也需要往上看应用和架构层。对于硬件、OS系统、MySQL参数等等我们有一些根据经验来的“模版”,所以在这方面各个公司的优化我认为基本处于同一个水平上,但是对于应用和架构的优化就因人而异了,需要根据各个公司的业务场景来指向性进行优化,总的原则就是“兵来将挡,水来土掩”,充分分析业务的真实需求来努力提高性能。在这方面微博有一些的经验,欢迎来我的分场听我给大家聊一聊。
小编
7、随着云时代的全面到来,越来越多的企业正在考虑“上云”,但是云的安全性和QoS等问题同样一直是大家所关注的焦点,对此您有何见解?
对于云来说我认为是一个必然的趋势,但是相对于前端机这种无状态的模块,数据库上云确实挑战多多,在这方面我们正在努力的尝试,目前还没有特别好的经验分享给大家,但是我个人认为,随着前端上云的技术越来越成熟和便捷,后端资源会被倒逼着“适应”上云,在这个过程中,目前还没有一个统一的标准的解决方案,只能靠大家摸着石头过河了。
至于对于云安全性的考虑和QoS问题,我认为安全性是不能假借他人之手的,务必要在自己的控制之下,所有数据全部在云端其实是无法接受的,也许特殊时期可以妥协,但是最终来说数据是企业的根本,需要更加谨慎的对待。而QoS问题这是云企业必然的管控,但是云的高弹性也变相的解决了这个问题,所以我个人认为没太大的关系。
小编
8、您还有其他想要跟大家分享的吗?或者对行业新人有没有什么建议和指导?
对于刚入门的新人来说,最好可以通过书籍来系统的学习数据库的基础,不要靠从网上东搜西搜来积攒知识,否则一定会遇到发展的瓶颈点。这里推荐一本MySQL DBA都知道的书《High Performance MySQL》,强烈推荐通读一边。然后,就是最好可以找一个高速发展的平台,在这种环境下会得到一个比较高的加速度,再说的直白一点,在这种环境下,你会遇到各种故障和性能问题,而解决了这些问题自然而然的就有了丰富的经验了,这是从任何其他地方都学不来的,一定要亲身经历。最后,要有一个开放的心态,积极的同同行进行交流,因为毕竟一个人所处的环境是有限的,很少有人有机会在不同的环境中跳来跳去,那么就需要根据我们的古训“三人行必有我师焉”来学习他人的经验了。同时也不要敝帚自珍,只有积极的思想碰撞才能产生火花,多分享和多听分享绝对利大于弊。
最后,感谢OTN组委会邀请我来分享,在这里我们可以遇到很多使用不同数据库的同行,和这些人交流是一件非常愉快的事情,而且可以认识很多志同道合的朋友,你会发现在数据库海洋里,你并不是一个人独自游荡,你遇到的问题有很多其他朋友也遇到了,而他们的解决方案各有各的特色,这能极大的开阔我们自己的思路。
不止于分享,我们愿与你一起成长!Oracle技术嘉年华,为你量身定制完美成长计划!
今年是 Oracle 技术嘉年华的第六届,围绕“数据、平台与智能”主题,“Oracle 技术嘉年华、MySQL 技术嘉年华,运维嘉年华和实践嘉年华”四大专场合而为一,在云和开源技术迸发的舞台上,演绎一场空前的技术盛宴,精彩不断!
本文出自数据和云公众号,原文链接