IT技术博客大学习 共学习 共进步

淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论

MySQLOPS 数据库与运维自动化技术分享 2012-03-31 23:03:28 浏览 4,881 次

    【导读

    本周 @红袖添香夜杀猪 于新浪微博上发表阿里系去Oracle化去Yahoo化的事情,引发众多技术界朋友们的讨论,甚至导致很多正在或想学习Oracle数据库技术的网友,担忧Oracle DBA的发展前景问题,为此把一些问题的来龙去脉,以及一些较好的回复和争论点,整理清楚分享给大家,以免更多的技术人被一些错误的信息误导。

    (一)   新浪微博上的信息,已经有人转移到 问答网站 知乎上进行讨论,问答信息

    @红袖添香夜杀猪 内容:阿里系去Oracle化去Yahoo化阻力如何,很想听听这背后的故事,通过什么样的努力促使开源技术在阿里系的广泛使用,尤其是mysql、lvs这些很适合互联网公司使用的产品,有空编写本中国版的《浪潮之颠》吧。。期待。链接:weibo.com/19121747…

    @hellodba回复:淘宝为什么要去oracle,因为它很难适应互联网大规模应用对扩展性的要求,与其说是去I/O/E,更不如说是分布式架构战胜了集中式架构,开源系统战胜了商业系统。至于原来的Oracle DBA,现在都已经是老大了,剩下的DBA都已经转型。

    在此提出自己的疑问,希望能得到相关/了解的知友的回复:

    1.oracle已经收购了mysql了,现在淘宝都开始去oracle数据库了转向mysql数据库阵营,想请教大家能否详细表述下oracle和mysql之间的区别,更进一步阐述下 @hellodba回复信息的内容,还有淘宝这样做有何目的性?

    2.淘宝这样的互联网公司已经开始在转向开源系统去了,况且现在正处于海量数据时代,是不是以后会有更多的互联网大公司开始采用淘宝相同的策略,为什么呢?

    3.我们这些还在迷茫的孩子,一直向往着数据库行业,想以学习oracle数据库为基础来实现自己的DBA梦想,可是当听到这则信息时候,突然非常担心等我们这些人开始慢慢摸到门道之后,这些学的东西互联网企业都不用了,那时候我们岂不是又要失业了,我们该怎么办?

    4. 大家把问题修改更清楚的话更好,谢谢大家!

    (二)   知乎上部分回答信息

  • @Fenng的回答
  •     基本上是某博士的馊主意,公司政治意义大于技术意义。

        这个事情摊开来说可以说几天几夜,但一句话:没有什么事情是一刀切的,只有合适才好。好吧,既然有人说没信息量,而这个话题也是个不错的研究样本,那我就补充点信息。

        去 Yahoo! 化是先进行的,内部叫做去Y。为什么去Y,说到底就是公司策略上的问题,尽量解除技术上对 Yahoo! 的依赖,其实主要是雅虎中国和之前的阿里妈妈那边用到不少雅虎的东西,其他几家子公司基本没怎么用。(其实 Yahoo! 给阿里留下了很多技术人才,但是要说带来什么核心技术,完全是胡扯)。

        去 O(Oracle)、去 E(EMC)、去I(IBM) ,产生的直接原因是对这几家大厂依赖过多,成本偏高,技术上逐渐产生依赖感,甚至不需要 Oracle 的地方也用 Oracle,不需要用高端存储的数据也用。一个比较离谱的事情是阿里旺旺(淘宝旺旺)在用户量已经很高的情况下,数据库用的还是 Oracle,现在来看,简直是不可思议的事情。我们当时笑言,这估计是世界上以Oracle数据库承载的最大量的IM工具了。

        至于说Oracle是否很难适应「互联网大规模应用对扩展性的要求」,要看自己的应用类型,对淘宝来说,差不多可以,但对支付宝来说,这或许就不是一个很好的办法(因为支付宝一定程度上甚至不是互联网应用)。

        所 以,盲目的在整个集团层面发起「去O ,去I ,去E」 的运动而不去考虑每家应用的具体特点,这就是政治意义大于技术意义,上有其好,下必甚之,执行起来,走样的就很夸张。而某些人的出发点,也无外乎期待早日 将所有的技术团队收到麾下,权力欲驱使人们在做一些不那么正确的事情。

        不要以任何一个单纯的工具(比如MySQL 或是 Oracle)为目标,而应以综合技术能力为目标,很多东西,其实是相通的。有些产品终究会被历史淘汰,或许是前天的 Infomix数据库 ,或许是昨天的 Oracle数据库,或許是今天的 MySQL数据库,甚至是明天的 NoSQL 乱七八糟的,但總有人用數據庫,总有处理数据的需求,这方面专业人才依旧缺乏。

        最后,这终究是一家之言,而且,现在还在内部工作/混的人一定有不同的看法。毕竟有些人还要讨好上级,讨好自己的Big Boss,还要表现自己的价值观,在所难免。

        2.         @祁育的回答

        在淘宝实习过,有一些了解。非交易核心的系统用的数据库技术相对较新,如收藏夹是用的oceanbase, 相对重要的应用好像是去年就切换到MySQL集群,收藏夹也是较早从Oracle切换到MySQL集群的,期间据说性能压力比较大,后来换的 oceanbase, 交易核心的系统如IC(商品中心) 是去年底换的MySQL集群,当时收到一封群邮件,据说换了之后每年能节省支出千万左右,而系统性能提高了5倍左右。具体数字可能不一定对,邮件原文不太 记得了,总之是有明确的性能和成本考虑的。有一些系统根据自身情况也有一只用Oracle的,如关联推荐系统。不大可能一刀切吧,应该是看具体的应用场景了。

         3.         @mysqlops回答

        问题被移到 @知乎 上来了, @Fenng 说的比较全,个人继续补充给大家解答下:

        3.1.去Oracle数据库化

        3.1.1 Oracle主要是依赖中高档存储设备和小型机;

        3.1.2 Oracle不适合大数据量采用PC Server+伪分布式的模式;

        3.1.3 中高档存储设备和小型机的购买费用非常贵,更关键是这些设备的保养费服务费用更加贵,甚至超过设备购买费用;

        3.1.4 Oracle +中高档存储设备和小型机的模式,无法满足业务增长的需求;

        3.1.5 Oracle本身的License费用在成本中并不多,而且整个阿里巴巴集团主要是 淘宝和支付宝占用的License费用占比大;

        3.1.6 Oracle技术本身也是没有任何问题的;

        3.1.7 只是把一些数据量非常庞大,且允许出现小概率数据丢失的业务迁移或直接采用开源数据库解决方案(主要是MySQL);

        总结:去Oracle的说法是放大了,放弃部分业务由Oracle数据库改为MySQL主要是为了去存储设备,也即影响最大的是两家公司:EMC、IBM。

        3.2 去Yahoo

        至于去Yahoo化,本人不太清楚,若是去Yahoo化的话,估计是指Yahoo的文化和Yahoo美国公司对阿里巴巴的资本层面的控制,不属于技术范畴,我们就不讨论。

        补充4点:

        1>. 阿里巴巴和淘宝都曾经尝试过Oracle数据库迁移到MySQL,但是失败了!过将近2年之后,阿里阿巴巴(内称B2B)我们在一些重大新项目中重新开始 使用MySQL数据库,并且恢复和建立大家对MySQL的信心,并且把一些Oracle数据库支持的重大业务,例如阿里巴巴中文站的Offer信息,迁移 到MySQL数据库中获得成功之后,大家的信心越来越大,所以其他子公司也就更急积极推广MySQL数据库;

        2>. 以前整个阿里系懂MySQL的DBA或技术人员极少,用一名合格MySQL DBA要求的话,阿里软件到是有1-2位兄弟,其他公司几乎可以用0形容;

        3>. 淘宝大规模的招聘技术实力和经验非常丰富的技术人才,尤其偏向底层的技术人员,迅速提高了淘宝公司在开源领域的技术实力,以及增强他们迫切改造原来系统的构想,所以采用开源技术就是必然的趋势,以及他们也有能力修改与完善开源的技术产品;

        4>. 整个阿里系还是非常多人云亦云的技术人员,尤其当NoSQL产品开始从国外传入国内的时候,尤其DBA团队非常悲观,甚至整天吹嘘DBA的好日子到头,大 家应该研究NoSQL产品,其实我们关注与研究新的技术活产品是必然的,但是不能乱了方寸,2009年中旬曾经说过,NoSQL数据库产品是有限领域使 用,不会成为全行业新的宠儿,时到今日还有那些人在盲目使用NoSQL数据库产品呢?

        给提问朋友及类似朋友的建议:

        1>.每种技术或产品都会有其用处,不要因几家大公司做某事情,就开始跟风,毕竟每个公司的业务场景和数据量不同,公司内部的资源与需求不同(注:需求主要是指技术人员追求成长和KPI,大公司的KPI是指南针也是毒药);

        2>.每种技术活产品,都可能走向没落,甚至消失,这主要是看产品的研发公司是否良好;

        3>.技术产品都有其自己特殊的应用领域,很难有通用性产品,且能达到各个方面的指标满意的,也即完美就是缺陷,有得有失的;

        4>. @天光 说一个 DBA要掌握多款数据库产品技术,基本的数据库理论确实是相通的,但是你若想精通多款数据库产品技术,那是非常难的,人的精力非常有限!

        MySQL技术界现状:人人都觉得MySQL非常简单,上手也非常快,但是国内有几个DBA敢说,自己的技术很强呢???技术需要时间学习、实践和积累,也需要更多的业务场景使用磨练的。

        l  新浪微博引发的讨论

  • 1.       @阿里八神
  •     去Oracle,实际上是去的集中式数据库架构,并不是特意针对A/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的代价已经承受不了了。

    建议继续学习

    1. 淘宝图片存储架构 (阅读 10,842)
    2. 产品设计之QQ邮箱登录页与淘宝登录页 (阅读 4,583)
    3. 阿里巴巴集团去IOE运动的思考与总结 (阅读 4,500)
    4. 淘宝的一些架构 (阅读 4,001)
    5. 淘宝图片服务的学习 (阅读 3,941)
    6. 产品设计之QQ邮箱登录页与淘宝登录页 (阅读 3,681)
    7. 常见的几种淘宝店主营销手段 (阅读 3,301)
    8. 回忆在阿里巴巴国际站UED的日子 (阅读 3,200)
    9. 谈谈阿里巴巴的企业文化 (阅读 3,141)
    10. 技术文化和惨淡命运 ―― 怀念中国雅虎 (阅读 3,121)