为什么以阿里为代表的大厂都倾向去Oracle而使用MySQL?

去IOE化”理念最早是由阿里巴巴提出。具体就是要把公司里IBM服务器、Oracle数据库、EMC存储都替换掉,更换为开源或国产化的选项。这些年国内的工程师资源变得日益丰富起来,部分高端工程师可以深入到底层去做一些工作,不仅限于深度定制开源数据库。于是闭源产品在调试难的问题上就变得突出。为什么很多公司都开始去Oracle而使用MySQL,主要因为以下这些因素:

为什么以阿里为代表的大厂都倾向去Oracle而使用MySQL?

成本因素:

我们都知道mysql是开源的,也就是说完全免费,而oracle价格不菲,如果再考虑到搭载oracle的服务器和存储设备的话,那直接可以看见的成本差距确实很大,这是现实。但是这样就简单的判断从oracle迁移到mysql就一定节约成本,我觉得这个事儿不好说。直接根据产品本身购买价格算成本的方式不能说错,但是肯定不全面,还漏了不少东西要算。

风险成本:

2008年的淘宝是一辆在高速公路上飞驰的汽车,业务发展是很快的,这个时候要迁移数据库这样的基础架构,那必然是牵一发而动全身的事情。就好比要给这辆在高速公路上的汽车换个引擎,车还不能熄火,这个事情本身的难度和风险就是很大的。

技术成本:

主要有几个方面,业务不能停,数据一致性,大量的业务可能面临解耦,重构等等,这些做完整体架构可能都变天了,这个是需要大量开发人员费时费力还不一定就能百分百做好的事儿。如果没有一点前期的技术积累,几乎不可能完成。

人力成本:

大量开发人员做重构的时候还是要拿工资的吧。新技术的学习成本也要算进去,这个包括了运维的dba和各个业务的开发人员,凡是需要用db的人都要新学一遍,这也要花不少时间和精力。还有在决定迁移的这一刻,对于之前的一些技术的积累,包括人员的培养等方面,一定是有浪费的,物体的运动轨迹发生突变往往意味着能量损失,这是一个道理。随着技术转型,一批老的出色的oracle dba和开发人员的流失带来的损失更难估量。

业务因素:

这里可能用“业务场景”这个词解释更加合适,或者说这是一个数据库选型的问题。根据淘宝架构师在公开场合的描述,当时淘宝的业务量发展太快了,这使得原本基于oracle旧架构的系统扩展性不能很好支撑整个业务了,架构解藕这件事已经是车到山前了,这就意味着业务需要分拆,数据库需要分拆。如果业务只需要十几个或者几十个集群就能承载的话,那我觉得oracle完全ok,但是现在大型互联网公司的业务规模都是需要上百集群,上千机器来承载,对于这样的规模,mysql这样轻量级的数据库更合适。所以这里不是谁更好的问题,只是哪种数据库产品更适合当前及未来公司的业务场景,换句话说,就是“物尽其用”而已。现在不是也有很多数据从mysql向nosql迁移了么。

技术趋势:

当前互联网技术发展有个整体的趋势,就是开源产品为主流。oracle是这个世界上到目前为止最优秀的关系形数据库产品,但是他闭源,闭源就意味着在整个互联网大行业背景下,这个产品本身就可能变的越来越小众,对于一家互联网公司使用的基础架构本身很小众的话还不是什么太大的问题,但是其导致的技术上的壁垒就很难接受了,自己最核心的基础架构掌握在别人家手里,核心技术都是人家的,这就好比芒刺在背。打个可能不太恰当的比方吧,有一天你LOL天梯打到了2000,但是你发现你的圈子里已经没什么人玩这个了,别人都去玩另外一个游戏了,而且还是别人自己开发的游戏,代码能自己改,能自己写外挂能加英雄加功能。你当然可以继续玩LOL,你可以始终是个顶级玩家,但是同时你失去了成为顶级游戏开发者的机会。

欢迎工作一到八年的Java工程师朋友们加入Java工程师学习交流群:795632998
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
 

猜你喜欢

转载自blog.csdn.net/weixin_42882439/article/details/83657580
今日推荐