【IT168 评论】作为全球最大的信息管理软件及服务供应商,Oracle的业务涉及软硬件的各个领域,但数据库业务仍是其最大的盈利点。据Oracle 2012年第三财季财报显示,其数据库和中间件收入为44.92亿美元,增长9.6%,占总收入的50%。Oracle数据库性能和稳定性较好,因此电信金融业大多会选择Oracle作为自己的数据库。互联网行业如阿里巴巴淘宝等也采用Oracle数据库,但近期的一则微博在数据库技术人员中引发讨论。(讨论帖:淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论)
事件起源
去Oracle事件起源于@红袖添香夜杀猪 的一条微博,他询问淘宝网开放平台架构师岑文初和曹益峰:“阿里系去Oracle化去Yahoo化有哪些阻力?讲讲背后的故事,比如如何促使开源技术在阿里系的广泛使用,尤其是MySQL、LVS这些很适合互联网公司使用的产品。另外,Oracle DBA有什么反应?”
问题发出后,收到了以下回复:
淘宝网开放平台架构师岑文初(@放翁_文初):去Oracle基本没啥阻力。
曹益峰(@曹益峰):至少在淘宝,去Oracle已经成为过去时啦!
阿里巴巴运维部高级DBA张瑞(@hellodba):淘宝为什么要去Oracle,因为它很难适应互联网大规模应用对扩展性的要求,与其说是去I(IBM)/O(Oracle)/E(EMC),更不如说是分布式架构战胜了集中式架构,开源系统战胜了商业系统。至于原来的Oracle DBA,现在都已经是老大了,剩下的DBA都已经转型。
如果没有这条微博,在我们这些外人看来阿里巴巴系还在不计成本的使用着Oracle,即使那些费用已经相当惊人。那么去Oracle对于阿里巴巴和淘宝有哪些影响,对Oracle又有哪些影响呢?MySQL技术专家金官丁在自己的技术博客上分析了这一事件,并希望技术人不会被一些错误的信息误导。笔者对金官丁的博客进行了整理,内容大致如下:
对去Oracle化的疑问:
1.Oracle已经收购了MySQL,现在淘宝开始去Oracle而转向MySQL阵营,能否详细表述下Oracle和MySQL的关系,更进一步解释@hellodba 回复的内容,还有淘宝这样做有何目的?
2.淘宝已经开始转向开源系统了,在大数据时代下,是不是会有更多的互联网公司转向开源,为什么呢?
3.对于学习Oracle、准备做Oracle DBA的同学,是否意味着就业机会越来越少,该怎么办?
数据库技术人员各抒己见
1. 丁香园(DXY.com) 技术负责人冯大辉(@Fenng)的回答
去Yahoo! 化是先进行的,内部叫做去Y。为什么去Y,说到底就是公司策略上的问题,尽量解除技术上对Yahoo! 的依赖,其实主要是雅虎中国和之前的阿里妈妈那边用到不少雅虎的东西,其他几家子公司基本没怎么用。
去 O(Oracle)、去 E(EMC)、去I(IBM) ,产生的直接原因是对这几家大厂依赖过多,成本偏高,技术上逐渐产生依赖感,甚至不需要Oracle的地方也用Oracle,不需要用高端存储的数据也用。一个比较离谱的事情是阿里旺旺(淘宝旺旺)在用户量已经很高的情况下,数据库用的还是Oracle,现在来看,简直是不可思议的事情。我们当时笑言,这估计是世界上以Oracle数据库承载的最大量的IM工具了。
至于说Oracle是否很难适应「互联网大规模应用对扩展性的要求」,要看自己的应用类型,对淘宝来说,差不多可以,但对支付宝来说,这或许就不是一个很好的办法(因为支付宝一定程度上甚至不是互联网应用)。
不要以任何一个单纯的工具(比如MySQL 或是Oracle)为目标,而应以综合技术能力为目标,很多东西,其实是相通的。有些产品终究会被历史淘汰,或许是前天的Infomix数据库 ,或许是昨天的Oracle数据库,或許是今天的MySQL数据库,甚至是明天的NoSQL乱七八糟的,但总有人用数据库,总有处理数据的需求,这方面专业人才依旧缺乏。
2. @祁育的回答
在淘宝实习过,有一些了解。非交易核心的系统用的数据库技术相对较新,如收藏夹是用的OceanBase, 相对重要的应用好像是去年就切换到MySQL集群,收藏夹也是较早从Oracle切换到MySQL集群的,期间据说性能压力比较大,后来换的OceanBase, 交易核心的系统如IC(商品中心) 是去年底换的MySQL集群,当时收到一封群邮件,据说换了之后每年能节省支出千万左右,而系统性能提高了5倍左右。具体数字可能不一定对,邮件原文不太记得了,总之是有明确的性能和成本考虑的。有一些系统根据自身情况也有一直用Oracle的,如关联推荐系统。不大可能一刀切吧,应该是看具体的应用场景了。
3. @MySQLops回答
@Fenng 说的比较全,我给大家解答下去Oracle化的原因:
·Oracle主要是依赖中高档存储设备和小型机;Oracle不适合大数据量采用PC Server+伪分布式的模式;
·中高档存储设备和小型机的购买费用非常贵,更关键是这些设备的保养费服务费用更加贵,甚至超过设备购买费用;
·Oracle+中高档存储设备和小型机的模式,无法满足业务增长的需求;
·Oracle本身的License费用在成本中并不多,而且整个阿里巴巴集团主要是 淘宝和支付宝占用的License费用占比大;
·Oracle技术本身也是没有任何问题的; 只是把一些数据量非常庞大,且允许出现小概率数据丢失的业务迁移或直接采用开源数据库解决方案(主要是MySQL);
总之,去Oracle的说法是放大了,放弃部分业务由Oracle数据库改为MySQL主要是为了去存储设备,也即影响最大的是两家公司:EMC、IBM。
${PageNumber}背景分析
1.阿里巴巴和淘宝都曾经尝试过Oracle数据库迁移到MySQL,但是失败了!过将近2年之后,阿里巴巴(内称B2B)我们在一些重大新项目中重新开始使用MySQL数据库,并且恢复和建立大家对MySQL的信心,并且把一些Oracle数据库支持的重大业务,例如阿里巴巴中文站的Offer信息,迁移到MySQL数据库中获得成功之后,大家的信心满满,所以其他子公司也更积极的推广MySQL数据库;
2.以前整个阿里系懂MySQL的DBA或技术人员极少,阿里软件倒是有1-2位合格的MySQL DBA,其他公司几乎可以用零来形容;
3.淘宝大规模的招聘技术实力和经验非常丰富的技术人才,尤其偏向底层的技术人员,迅速提高了淘宝公司在开源领域的技术实力,以及增强他们迫切改造原来系统的构想,所以采用开源技术就是必然的趋势,他们也有能力修改与完善开源的技术产品;
4.整个阿里系还是非常多人云亦云的技术人员,尤其当NoSQL产品开始从国外传入国内的时候,尤其DBA团队非常悲观,甚至整天吹嘘DBA的好日子到头,大家应该研究NoSQL产品,其实我们关注与研究新的技术活产品是必然的,但是不能乱了方寸,2009年中旬曾经说过,NoSQL数据库产品是有限领域使用,不会成为全行业新的宠儿,时到今日还有哪些人在盲目使用NoSQL数据库产品呢?
微博引发的讨论
1. @阿里八神
去Oracle,实际上是去的集中式数据库架构,并不是特意针对I/O/E。为了追求系统的scale out,选择了MySQL,当应用做的足够好,数据库仅仅作为一个关系数据的持久层时,是不用太关注下面用啥库的,当然现在PCIE,flashcache,多核CPU技术的普及,Oracle不一定就得跟小机,存储绑死在一起。
2. @tb丁原
做为去什么的参与者,我也说说,其实公司技术积累到一定地步,相比开源MySQL,Oracle并没有太大优势,长远来看,未来MySQL的成本一定会低于Oracle,并且MySQL的灵活性一定会高于Oracle,公司已经在定制自己的MySQL分支了。
3. @jametong(童加旺_alipay)
考虑一个架构的成本,不能单从一个角度考虑,一个单机的情况,MySQL以及NoSQL一定比Oracle便宜,但是,由于MySQL、NoSQL的特性,有些功能无法支持,规模上去之后,相应的机架、电力、运维成本也会上升,采用Scale Out的架构其实很多时候只是因为Scale Up的代价已经承受不了了。
总结
从阿里巴巴和淘宝网内部的角度看,去Oracle既出于节约成本的考虑,又由于Oracle对大规模互联网应用支持力不从心。从Oracle的角度来看,阿里系去Oracle事件确实让Oracle损失了一个大客户,也让Oracle能够更加深入的思考传统数据库如何应对大数据的挑战。