去IOE:去掉“IE”就Ok?

2009年4月底,Oracle宣布收购Sun。尘埃落定后开始集中全力推动其软硬件集于一身的工程系统(Engineered System,通称“集成系统”),很快成为传统“硬件厂商”(有服务器、存储等硬件业务就算)的公敌。

也是在三年前,阿里巴巴开始涉足云计算,随后成立了阿里云。在阿里巴巴集团首席架构师王坚的主导下,阿里巴巴和淘宝的技术团队发起了“去IOE”运动,现在已获得不小的成果,并在中国的互联网行业产生了很大的影响,欲效仿者甚众。

这两件事的共同点何在?干掉共同的“敌人”,拯救自己。

去IOE:开源+工业标准

首先,必须解释一下“IOE”是怎么回事,才能谈得上“去IOE”。

IOE分别是IBM、Oracle、EMC,更确切地说是IBM小型机、Oracle数据库与EMC存储设备的组合。这三驾马车构成了一个从软件到硬件的完整商用数据库系统,甚至可以说是同类产品中的最佳组合,为何要去掉呢?

传统的商用环境强调单一系统的规模,也就是纵向扩展(Scale-up)能力。即使到今天,小型机的纵向扩展能力还是高于x86,而IBM早已是这个市场上的王者;EMC在中高端存储市场上的统治地位亦非常牢固。因此,Oracle数据库用户选择IBM的小型机和EMC的存储设备,在规模和性能上都有足够的保障。据说,采用EMC存储的Oracle安装就有4万多个。

但是云计算的规模,不是任何单一系统能够满足的,多系统的横向扩展(Scale-out)成为必然之选。如此一来,单一系统的纵向扩展能力便不再那么重要,x86架构以其廉价和开放的特性而越来越受青睐。这就好比虎大于狼,一对一稳操胜算,但群狼战术就招架不住了。

IOE的另一问题是除了软硬件的购置费用(CAPEX),生命周期内的维护费用(OPEX)也非常高昂。据说,阿里巴巴集团花在Oracle数据库上的许可费用是每年千万人民币级别的,而承载Oracle数据库的IBM小型机与EMC存储设备,购买和保修费用开销更大。

新浪微博ID为mysqlops的网友发布的与“去IOE运动”文章相关的微博

从网上流传的知情人士所写文章来看,在“去IOE”运动之前,大淘宝、阿里巴巴B2B和支付宝等公司98%以上的软件系统和业务都采用Oracle数据库提供数据服务。随着淘宝、支付宝和阿里巴巴B2B的注册用户数激增,用户产生的数据也越来越多,即使采用冷热隔离的方式也解决不了大数据量大并发的难题。阿里巴巴B2B中文站因数据量大和业务要求,高峰期CPU保持98%的使用率,负荷亦超高,即使更换存储设备,不久也会再次出现同样的状况。互联网行业公司迅速发展非常快,集中式数据库系统会逐渐成为业务的瓶颈,如果总是花费重金升级硬件,就不得不考虑更加省钱的数据库软硬件解决方案。

阿里巴巴集团使用Oracle最多的子公司是大淘宝,启用了全亚洲最大的Oracle RAC集群,2010年之前还计划部署更多的Oracle RAC数据库集群。但在阿里巴巴B2B将中文站压力和数据容量最大的Offer数据库,成功从Oracle数据库+IBM小型机+EMC存储设备(IOE体系)迁移到MySQL数据库+x86服务器的模式之后,大淘宝及核心系统部门也招聘了能修改MySQL源码和Hbase源码的人才,把产品线的Oracle数据库迁移到MySQL数据库提供服务,采用Oracle数据库支持的数据分析业务则采用Hadoop集群替代,既解决了业务系统的压力和瓶颈,也能帮助降低资金投入。

简而言之,阿里巴巴的去IOE,是软件上将Oracle数据库以开源的MySQL和Hadoop替代,Oracle RAC以Hadoop集群替代,硬件上以工业标准的x86服务器(存储可以用PCIe SSD,或连接没有智能的JBOD)替代IBM小型机和EMC存储设备,同时解决性能快速扩展和软硬件投资的压力。

这里面,首当其冲是Oracle不愿看到的,但也有Oracle正着力解决的。

硬件:去“IE”利人利己

与此同时,完成Sun收购的Oracle,具有了涵盖应用程序、中间件、数据库、操作系统、虚拟化、服务器、存储设备的完整堆栈。但是,样样通不等于样样精,Sun的小型机不是IBM的对手,存储更无法与EMC相抗衡。

从应用到存储,Oracle拥有了“你们有的我都有”的完整堆栈,通过集成设计的软硬件一体化系统发挥整体优势

Oracle的应对方案是发挥整体优势,推出软硬件集成系统(Engineered System,工程系统),以强项数据库、中间件等软件带动硬件。但是硬件也不能差距太大,否则不仅性能功能参数等不占优势,还很容易被攻击为“将不好的产品捆绑销售给客户”……

如果坚持用Sun的小型机和SAN存储,硬件将成为Oracle无法回避的短板。可是,如果把服务器和存储都换成基于x86的体系架构,游戏规则就完全不同了。

在收购Sun之前,Oracle已经推出了与HP合作的Exadata数据库机(Exadata Database Machine,中文称“数据库云服务器”)。不仅服务器是HP的ProLiant DL360,存储也是构筑在HP ProLiant DL180之上的“存储服务器”,全都基于x86架构。

当时HP很自豪地宣称这是“排他的”合作,但是同为x86架构,能有多大的区别呢?在收购Sun以后,HP的硬件被Sun的服务器和存储服务器替换,不变的是x86架构。

Oracle Exadata Database Machine X2-2有四分之一、半和全机架的配置,可以看作横向扩展的关系

接着Oracle又陆续推出了Exalogic中间件云服务器(Exalogic Elastic Cloud)和Exalytics商务智能云服务器(Exalytics In-Memory Machine),硬件上全都以x86架构为主导。

简而言之,虽然出发点不同(Oracle的想法要复杂得多),但是Oracle与打出“去IOE”口号的阿里系至少有一件事情是一致的,那就是去“IE”(IBM小型机与EMC存储)。即尽量使用标准化的硬件,降低硬件成本,主要在软件层面实现差异化——毕竟,相对于底层的硬件,上层的软件和应用才是王道。

不同点更是显而易见,那就是对Oracle的态度。

去留Oracle:各有理由,量力而行

从Oracle的角度,这当然不成其为问题,但是他们必须给客户一个解释。

已经是Oracle数据库用户的传统商业企业(如金融、电信),不需要解释。即使是致力于推广去IOE经验的阿里巴巴集团数据库架构师张瑞也指出,“选择技术要考虑:场景,成本和控制力,互联网的玩法并不一定适合企业级应用。IBM、Oracle、EMC主要面向企业级领域,单论技术含量在各自领域都是No1。其实,玩开源的大部分也就是搭积木作方案而已,谁也别嘲笑谁人傻钱多,别人玩得转未必适合自己。”

Google的三驾马车(GFS、MapReduce和BigTable)是Hadoop的创意之源,但是谷歌中国技术总监谷雪梅明确表示,在严格要求一致性的Google广告系统中,(以Oracle为代表的)传统的交易型应用仍然是更好的解决方案。Google研究院推出了融合BigTable的高扩展性和SQL数据库的可用性和功能性的新型数据库F1,并已将Google广告系统从MySQL部分迁移到F1上。作为一种混合型数据库,F1在一致性和存储系统上比MySQL更好,虽然付出了响应时间的代价,还是可以为OLTP业务所接受。

不过,Google、Amazon都只有一个。能达到阿里巴巴这个水准的,也不是很多。有一定规模的商业用户构建自己的IT系统,“IE”可以不用,但绕开Oracle的几率不是很高。云计算的未来很美好,可现在不能越过当下。

Exalytics In-Memory Machine的硬件是一台配备了40G InfiniBand的至强E7服务器

那么,在另一些Oracle是后来者的领域,如何说服用户?譬如内存数据库,SAP的HANA已经走在前面,Exalytics商务智能云服务器除了做成软硬件集成的一体机,还有什么招数?依然是靠整体作战,除了行式内存数据库产品TimesTen,Exalytics还结合了多种Oracle BI和Oracle Hyperion绩效管理应用软件,并能通过高速的InfiniBand连接与Exadata相集成。Oracle以性能和功能的丰富性为说辞,与SAP展开了口水战……

骑墙用户:IT是否核心竞争力?

口水战能吸引眼球,哪些客户会青睐Oracle的集成系统呢?

以Exalytics为例,客户肯定要有分析处理大数据的需求。除了前面已经提过的金融和电信行业,快速消费品、零售等IT不是企业核心竞争力的行业,也是Oracle主攻的对象。新浪、腾讯、百度等互联网巨头,IT能力简直是生存的命脉,还有规模和成本的考虑,很难接受这种商业集成系统。那么,有没有处于中间状态的,譬如……电商?

电商电商,一边是互联网,一边是零售业,成分决定选择。淘宝当然属于电商,商的一面不评论,电(互联网)的能力足够强,正如文章开头已经介绍过的,都有能力“去IOE”了,再走回头路的可能性不大——Oracle的集成系统虽然也去了“IE”,但成本和扩展能力仍不能满足他们的要求。不过,像京东、当当,特别是京东,尽管商的一面咄咄逼人,号称要扫平淘宝等竞争对手,线上购物的流程也算流畅,可是总体的IT能力与阿里系相差太远。从公布出来的消息看,京东的IT架构还是基于传统的商用技术,没有体现出互联网基因。换言之,京东是相对适合采用Oracle集成系统的,起码部署速度会大大快于经典的“IOE”组合。

甲骨文公司大中华区应用顾问总监谢鹏回答Exalytics与“去IOE”的问题

对于这个问题,甲骨文公司大中华区应用顾问总监谢鹏的回答颇有可借鉴之处:“Oracle和非常知名的电商行业的合作,这是趋势。这两年包括京东、淘宝、百度、当当,现在面临非常大的挑战。第一是整个IT的基础架构不够坚强,经常面临捉襟见肘的状况;第二我们的电商现在缺乏最佳实践,实际上用大量的低效人工作业去满足客户投诉,是不计成本的一种方法。所以实际上, Exalytics商务智能云服务器的加速计算和服务,在电商这个行业应用的前景是非常大的。现在的业务趋势还有一个,我们称之为社交(social),电商最重要的是去了解所有在网上在线购物的客户消费行为,消费偏好和他们的特性。这些数据和我们传统数据不同,是半结构化和非结构化的数据,实际上这是Oracle Exalytics的又一个强项,Exalytics不但可以处理结构化的,还可以处理半结构化和非结构化的大数据,所以恰好电商行业也是Oracle要推广的一个重要行业。”

淘宝、百度放在一边,起码对京东的诊断算是到位。网上有消息说,京东已经选择了Exadata,订单在Oracle上一财季落定,金额过亿元……同期另一重要用户是贵州茅台……

后记:话题,还是趋势?

本文用了很大篇幅谈论“去IOE”,并非是对三家业内巨头的否定。先以“IE”来说,IBM的Power自有其独特的价值,而EMC的存储系统也已全面转向x86的架构,不同程度地“与时俱进”,不是过时的古董。就是被阿里巴巴“去”的Oracle数据库,其替代品MySQL,所有权也属于Oracle。

虽然从Oracle收购Sun之初,就有人担心MySQL的前途,但通常不认为Oracle数据库与MySQL是竞争关系。Oracle数据库是企业级的关键业务生产系统(mission-critical production system),而MySQL当初作为专门从事高速网页服务的关系系统(relational system)起家,尽管获得Facebook这样的顶级网站采用,其规模和交易处理能力等方面仍无法与Oracle数据库相比。

不过开源的力量实在是太强大了,加上工业标准的服务器,通过分布式系统的横向扩展,MySQL已经可以在特定场合部分或全部替代Oracle数据库——正如阿里巴巴的故事。那么,Oracle会否因此而限制MySQL的自由,乃至“痛下杀手”?目前看来,似乎还不至于。即使这一天真的到来,互联网企业们也可以选择诸如PostgreSQL的替代品,或者去“山寨”Google的F1……当然都没有动动嘴皮子这么轻松了。

相比之下,我倒是觉得某位高人(如果没记错的话,应该是阿里巴巴张瑞)的猜想有点意思:Oracle会不会推出基于MySQL的集成系统呢?