阿里巴巴集团去IOE运动的思考与总结
【导读】
原文发布于2012年5月7日
预计2012年5月7日,阿里巴巴集团将正式公布技术团队合并的事情,涉及的部门:阿里巴巴运维团队、阿里巴巴DBA团队、阿里巴巴平台技术部、大淘宝运维团队、大淘宝DBA团队、大淘宝核心系统部、阿里云计算运维团队、阿里云计算DBA团队和阿里巴巴集团安全团队,从一些可以猜测到的信息分析,上述技术团队合并之后,大淘宝的员工将成为相关技术团队的掌舵者。
“去IOE”政治运动是阿里巴巴集团首席架构师某博士主导的,阿里巴巴和淘宝的技术团队内部非常有影响力的XX负责执行,合并之后阿里巴巴集团内部所有子公司去IOE运动,将继续深化。个人就淘宝、阿里巴巴和支付宝去IOE事件,以局外人的角度进行利弊分析,希望能达到给明白真相和不明白真相群众,一个合情合理中立的分析。
【正文】
“淘宝和阿里巴巴去Oracle化事件,引发数据库技术人员大讨论”一文,只是把对阿里巴巴、淘宝等子公司内部非常熟悉的人士观点和建议分别整理出来,以及还有部分外部人士的猜测和分析,本篇文章我们从几个不同的角度综合分析阐述去IOE事件对阿里巴巴、淘宝等公司的内部DBA团队价值和意义,对阿里巴巴、淘宝等公司的业务和成本影响,对互联网行业的DBA从业者的影响…
(一) 去IOE事件中的IOE名词解释
(1) IOE事件中的I是代表IBM的缩写,也即去IBM的存储设备和小型机,主要是小型机,阿里巴巴、淘宝和支付宝主要是使用了IBM的小型机,IBM存储设备相对较少;
(2) IOE事件中的O是代表Oracle的缩写,也即去除Oracle数据库,采用MySQL和Hadoop替代的解决方案,Oracle RAC将会被Hadoop集群替代,其阿里巴巴B2B使用的GreenPlum集群,也将会在阿里巴巴集团完成运维团队和DBA团队合并之后,采用Hadoop集群解决方案替代;
(3) IOE事件中的E是代表EMC2,阿里巴巴B2B、淘宝和支付宝都是用大量EMC2的存储设备,也有少量DELL的存储设备,主要是EMC2的存储设备性价比高;
(4) 阿里巴巴集团内部最早进行MySQL数据库替代Oracle数据库支持数据服务的子公司是——阿里巴巴B2B用PC Server替代EMC2存储设备,替代IBM小型机。不过替换节秦是被合理控制的,因多方面的原因内部也没有那么雄壮的决心。后来,淘宝也开始进行MySQL数据库的应用摸索和推广,并且高调宣传去IOE事件,最后造成网络上满城风雨。
(二) 去IOE对淘宝、阿里巴巴B2B和支付宝等公司的价值
阿里巴巴集团与甲骨文公司购买的Oracle数据库是三年无限制性的License,总销价是三年X千万人民币(备注:不能告诉大家具体多少钱,属于商业机密, 望理解!),这部分的开销对整个阿里巴巴集团而言并不算什么,花费最大地方是Oracle数据库的座驾,也即主要是IBM小型机和EMC2存储设备的购买费用和保修费用。
随着淘宝、支付宝和阿里巴巴B2B的注册用户数激增,用户产生的数据也越来越多,即使采用冷热隔离的方式也解决不了大容量数据且大并发的难题,淘宝启用了全亚洲最大的Oracle RAC集群,阿里巴巴B2B中文站的数据量也因数据量大和业务要求,每年早上08:00-09:30之间CPU保持98%的使用率,LOAD也超高,即使更换存储设备不久也会再次出现这样的状况。
互联网行业公司迅速发展非常快,集中式数据库系统会逐渐成为业务的瓶颈,不得不面临又喜又忧的事情——花费重金升级硬件,这在企业高速崛起的时候,可能不太会在意成本;若是企业占有市场份额足够大、步入平稳发展阶段或企业资金出现问题的时候,就不得不考虑企业的成本,考虑采用满足企业业务发展需求、更加省钱的数据库软硬件解决方案。
大淘宝、阿里巴巴B2B和支付宝等公司,98%以上的软件系统和业务都是采用Oracle数据库提供数据服务,电子商务领域阿里巴巴集团旗下公司拥有的总数据量和用户量是其他任何公司无法比拟的,DBA团队面临的压力和挑战也是其他公司无法比拟的,肯定要比互联网其他公司更早关注此方面的资金需求和业务双重压力。
阿里巴巴集团使用License最多的子公司是大淘宝,2010年及之前,还高调地要部署更多的Oracle RAC数据库集群。但是在阿里巴巴B2B将中文站压力和数据容量最大的Offer数据库,成功从Oracle数据库+IBM小型机+EMC2存储设备,迁移到MySQL数据库+PC Server的模式;以及大淘宝核心系统部门招聘到@淘宝褚霸、@淘宝丁奇等能修改MySQL源码和Hbase源码的人才;其他产品线使用MySQL数据库提供服务,也使大淘宝的MySQL DBA的经验和技术大幅提高,大淘宝也就有能力把产品线的Oracle数据库迁移到MySQL数据库提供服务。采用Oracle数据库支持的数据分析业务,则采用Hadoop集群替代,这是给核心系统部和DBA团队建功立业的大好时机,同时能解决大淘宝业务系统的压力和瓶颈,也能帮助大淘宝降低资金投入。搭配开发完善的自动化系统,可以大大简化数据库的管理成本,也能减少DBA团队的工作量。
阿里巴巴、淘宝和支付宝都曾尝试,将Oracle数据库的座驾AIX系统+IBM小型机+EMC2, 迁移到Linux系统+PC Server的模式。若是对Oracle数据库不拆分的话,PC Server根本无法承受这样的负载;若是对Oracle数据库拆分,将需要增加购买大量的License;故不得不考虑将业务系统的Oracle数据库迁移到开源MySQL数据库和Hadoop平台上(注释:这2种开源产品能满足业务需求,以及相对其他开源产品更稳定和成熟)。
非常遗憾的是,阿里巴巴集团首席架构师王坚推行的是全面去商业数据库产品计划,也即整个阿里巴巴集团,可能除支付宝少数业务的数据库继续采用Oracle数据库之外,其他的一切都将转换成MySQL数据库,为此可能导致阿里巴巴DBA团队、大淘宝DBA团队、支付宝DBA团队等,在Oracle数据库领域积攒十年的架构设计和运维维护经验,将瞬间付之东流,同时这些DBA团队的Oracle DBA也将会有不少人员选择离开,否则只能转行为MySQL DBA。
大淘宝DBA团队、阿里巴巴DBA团队、支付宝DBA团队和阿里云计算DBA团队总共拥有的MySQL DBA人数,不会超过15人,而Oracle DBA有80人以上,其中MySQL DBA团队真正能干活的DBA不会超过X个人,MySQL数据库在阿里巴巴真正支持业务发展的时间不超过3年(注释:淘宝成立初期采用MySQL数据库,能力的问题而不得不迁移到Oracle数据库平台;阿里巴巴B2B在2009年之前,也是少数边缘业务从Oracle数据库迁移到MySQL数据库平台)。多数是Oracle DBA转行为MySQL DBA的兄弟,他们在Oracle数据库方面确实经验丰富和能力超强,但是MySQL数据库方面就不多加评论…
小结
一直为MySQL社区的发展与壮大而努力,作为技术人员要说真话和大实话,不能因个人感情而做事情。个人认为阿里巴巴集团去IOE是不得不要做的事情,但不是把所有的Oracle数据库都迁移到MySQL数据库或Hadoop平台,而应该是对业务系统有选择地进行,以及迁移的步调要合理地控制,不宜过快过急,需要等待MySQL数据库DBA团队的壮大,技术与经验的积累。否则,可能出现迁移过去之后不久,发现对业务发展和支持出现严重的问题,大淘宝内部的信息分析,他们已经基本度过危险的阶段,也有很多遇难杂症,但是支付宝的业务具有特殊性,要比淘宝的业务系统要求更高,恐怕是一个非常大的障碍。
阿里巴巴集团高调向外界传递去Oracle数据库信息之后,新的Oracle数据库License谈判将会很变得艰难,甲骨文公司本来是把把阿里巴巴、淘宝和支付宝等公司作为中国标杆用户宣传,现在公开大规模地去Oracle数据库,可能会得到甲骨文公司的报复,为此可能要偿付更加昂贵的License费用。对于阿里巴巴价值观“拥抱变化”,是无处不体现,但是要合理地使用,不要被某些人利用搞成政治运动,而影响企业的稳定与发展。
(三) 去IOE对淘宝、阿里巴巴B2B和支付宝等公司的DBA团队影响
大淘宝是去IOE最迅速最彻底的公司,相关技术人员也将会得到更多的晋升和加薪机会,阿里巴巴B2B DBA团队很早进行的部分业务系统去IOE,使得相关人员受益(注释:也包过我个人,阿里巴巴B2B对MySQL DBA的渴望而有机会加盟,机缘巧合是MySQL数据库成功使用之后离开了),而支付宝是去IOE进展最慢的公司,为此高层不得不选择派遣相关人员,加速支付宝公司去IOE。
阿里巴巴集团最后可能保留少数业务产品线,继续使用Oracle数据库平台提供数据服务,以及MySQL数据库的自动化完成之后,将导致阿里巴巴集团DBA团队出现资源严重富余。Oracle数据库迁移MySQL数据库过程与完成之后,将会出现DBA人员的流失,这对阿里巴巴集权的DBA团队而言是一种损失。往往选择离开的Oracle DBA都是优秀和有成长潜力的,这可能造就更多DBA人员处于混日子的状态。
去IOE事件对MySQL团队和核心系统部门的发展,是非常有利和具有促进作用的。越来越多的业务系统和核心系统,采用MySQL数据库提供数据服务,MySQL DBA面临的挑战与压力将会越来越大,DBA团队的自动化水平能力也将会迅速得到提高,否则无法管理规模庞大的MySQL数据库集群和Hadoop集群。
整个阿里巴巴集团能读懂、编写和优化MySQL源码的DBA或开发人员,总数不会超过X个人,这对阿里巴巴集团去IOE也是一项挑战,毕竟开源数据库产品没有商业数据库产品那样经过严格的测试流程而稳定,购买甲骨文官方提供的MySQL服务,绝对不是淘宝、阿里巴巴和支付宝DBA团队的行事风格,一定会想办法自己修改和优化MySQL源码,相信阿里巴巴集团会投入更多的资源引进相关的技术人才,这对MySQL团队的技术提高也非常有帮助。
小结
(1) Oracle团队的经验和技术积累将大量丢弃;
(2) Oracle团队的DBA流失不可避免;
(3) MySQL团队的DBA经验、技术和能力,将被迫快马加鞭地提高。
(四) 去IOE对数据库行业的影响
淘宝去IOE事件网络曝光之后,引起更多Oracle数据库DBA从业人员的恐慌,使他们最担忧的是互联网行业的其他公司效仿淘宝和阿里巴巴去Oracle数据库的壮举,而出现蝴蝶效应。
对甲骨文公司而言,不会失去一位非常重要的中国客户,只是可能失去部分License费用收入而已。毕竟阿里巴巴集团旗下的支付宝某些业务系统肯定会用Oracle数据库平台,至少阿里巴巴B2B的CRM系统短期内不得不考虑继续使用Oracle数据库平台(注释:CRM系统太复杂,也很难有人搞清楚)。
淘宝、阿里巴巴和支付宝公司用MySQL数据库和Hadoop分布式平台,替换Oracle数据库和Greenplum并行数据库的行为,不可避免会影响互联网行业企业的数据库平台选型,也会导致Oracle数据库行业的从业者担忧。唯一办法,就是澄清这些事情的来龙去脉,使不明真相的群众懂得去分析类似的事情,而不跟风做错误的决定,不过互联网行业采用开源数据库的大趋势是必然的,互联网行业采用开源技术解决方案也是必然发展趋势。
淘宝、 阿里巴巴B2B和支付宝用MySQL数据库支持核心业务系统,其中阿里巴巴B2B已经使用MySQL数据库支持中文站Offer数据库,淘宝的核心业务之一订单都是MySQL数据库提供数据服务,必将将会促使更多企业使用MySQL数据库,从而会促进MySQL数据库领域的从业者发展和薪资待遇的提高,对MySQL社区和MySQL技术的进步也会有一定的促进作用。
MySQL数据库搭配PC Server和Linux操作系统的模式,以及再加上一些特殊的软件硬件技术——SSD硬盘和Fusion-IO,尤其是经过淘宝、阿里巴巴B2B和支付宝等业务的洗礼之后,使MySQL数据库的解决方案丰富和成熟, 也会促使DELL、华为、惠普(注释:不过这家企业的硬件设备实在是太差,尤其售后服务)等公司大力发展PC Server业务。也会推动IBM、EMC2等存储设备厂商进行技术革新,最后也会推动甲骨文公司和MySQL社区共同推动MySQL数据库产品支持更大的数据存储容量和并发处理能力。
(五) 总结
淘宝、阿里巴巴B2B和支付宝等公司去Oracle数据库,改用MySQL数据库和Hadoop分布式平台支持数据服务业务的分析和总结,就写到此了。希望个人写的本篇文章,对技术圈的朋友们有帮助,同时也做到了独立性和公正性透彻地分析去IOE运动。
作为一位MySQL数据库技术的从业者,要感谢淘宝高调公布去IOE,采用MySQL数据库搭配PC Server的方式支撑大并发大数据量的核心业务,为互联网行业的MySQL从业者提供了参考模板,也希望其能继续完善MySQL数据库平台和Hadoop分布式平台的自动化解决方案,也能继续对外开放。最后一点,希望阿里巴巴集团推进这样的事情,能保持雄心和壮志,继续把适合采用MySQL开源数据库和Hadoop分布式平台支持的业务迁移过来,请莫出现反复的行为。
【相关链接】