分享

谈谈数据库国产化

 北书房2014 2020-08-18
近些年,数据库国产化话题很热,不过实际上做起来又不是那么回事了。十年前阿里发起的去IOE运动轰轰烈烈的把IBM搞得灰头土脸,HP的小机则基本上完蛋了。去E虽然没有去I那么彻底,不过大量的国产化的中高端存储上市,让去E这个选项也变得不难么难了。唯独这去O结结实实的费了点劲,到目前为止还是效果不佳。
究其原因,最主要的是替代的便捷性问题。去I有一个现成的选项摆在那儿,就是INTEL和AMD的X86。记得2012年我在中国电信系统架构优化大会上做了一个《中国电信IT基础架构存在的问题与解决方案探讨》的发言,其中大声呼吁中国电信大胆的放弃小型机,拥抱X86。刚刚走下讲台,几个十分激动的人就围了上来要和我加微信,交换名片。拿到名片一看,原来是INTEL的销售。实际上用X86服务器替代小型机是十分简单的,应用系统的改造很小甚至不需要改动,X86十分低廉的价格与越来越好的可靠性,最终让去I变得顺理成章。
如果对照去O的过程,那就显得步履蹒跚了。自从2000左右,Oracle一举击败几乎所有的商用数据库对手之后,就奠定了不可动摇的地位。Oracle数据库功能十分强大,只要应用系统所需要的功能,基本上都可以提供;Oracle数据库十分稳定,DBA不用太操心就可以跑的很好;Oracle数据库的性能十分好,写的再烂的应用系统都可以很好的跑起来。实际上这些都不是Oracle能够一统中国数据库界的原因,最主要的是Oracle建立了十分优秀的生态。在老白上大学的时候,Oracle公司就频频向高校捐赠数据库产品,并且在高校搞各种各样的讲座活动。甚至在90年代末在中国开展了Oracle学院工程,在某些职业技术学院设置Oracle方向的专业,培养DBA。另外,最主要的一方面是,Oracle的技术资料十分丰富,第三方服务体系也十分完善,无论你的数据库出现了什么样的问题,都可以找到原厂或者第三方的服务团队来帮你解决问题。这一点,也是其他数据库所不具备的。因此造就了现在这种大家都想去O,但是不敢去的局面。
在历史上,国外的商用数据库产品对我国的信息化建设还是起到了十分关键的促进作用的。在国外商用数据库产品大规模应用之前,软件开发人员是十分稀缺的高端技术人才,大量的软件系统中需要软件开发人员编制精密的算法,从而确保系统能够在有限的资源下很好的运行。这种高端的软件开发人员完全无法满足我国信息化高速发展的需要。大型商用数据库的引入,使软件开发中最难的算法工作都由数据库承担了,软件开发人员只需要懂得前端开发工具,把业务逻辑写好就可以了。这样,经过简单培训的理工科人士甚至大量的文科生都加入到软件工程师的行列。中国信息化高速发展的20年的核心支撑人员不再是那些精英,而是广大的IT民工。
前面扯了不少历史,我们回归主题。我们现在正在轰轰烈烈的信创能否实现数据库国产化呢?我们该如何实现数据库国产化呢?首先我们要讨论一下,数据库国产化有没有意义?对这个问题,大多数人的态度是无所谓,现在oracle数据库用的好好的,为啥非要去O啊,又不是用不起。实际上,如果仔细分析一下,如果我们真的不管系统大小都去用ORACLE数据库,还真的用不起。我曾经给几个客户算过一笔账,一台2路服务器,30核的,256G内存,采购价格应该不会超过4万块钱,如果按照Oracle公司的标准价格购买许可证,需要买15核,普通的零售价格大概是300-400万人民币,如果算上RAC、表分区等选件,价格还要再加100-200万。这种价格,对于国内最有钱的企业来说,都是买不起的。可能有些朋友要说了,我们买Oracle的时候,原厂只要求我们买5个核,100万就搞定了。暂且不说100万是否买得起,实际上,这个只卖5个核的许可协议,只是中国Oracle的销售和你们玩的一个过家家。按照Oracle许可协议的原文,你这种行为还是盗版,这种盗版叫做超许可证使用,Oracle随时有权对你的超许可证使用情况做出商业上的追究。随着中国深入参与国际知识产权相关的双边协定,这种法律风险是悬在我们大型企业头上的一把利刃,所以说,从软件正版化的角度考虑,国产化或者去O都是十分有必要的。
再其次是可行性问题,数据库国产化有没有可行性。实际上,数据库国产化也好,去O也好,这个问题我在十多年前和一些美国的同行讨论过。他们都觉得这个需求十分令人费解。在应用系统选择一个数据库产品的时候,他们都会做综合的分析,能用MYSQL解决的,为啥还要用那么贵的oracle。在一个企业里,他们使用数据库是按实际需要来确定的,而不是一味的选择Oracle,因此他们不存在去O的问题。回过头来看我国的情况,实际上很多应用系统不一定非要用ORACLE,只是我们的开发商不太愿意改变他们的开发习惯而去选择了Oracle数据库。再加上我们的知识产权意识并没有那么强,用上盗版的Oracle或者名义上正版实际上存在盗版风险的Oracle,觉得这样是最划算的。所以大量的不需要使用Oracle的系统都用上了世界上最好的数据库系统。实际上,绝大多数这样的系统,如果开发时选用国产数据库或者开源的MYSQL/PG等数据库,也是完全可行的。
可能有些朋友要说了,老白你讲的都是一些不重要的系统,一些重要的系统还是离不开国外的商用数据库的。国产数据库从安全性、稳定性和性能方面都无法满足我们的需要。实际上这也是一个伪命题,只要应用开发商在应用系统上做足功夫,数据库并不是一个问题。甚至数据库都并不是应用系统中的必需品。虽然这种说法有些极端,我上大学的时候程序=数据结构+算法,里面并没有数据库。现在的应用系统把大量的数据结构和算法都交给数据库去处理了,仅此而已。国家电网的电力调度系统最初是Oracle的一统天下,十多年前,出于国家能源安全考虑,开始国产化改造工作,用达梦替代了ORACLE数据库,已经成功上线超过5年了,并未因为国产化数据库不稳定而导致电网故障。这里面包含了大量的应用系统改造工作,没有强有力的自上而下的决心,是无法做成这件事的。当然,其中改造所花费的成本也是相当可观的。近些年其他行业也有一些十分成功的案例。比如一些商业银行已经成功的将核心交易系统迁移到国产数据库上;中国电信在三大核心系统中已经成功的用MYSQL替代了ORACLE;南方电网人资、财务等核心系统已经完成了从ORACLE到达梦的迁移;支付宝这个全球最大的支付交易引擎也早已从ORACLE迁移到自研的OCEANBASE数据库上。等等等等,这些案例都说明了,数据库的国产化迁移(或者开源数据库迁移)实际上都是没有问题的,影响决策的最大因素是高层的决心以及迁移成本的考量。
当然了国产数据库目前与国外商用数据库之间的差距还十分明显,无论从系统稳定性、性能、并发处理能力、维护便捷性等方面都差距明显。特别是运维服务支撑能力,第三方服务能力等方面,差距更大。国产化数据库迁移不仅仅是一个一次性的迁移工作,更重要的要考虑迁移后如何在较低的成本下稳定运行。这需要构建一个十分稳定的生态,需要国产数据库厂商学习ORACLE当年构建生态的方法,加大技术开放的力度,培育第三方服务生态体系,让企业使用国产数据库后无后顾之忧。这个生态建设不是一年两年就可以建成的,也不是依靠企业自发的热情就可以建成的,需要工信部、软件行业协会等单位积极引导,出台扶持政策予以支持,才有可能发展起来。
另外一个阻碍数据库国产化进程的因素是我们的国产数据库厂商。我们的国产数据库厂商依然比较弱小,产品的水平也还有待提高。大量的国产数据库产品以开源代码为基础,并未真正吃透,也并未形成自己的核心技术。如果这些技术空心化的问题不得已解决,光凭着爱国热情去使用国产化数据库也是无法持久的。这个问题简单算算就可以了,我们所有的国产数据库厂商一年的产值还不如Oracle公司在数据库产品研发投入上的一个零头,如果这种情况持续下去,我们的国产数据库的技术水平与Oracle的差距只会越拉越大。这样的情况持续下去,数据库国产化也就只是一个空想。单单依靠行政命令实行数据库国产化的政策也是不可持久的。希望国家能够出台政策,加大数据库国产化的应用范围,给国产数据库更多的机会,从而做大我们的自主数据库产业规模。
数据库国产化是一盘大棋,也是一个十分巨大的话题,老白今天也只能随便聊聊。有些观点不一定正确,一家之言,大家觉得有些地方说的有理就可以了。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多