时光荏苒,五年陈酿
2012.9.20,本来想说这一天没什么特别的,翻了一下万年历,居然还是国际爱牙日。上周体检的报告还没出来,但现场的结论是除了牙结石,其他都还好,去年体检的血压偏高/轻度脂肪肝/耳耵聍等问题,今年都消失了,看来要找个时间去尝试下洗牙,争取明年的体检结果能更健康点。
好吧,其实我是想说,这一天,终于成为了阿里巴巴五年陈。从进入淘宝的第一天,一年香,三年醇,五年陈的说法就一直萦绕在耳边。还记得一年香的时候礼物是一个印着小蚂蚁的杯子,貌似当年的蚂蚁已经进化成了如今的淘公仔,蚂蚁标记已经从各种地方慢慢消失。其实当年经常唱响的一首小蚂蚁大淘宝的歌依然还在记忆深处吟唱,那时候的淘宝真的非常草根,而今这种感觉可能随着时间感觉已经冲淡了不少。那时候的淘宝DBA团队,兵少而精,数据库都跑在高富帅的IOE(IBM小型机/Oracle数据库/EMC存储)上,现在回首整个就是一青葱岁月,但第一年的收获真的非常大,也经历过至今想起来还浑身冒冷汗的故障。
在阿里有一种说法,经过三年的酿造以后,才是真正的阿里人。或许只有真正到了三年才能体会的这句话背后的意义。互联网是一个快速变化的行业,互联网的公司和团队,能保持三年的稳定就相当不容易了。所以在阿里呆上三年,大部分人可能都会碰到团队的变化,即使团队稳定,也会壮大许多了。经历过风雨,心态上才能真正的成熟。而我的三年醇记忆中最深的,则是淘宝和阿里妈妈的整合(2009.9.4)。在淘宝DBA团队按照舒适的节奏成长了两年,终于迎来了最大的一次变化,成立了大淘宝技术保障部,顶头老板换人了,同时也把还在稳步推进MySQL线上应用的团队节奏突然提高到了集团战略级的地位,也就是现在外面闹得沸沸扬扬的所谓“去IOE”。虽然这个事情有很多的争议,但从淘宝的发展历程来说,这个事情一定会发生,只是节奏的快慢而已。到2009年的时候,淘宝的数据库基本完成了垂直拆分,商品,交易,用户,店铺,评价,收藏,物流等核心业务都已经运行在单独的数据库,这得益于前台应用的服务化,每个数据库前面基本都有了自己的服务中心,其他业务则通过服务器中心和数据库交互,相当于在数据库前面加了一层业务中间层,这不但帮助数据库顺利完成了垂直化拆分,也为后面的水平拆分打下了基础。淘宝应用的服务化是个有着非常长远眼光的决策,直到今天,淘宝交易平台的主要架构依然受益于此。而这个服务化的实现,@毕玄 搞的HSF绝对功不可没。可能从今天很多架构师们的眼光来看,觉得有一些不便和缺点,但如果能真正的去理解当时淘宝的现状和业界技术的发展,相信不但能理解HSF的架构选择,也能够给HSF后续的发展做一些改进的建议。
翻了一下blog,发现最早一篇关于MySQL的文章是2008.3.14,非常简单,只是了解了下InnoDB引擎的一些参数,其实也差不多是这个时候,淘宝DBA团队开始研究引入MySQL作为Oracle数据库之外的另外一种选择,还记得第一个线上用MySQL的应用是淘宝画报(这个应用今年6月份已经下线,进化成了顽图)。当时对于使用MySQL在一些开发团队中还是有一些阻力的,还记得曾经有人问过,DBA都是做Oracle的,MySQL出了问题你们能搞定么?所以当时面向全国到处招有经验的MySQL DBA,也面试了不少,但是最后因为各种原因都没有进来,后来倒是一来二往都比较熟悉了,现在idata技术沙龙有很多朋友的支持,其中就有不少当年认识的朋友,哈哈。既然招不到MySQL高手,只好自己培养新生力量,于是,2008年应届生@陶方 成为第一个专职MySQL DBA,2009年应届生@苏普 也很快成为了主要力量,而老牌的Oracle DBA们也在迅速的转型,2009年的时候MySQL数据库已经初具规模了。另外,从2007年起就开始和当时的架构团队@菲青,@华黎 畅想的数据中间层TDDL终于也逐渐靠谱起来,虽然还没有真正成熟(在我的定义里,TDDL直到动态数据源稳定应用以后,才算是挠到痒处,当然,成熟不等于就完美了,直到今天还有值得改进的地方,尤其是对于DBA的运维简化方面),有了前面说的服务化,还有数据中间层,以及一年多MySQL线上运行的经验,才有了“去IOE”的基础,而“去IOE”的需要,除了成本节约,更重要的,是垂直拆分做到尽头以后,业务压力还是爆炸式增长带来的水平拆分的需要,以及淘宝整体对于开源的拥抱和投入。
到今年,“去IOE”整体上已经接近尾声,核心数据库系统已经全部跑在MySQL上,而且去年做为动作最大,压力最重的一年,同时还做到了线上数据库无P1级故障的100%可用(P2故障也只有1起),DBA团队和各兄弟团队一起付出了120%的努力,这绝对是值得骄傲的一件事情。有人说DBA不会写代码,算不得什么有技术含量的工作,这是把技术做了一个狭隘的定义。技术是要为业务目标服务的,运维,尤其是追求高可用性的运维,技术含量绝对不比写代码低,这只有真正的去做才能体会,隔岸观火指手画脚永远是容易的。当然,DBA不会写代码绝对也不是一件值得炫耀的事情。DBA团队必须要会写代码,尤其是运维上规模数据库的DBA团队,不会写代码,之后可能只能累死。作为公共服务部门,人数不可能随着业务开发人数的增长或者机器数据的增长而等比例扩充。为了应对机器的增长,需要运维规划化和自动化;为了应对开发人数的猛增,需要想办法做到平台化和自助化。而这些,都需要有有运维开发的能力。
进入到第五个年头,一直都在淘宝DBA团队,一起成长,一起战斗,在这里留下了太多的回忆,但天下没有不散的筵席。2012.6.1,经过一段时间的思考和纠结,这一次是创造变化,主动转岗到了一淘无线技术团队,放下了DBA的标签,到开发团队从头再来。还记得给@后羿 和@振飞 的转岗申请邮件是4.20发的,那天离五年陈刚好还有五个月。有一丝不舍,也有一点遗憾,没有在DBA团队站完五年的最后一般岗,但既然要迎接新的挑战,早一点进入前线也是值得付出这些代价的。加入无线近四个月来,五年前刚加入淘宝时的激情又开始回来,新的团队,新的同事,依然像五年前的淘宝一样,带着草根的气质,喜欢这种简单快乐。
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:NinGoo 来源: NinGoo.net
- 标签: 职业生涯
- 发布时间:2012-09-30 15:31:14
- [55] 如何拿下简短的域名
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [53] Oracle MTS模式下 进程地址与会话信
- [53] Go Reflect 性能
- [51] android 开发入门
- [49] 图书馆的世界纪录
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [46] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑