ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 39844|回复: 69

【IT名人堂】专访架构运维总监刘秋岐:DBA向架构师转型的成功之路

[复制链接]
认证徽章
论坛徽章:
127
目光如炬
日期:2014-12-01 06:00:04火眼金睛
日期:2015-02-01 06:00:04目光如炬
日期:2015-01-26 06:00:04目光如炬
日期:2015-02-16 06:00:03火眼金睛
日期:2015-03-01 06:00:03目光如炬
日期:2015-03-02 06:00:13慢羊羊
日期:2015-03-04 14:53:33目光如炬
日期:2015-07-26 22:00:00目光如炬
日期:2015-07-26 22:00:002015年新春福章
日期:2015-03-06 11:58:39
发表于 2014-12-1 11:34 | 显示全部楼层 |阅读模式

大家好,我是主持人皮皮,欢迎做客IT名人堂栏目。 随着MySQL的不断成熟,逐渐被用于更多大规模的网站和应用了,比如说当前最火的Facebook、淘宝、阿里、兰亭集势、宝宝树这样的大型的网站都在使用MySQL数据库,足见MySQL在稳定可靠性方面,并不会比我们的商业厂商的产品有太多的逊色。本期名人堂我们邀请到了宝宝树(全球第一的母婴社区)网站架构运维总监刘秋岐(社区ID:acmore),他对Mysql在互联网多种业务场景下的设计和优化有着丰富经验,只用了短短五年的时间,就从DBA成功转型成了架构运维总监,让我们一起来看看他的成长之路。




皮皮(Q1):刘总,您好!短短的五年时间内,您从一名搜狗的DBA转型成了宝宝树的架构运维总监,可能在很多人眼里,尤其是对于毕业生而言,DBA和架构师是他们努力奋斗的梦想所在。能否简单介绍下自己?谈谈毕业这些年来您在工作中的收获和体验。


acmore(A1):首先,我想说的是,不管是在学校学习还是毕业后工作,大家要关注两点,就是——成长和目标,男人要不怕苦和累,时时刻刻关注自己是否有“成长”,这很重要。


先谈一下“目标”

我总觉得我是一名幸运儿,在大学大二的时候,大家都在按部就班,上课做作业的时候,有一位我生命中的贵人告诉我,我要有自己一个毕业的时候的目标。那时候07年,刚来北京上大学,坐355公交路过搜狐网络大厦的时候,就想毕业要是能去搜狐上班多好,因为听学长说,那里毕业生起薪就是8K。随后我告诉我的那位贵人,我说我要进搜狐,搞IT。


我的这位master给我了几个方向:网站开发、数据库、安全,他让我选。由于大一在学校搞ACM编程搞的头晕晕的,决定不深入搞开发coding,而当时看数据库的书,觉得数据库很有意思,逻辑层和物理层的东东,整个数据库的逻辑层牵一发动全身,很有意思,就立志要当一位DBA,当时刚好有个大牛DBA叫“牛新庄”,我想我要向他学习。



随后大二就开始各种看数据库书籍,大二下学期又去报了个Oracle培训班考OCP,大三实习(埃森哲、朗讯),大四找工作,一口气拿下百度、搜狗等等的DBA offer。还记得当初的梦想么,于是就去了搜狗,去了搜狐网络大厦,刚好也离母校近,大四搜狗的岁月很快乐。



看着都挺顺利,其实不然。大二大家都在玩的时候,我每周末都要去Oracle培训,每次培训完都要做一遍实验,有时候晚上熄灯了,就到楼道去用笔记本电脑做,没通过就不睡觉。大三埃森哲实习的时候,实习是做埃森哲的Oracle BI的项目,做项目的地点在丰台区,每天早上5点起床,我的室友还在美梦,我要悄悄溜起来,横跨海淀、西城、丰台三个区,晚上下班也较晚,埃森哲项目的辛苦程度大家应该是知道的。大三为了解决上课和实习的冲突,去求老师,给老师讲我自己的想法,我的初衷,还好我的老师们很理解我,给我开“后门”。



依然记得大四上学期9月底,那天北京天气很好,去签了搜狗的offer,一块儿去签的基本都是清华硕士,回学校路上我给我妈妈电话报了个喜,电话里我回头一想,三年前的目标终于实现了,那时候那个开心得跟初恋的心情一样的,哈哈哈。


再谈“成长”

首先,感谢搜狗,感谢第一份工作。当时我入职搜狗搞数据库当DBA,刚好有个DBA叫尹博学离职去了百度(现在是百度DBA架构师),我接了他的位子,承担起搜狗所有数据库的运维和架构设计。正值搜狗快速成长,我经历了数据库集群从8台成长到300多台一个过程,在这个过程中我扛起了整个DBA Team的KPI,比较痛苦,因为开始的数据库架构就主从,没有更多,连keepalived都没有弄,生怕宕机,生怕由于数据库问题导致页面打不开,影响整个Team的KPI,于是周末去哪里都把笔记本电脑背身上。后来不断改进,去做高可用、分库分表、建立DB Server Buffer Pool,再到后来搞DBProxy。



有一天,运维部高级总监告诉我,要时刻关注“成长”。我觉得他说得很对,“成长”很痛苦。上学跟工作是完全不一样的,实习时候的心态和责任跟上班更是很不一样的。DBA是个综合素质要求比较高的职位,首先Mysql很简单,很多东西都需要DBA自己去补充。其次DBA要做的一些事情需要开发配合,那你推动一个改进和上线让开发去实施,开发为什么相信你的方案是靠谱的,开发为你多做了些事儿对人家又能有哪些好处,所以整个工作过程很锻炼人,一年过去,我思考我的成长——技术进步很多,又一年过去,回头再看,心态已经跟毕业时候远远不同了——懂得了聆听,懂得了巧妙的推动,懂得了技术怎么结合实践,懂得了如何斡旋,怎样做好优化,既能节省时间金钱,又能省运维成本。



  有时候我想,搜狗DBA阶段,我完全可以只做好数据库管理员就好,没必要去立项搞数据库的白盒监控、细粒度指标(结合阈值),也完全可以不去搞slowlog挖掘平台什么的,但是我却一直主动去想,怎么才能提高数据库的高可用性,让response time变得更短。提到“成长”,如果今天做的只是重复昨天的,何谈“成长”。后来去了兰亭搞电商也是为了更多的成长,毕竟电商对数据库技术要求更高更锻炼人,再后来去了宝宝树搞架构设计,也是为了更快更好的成长。


最后,回到开头,我们要有“目标”,我们要时刻关注“成长”。




皮皮(Q2):作为最流行的开源数据库软件之一,MySQL数据库软件广为人知了,被甲骨文收购二度易主后,MySQL命运能否被改写?到底是拥抱IOE还是力挺"去IOE"呢?


acmore(A2):MySQL被Oracle收购后,我个人觉得MySQL变得越来越好了。且Oracle也一直秉承着MySQL的开源思想,未有任何MySQL商业化趋势,我觉得还是很赞的。MySQL5.5之后性能大有提升,对事务性支持更好,总体上Oracle是推进了MySQL的发展。


关于去IOE的问题,我觉得还是要具体问题具体对待,不能“一锤子买卖”。在互联网行业,非电商类应用,事务性要求不是非常严格的完全可以使用Mysql,既给老板省了钱,Mysql对大数据量的扩展又比Oracle轻量化,使用Mysql何乐而不为。但是金融系统,比如银行的存取款交易,Mysql虽然支持事务,但是在事务的日志记录以及回滚、审计方面都没有Oracle更加完善,在主从复制方面更是没有Oracle的三种安全的复制模式可供选择,所以某些系统上,使用Mysql远不如Oracle让人放心,所以还必须使用Oracle。最终,必须使用IOE的地方是让IOE更好的去“扬长”,而可以去IOE的地方是让IOE更好的去“避短”。



皮皮(Q3):宝宝树作为互联网行业的领军母婴类电商网站,它的网站架构到底是怎样的?对于月均几百万的用户访问量,如何保障网站不宕机?作为宝宝树网站架构运维总监,您能否从数据库、服务器、中间件、负载均衡等角度为我们分享下宝宝树的网站架构。


acmore(A3):我们宝宝树的网站架构分模块的,有主站系统、广告系统、日志系统、邮件系统、分布式图片系统等。基本还是基于linux+apache/nginx+memcache/redis+php的实现,数据库有Mysql和Mariadb,有使用蓝汛和网宿的CDN。各个子系统的输入都是来自nginx的数据分发,输出都是将数据持久化到数据库里。



在保障网站不宕机方面,我们使每个功能模块都是高可用的。首先前端接入是硬件的互备的负载均衡设备,然后是互备的nginx做反向代理,再下来分登陆和非登录的访问,访问还是apache+nginx,也都是集群化,保证单台或者几台宕机都是对静态数据的访问高可用的,动态访问高可用是靠分布式的memcache缓存集群+Mysql高可用集群实现的,Mysql高可用使用了haproxy和lvs,读写分离(写使用keepalived,读使用lvs下挂mysqlserver),然后能异步减少网站load的都异步到消息队列里,消息队列也是高可用的,所有模块都是高可用的,这样网站就是高可用的,不怕宕机的。



皮皮(Q4):每天有超过30万张家庭照片上传至宝宝树,累积存储达2.1亿张,这些云端照片记录了宝宝成长的每一个精彩瞬间,辣妈们还可以通过语音发帖写日记、如此海量的数据背后到底用到了哪些存储技术?


acmore(A4):首先我们确实用户的上传量很大很大,我们的数据库数据也很大。

数据持久化这里主要分两种,一种是int、char类型数据持久化到数据库集群,一种是图片类型数据持久化到分布式图片存储集群。


我们数据库分功能拆过库,有主站的论坛帖子库,有用户库,有宝宝树孕育app的数据库,有宝宝树时光app的数据库,分库根据业务耦合度来分,这样区分很清楚,减低了调用的逻辑复杂性。用户访问热门帖子可以直接从memcache中取到数据,不会给数据库集群施加压力,用户发帖是写到数据库的,为了提升数据库响应速度,我们数据库使用了大内存+ssd存储介质,使用了xfs文件系统(nobarriar),使用了raid卡和raid技术。



用户上传的图片是存储到我们分布式的图片存储中的,每台分布式图片server存储25T的图片数据,每个图片在分布式图片系统中会有3份的冗余,数据库中只记录用户图片在分布式图片系统中的路径。



皮皮(Q5):在苹果iOS8上线当天,因为可以安装第三方输入法,备受期待的搜狗手机输入法仅用7小时就荣登苹果App Store中国区免费榜第一名,搜狗输入法可谓是人气扶摇直上。您曾经负责过搜狗输入法的数据库设计与运维,能否和我们分享下3亿多用户数据背后的数据库技术?


acmore(A5):搜狗输入法的数据库真的相当庞大,我们是做了分库分表的,存储到64台数据库上。这个数据库集群的关键在于分表那一环上,主要是用户表的分表,最后还是选择使用用户id去分表,对用户id做了MD5值,因为用户id是varchar,做完md5后也是一个varchar,这个varchar每位都是0—F的字母中任意一个,那么当时按照这个串的第一位就能分16张表,首字母为0的为一张表,首字母为A的为一张表,这样0—F能分16张表。后来随着业务增长,发现16张表搞不定了,于是按照第二位字母再分,这下一共分了16x16=256张表(00,01...10,11...F0,F1...),均放到了64台数据库里,这64台数据库32主,32从,保证了高可用。




皮皮(Q6):随着双十一的到来,时下最火的淘宝、兰亭集序等电商网站成为了备受瞩目的焦点,为啥这些电商网站都选择采用MySQL数据库?


acmore(A6):电商网站的系统中很关键的一步是订单系统,一个下订单的操作一定是数据库的一个事物,这个事物里涉及到所买东西的减库存,订单完成回写到用户订单表等,这些都要遵循事物的ACID属性,所以必须使用支持事务的数据库,主流的支持事务的数据库就是Oracle、SQLServer、Mysql。这其中SQLServer多用于WindowsServer环境下,而互联网行业多放在Linux环境下,又加之Oracle是收费的,Mysql是免费的,所以电商网站大都采用Mysql数据库。


其实最早淘宝也是全用Oracle的,但是Oracle的license太贵了,于是淘宝把不那么“贵重”的库变成了Mysql去弄,因为Mysql也是关系型数据库,也支持事务,再到后来淘宝的DBA team越来越强大,他们可以给Mysql打patch,改源码,于是他们把商品库、仓储物流、订单都换成了Mysql,因为Mysql是开源的,免费的,所以Mysql数据库可以大大节省IT成本开销。




皮皮(Q7):对很多屌丝而言,足不出户,逛逛电商网站就能轻松淘到自己想要的商品,只要输入商品名称,很快就能看到对应的商品列表,从查询到购买,整个订单过程很流畅,这些网站的后端是否用到了数据库集群?请结合您的项目经验为我们分享下您在数据库集群方面的设计经验。


acmore(A7):后端肯定使用了数据库集群。数据库集群设计的结果首先要做到高可用,其次做到高性能。高可用的数据库集群技术主要有Mysql主从复制,基于Mysql主从复制的访问ip的keepalived技术。mysql请求也是一个tcp请求,也可以使用基于tcp请求分发的haproxy或者lvs高可用技术。


高性能方面要做好对软件和硬件的优化,软件层面:

(1)、Mysql的参数调优,根据数据安全性要求合理设置innodb_flush_log_at_trx_commit,设置innodb_write_io_threads提升写入性能,设置innodb_flush_method=O_DIRECT,设置innodb_old_blocks_time=1000等等

(2)、文件系统推荐使用xfs,挂载时候设置挂载属性noatime,nodiratime,nobarrier (nobarrier 是避免操作系统的cache)

(3)、关闭 numa=off


硬件层面:

(1)、数据库永远是大内存的好,电商128G内存最低,争取256G内存;

(2)、数据盘可以使用ssd,想要更快可以考虑PCIE-Flash,他们的对比我把图贴出来(见下图),可以数据放在SSD盘上,日志放在普通磁盘上:

      
sas_ssd_pcie.png

皮皮(Q8):从您本人的经历来讲,从搜狗、兰亭集势、到宝宝树,您在成长的过程中有哪些收获?这些互联网企业的文化有何不同?


acmore(A8):搜狗主要业务还是搜狗搜索(输入法带动浏览器往搜索导流量),兰亭主要是对外B2C电商,宝宝树主要是母婴论坛社区+移动app,搜狗是我人生第一家全职单位,在搜狗我收获了高级DBA的技术技能,也收获了较少的管理技能,搜狗的企业文化很好,有一种geek精神,技术氛围很好。兰亭主要做对外B2C电商,最早做婚纱和礼服的品类,后来做了miniinthebox站扩充了很多其他品类,在兰亭收获了电商的数据生产消费模型,收获了怎么依赖数据库去建设好电商的仓库/物流/订单/上新等系统,兰亭有一种航海文化,比较有挑战,电商对数据要求很严格,所以电商的数据要频繁的校对,就算数据库已经完全没问题了,对账程序还得每天跑,确保万无一失。宝宝树是一家有爱的企业,首先它做母婴,这是一份很有爱心的事业,然后还是处于创业阶段,母婴这块儿目前宝宝树是最大的,竞争对手也很多,所以宝宝树也很拼的,app一版发完又一般,母婴电商也是刚做不久目前已经超过母婴电商萌芽宝贝了,在移动互联网的时代,宝宝树要做的还有更多,这对我的挑战也很大,也很锻炼人。



皮皮(Q9):很多关于IT男的传说在江湖流行甚广,但真实生活中的IT男究竟是像神一样存在,还是不过芸芸众生呢?很多IT屌丝男用生命在追赶,“朝九晚五”变成了“朝九晚无”。作为一名IT精英男,您的生活与工作中是否也在上演这样的故事?


acmore(A9):哪里有神一样的存在,哈哈,也得吃饭睡觉呀,但是IT男更多的是去解决产品的需求,解决系统的问题,所以牛的IT男或者geek在解决问题方面确实有神存在一样的感觉(请参见tk教主)。



IT工作加班是必不可少的,这也是这个行业的特色吧,不可避免,尤其是互联网,想想中国互联网也就20年不到,却已经可以频繁去美国上市,跟美国互联网看齐,说明IT互联网的伙伴们还是很拼的,所以加班是家常便饭,但是再累也需要思考提升工作效率,效率上去了,时间就腾出来了,就有时间更好的休息和娱乐生活了,这才是一个好的正反馈系统。上班时间较长必不可免,为了不影响生活质量,我一般充分利用好碎片时间,也会积极去抽时间健身,总之,我觉得时间就这些,规划好执行好就ok了,life is always a tradeoff,自己权衡好就好。


非常感谢刘秋岐为我们带来的精彩分享,希望大家能够积极互动,就自己所关心的话题提问,与大师交流心得。截止12月20日,我们将评选获奖会员五名,赠送技术图书一本。

论坛徽章:
37
蜘蛛蛋
日期:2013-07-03 21:57:09狮子座
日期:2015-07-09 15:08:16狮子座
日期:2015-08-21 15:05:08处女座
日期:2015-07-31 09:17:23狮子座
日期:2015-08-05 16:51:50至尊黑钻
日期:2015-08-13 13:38:12白羊座
日期:2015-08-13 17:07:14知识
日期:2015-08-17 13:27:33白羊座
日期:2015-12-08 16:34:17秀才
日期:2015-12-25 15:31:10
发表于 2014-12-1 12:50 | 显示全部楼层
本帖最后由 will009 于 2014-12-2 12:57 编辑

支持大师分享经验!

使用道具 举报

回复
认证徽章
论坛徽章:
2
蛋疼蛋
日期:2013-01-22 12:50:042013年新春福章
日期:2013-02-25 14:51:24
发表于 2014-12-1 13:24 | 显示全部楼层
方向,坚持很重要。

使用道具 举报

回复
认证徽章
论坛徽章:
87
举人
日期:2015-11-09 11:35:06秀才
日期:2016-12-21 16:55:07ITPUB15周年纪念
日期:2016-10-06 10:54:102017金鸡报晓
日期:2017-01-10 15:39:052016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:30秀才
日期:2016-02-18 09:19:48秀才
日期:2016-02-18 09:11:33处女座
日期:2016-01-27 13:38:05状元
日期:2016-01-26 10:42:18
发表于 2014-12-1 14:08 | 显示全部楼层
看对话,刘总应该是10年毕业的啊,这成长速度羡慕,值得学习。

使用道具 举报

回复
发表于 2014-12-1 15:36 | 显示全部楼层
刘总目标明确,高速成长,IT男的典范,崇拜学习
宝宝树什么时候上市呀
宝宝树主题歌挺好听的

使用道具 举报

回复
论坛徽章:
37
2014年世界杯参赛球队: 加纳
日期:2014-08-08 22:20:352014年世界杯参赛球队:巴西
日期:2014-08-08 22:20:352014年世界杯参赛球队:墨西哥
日期:2014-08-08 22:20:352014年世界杯参赛球队: 智利
日期:2014-08-08 22:20:352014年世界杯参赛球队: 伊朗
日期:2014-08-08 22:20:35itpub13周年纪念徽章
日期:2014-09-30 14:29:38itpub13周年纪念徽章
日期:2014-09-30 14:39:51itpub13周年纪念徽章
日期:2014-10-08 15:22:13itpub13周年纪念徽章
日期:2014-10-08 15:22:13itpub13周年纪念徽章
日期:2014-10-08 15:22:13
发表于 2014-12-1 16:14 | 显示全部楼层

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
8
优秀写手
日期:2014-10-15 06:00:14马上有房
日期:2014-11-12 15:19:532015年新春福章
日期:2015-03-04 14:55:132015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-16 11:00:26秀才
日期:2015-08-03 12:41:59秀才
日期:2016-01-13 12:14:26秀才
日期:2016-02-18 10:08:14
发表于 2014-12-1 17:20 | 显示全部楼层
orangle_lzz 发表于 2014-12-1 13:24
方向,坚持很重要。

是呀  坚持很重要

使用道具 举报

回复
认证徽章
论坛徽章:
19
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44美羊羊
日期:2015-06-29 21:06:54慢羊羊
日期:2015-05-01 17:38:232015年新春福章
日期:2015-03-06 11:58:18沸羊羊
日期:2015-03-04 14:51:52美羊羊
日期:2015-02-28 17:32:28马上有钱
日期:2014-12-14 22:33:02itpub13周年纪念徽章
日期:2014-09-28 10:55:542014年世界杯参赛球队: 瑞士
日期:2014-06-13 11:23:53优秀写手
日期:2014-04-10 06:00:27
发表于 2014-12-1 19:50 | 显示全部楼层
要时刻关注成长,支持大师!

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6328
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:25马上加薪
日期:2017-01-10 16:49:34马上有钱
日期:2017-01-10 16:49:34马上有钱
日期:2014-12-26 15:39:08马上有钱
日期:2014-12-26 15:39:08马上有房
日期:2014-12-26 15:42:55马上有车
日期:2017-01-10 16:49:34马上有钱
日期:2014-12-31 17:16:56
发表于 2014-12-1 20:03 | 显示全部楼层
刘总,你是多个数据库并行学习的???

使用道具 举报

回复
认证徽章
论坛徽章:
2
优秀写手
日期:2014-08-22 06:00:03慢羊羊
日期:2015-03-11 16:58:50
发表于 2014-12-2 10:08 | 显示全部楼层
我刚大学毕业,从大三开始便一直自学oracle,刚毕业找不到dba的工作,现在先在一家医疗公司做oracle开发,每天还会抽些时间自学dba,毕竟那才是我最初的梦想。虽然现在待遇还不错,可是依旧放不下那份执着。看了上面的访谈,我更坚定自己的信念了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表