从Oracle到MongoDB:为什么AWS不断抛弃合作伙伴?

亚马逊因不断与其商业伙伴分道扬镳而备受关注,在决定放弃Oracle数据库转而使用自己的服务之后,Amazon现在正在尝试用自己的“兼容”版本DocumentDB取代MongoDB。

有趣的是,AWS宣布放弃Oracle的声明是在Oracle首席执行官Larry Ellison吹嘘AWS和Salesforce运行在其数据库上之后发布的。值得注意的是,MongoDB专门修改了它的许可条款,以防止“被抛弃”情况发生,但是这样做似乎让事情变得更糟糕了。

MongoDB许可证可能会加速其灭亡

MongoDB服务器端公共许可证本质上要求任何提供MongoDB服务的云提供商必须开放与该服务相关的所有代码,这不是所有云提供商都愿意接受的,所以AWS发布DocumentDB也就不足为奇了。DocumentDB被设计用于许可证生效之前发布的3.6版本,SSPL似乎并不适用于DocumentDB。此外,Amazon新产品基本上只是一组位于自己数据库上的兼容api,所以它实际上没有使用任何MongoDB代码。

AWS是目前最大的公共云,DocumentDB的发布导致MongoDB的股票暴跌,DocumentDB只支持MongoDB 3.6,这可能反映了一个严峻的问题:如果AWS的新服务流行起来,MongoDB别无选择,只能开源其最新的服务,否则将面临停滞不前的风险。这就是为什么MongoDB改变其许可条款就像自杀一样,新的许可证不仅不能保护MongoDB免受像AWS这样的“恶狼”的攻击,它甚至会让它受到开源社区更多抨击。 比如,为了响应SSPL,Debian和RedHat都决定不将MongoDB的最新产品包含在内,因为认为它违背了开源精神。

AWS:做自己最擅长的事情

在最新的声明中,AWS将DocumentDB描述为“一种支持MongoDB工作负载的快速、可伸缩、高可用性和完全托管的文档数据库服务”。这意味着MongoDB本身无法处理大规模的工作负载,更意味着AWS正在向客户销售其自身核心竞争力,即通过性能、可伸缩性和可用性实现的便捷性。AWS还在一篇声明中说,由于设置和管理MongoDB集群的复杂性,公司很少利用MongoDB api的一小部分功能,他们还发现,扩展到多个tb和数十万每秒的读写非常具有挑战性。

AWS销售的不是软件而是便捷性,而MongoDB为客户提供的是完成工作的工具。AWS为他们提供了真正想要的东西,由其他人为他们来完成这项工作。在无需管理底层基础设施的情况下获得性能、可伸缩性和可用性升级是每个企业都追求的,这也是AWS如此成功的原因。为了更加方便,用户可以使用MongoDB应用程序代码、驱动程序和工具来处理Amazon DocumentDB上的工作负载,并且可以在AWS数据库迁移服务(AWS DMS)的帮助下,从MongoDB执行实时迁移,而不需要停机。

AWS DocumentDB

Amazon DocumentDB使用基于SSD的存储层,在三个独立的可用区域内进行6x复制,这不仅意味着DocumentDB可以在30秒内将数据从主服务器转移到副本服务器,而且还支持MongoDB副本集模拟。作为其“完全托管”产品的一部分,它还具有自动配置和设置、监控指标和自动软件修补功能。此外,DocumentDB存储可以从10 GB扩展到64 TB,增量为10 GB,并通过仅将数据库更改写入存储层来减少数据库I / O. 它还声称其吞吐量是当前可用MongoDB解决方案的两倍。

这可能是因为DocumentDB的存储和计算彼此分离,并被允许独立扩展。同时这意味着,开发人员可以忽略数据的大小,在几分钟内添加多达15个低延迟副本,从而将读取容量提高到每秒数百万个请求。

除了速度、可扩展性和可用性之外,DocumentDB还专注于安全性,并运行在Amazon VPC中,这允许企业在自己的虚拟网络中隔离集群。它还与AWS身份和访问管理(IAM)集成,允许企业使用通过AWS Key Management Service(KMS)创建和控制的密钥加密数据库。

MongoDB

MongoDB的CEO Dev Ittycheria说:“模仿是最真诚的奉承,所以亚马逊试图利用MongoDB文档模型的流行和势头也就不足为奇了。”他声称DocumentDB只是一个拙劣的模仿。而该公司的另一名发言人指出,DocumentDB基于一个只有两年历史的版本,缺少了ACID特性、集群和移动同步等新功能。虽然在DocumentDB宣布之后,MongoDB的股票暴跌,这无疑说明了AWS本身的强大,但MongoDB的股票在过去一年里上涨了200%,所以现在就把MongoDB归为失败者还为时尚早。

作为反击,MongoDB通过MongoDB Atlas的产品提供了自己的开源数据库托管版本,该产品基于最新版本的MongoDB 4.0。在最近的一篇文章中,CTO Eliot Horowitz公司比较了这两种服务,并指出DocumentDB实际上落后了大约6年,而且更接近2.4版,而不是3.6版。它还指出了AWS承诺的性能、可伸缩性和可用性带来的一系列缺陷,包括所有DocumentDB集群都被限制在一个单独的区域。这一点与Atlas不同,Atlas允许副本集扩展并提供低延迟。

AWS与开源

总之,这是个这是个左右两难的选择,人们不知道到底应该同情MongoDB还是支持AWS公然窃取开源社区的决定。从AWS的角度来看,他们并不是在销售MongoDB,只是提供一种企业看重的服务。就算不是MongoDB,也会是客户正在使用或需要帮助的任何其他数据库。比如Redis数据库,在一个许可协议下,AWS的版本总是最新的。虽然这对于开发来说有好处,但是它并没有帮助Redis Labs获得利润,可能这就是它改变许可的原因。

看着像AWS这样首屈一指的大公司还在孜孜不倦地“薅羊毛”,难免让辛勤工作的人们感到不痛快,而且很难不对Redis和MongoDB这样的公司产生同情。

然而,事物都有两面性,它们的流行可能是因为它们最初都是开源的,而且“托管”开源服务总会有市场。这是否意味着,AWS将继续随心所欲地从开源社区获取它想要的东西,还是法律将保护像MongoDB这样的公司?只有未来才能知道答案。

Image placeholder
cchao1024
未设置
  39人点赞

没有讨论,发表一下自己的看法吧

推荐文章
从Oracle到PostgreSQL,某保险公司迁移实践

摘要:去O一直是金融保险行业永恒的话题,但去O的难度之大也只有真正经历过的人才知其中的艰辛。此次笔者结合实际去O工作,对去O过程中碰到的DBLINK、SEQUENCE最大值、空串、SQL语句中的别名等

MongoDB与阿里云达成战略合作,云将是数据库最佳载体

摘要:开源数据库厂商与云服务供应商两大阵营之间存在争议是事实,MongoDB与阿里云达成战略合作,背后意味着什么?对MongoDB,对阿里云分别意味着什么?对整个数据库产业又意味着什么?MongoDB

中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作

中信银行信用卡业务数据库实现国产替换10月31日,由IT168旗下ChinaUnix社区主办的第十一届中国系统架构师大会(SACC2019)在北京召开。会上,中信银行软件开发中心/技术平台开发处副处长

解码GaussDB:如何成为世界级数据库?

1、开源GaussDB单机版OLTP;2、成立鲲鹏智能数据产业联盟数据库产业推进组;3、1.5亿元启动基金,发起GaussDB高校金种子发展计划;4、成立十大GaussDB高校联合创新实验室;5、现场

海量数据AtlasDB:把“数据库好用”这件事做到极致

导语:坚守初心、不辱使命,近期海量数据研发的企业级数据库AtlasDB获得了市场的普遍关注。这款以“好用”著称的国产数据库产品,不仅承载着海量数据公司对技术创新的坚持和投入,更凝结着一群拥有“工匠之心

Twitter 宣布抛弃 Mesos,全面转向 Kubernetes

作者|阿里云智能高级技术专家张磊划重点Twitter的基础设施从Mesos全面转向Kubernetes阿里云容器平台团队即将开源 Kubernetes高级作业管理集合美国西部时间5月2日下午7点,Tw

两年Flink迁移之路:从standalone到on yarn,处理能力提升五倍

一、背景与痛点在2017年上半年以前,TalkingData的AppAnalytics和GameAnalytics两个产品,流式框架使用的是自研的td-etl-framework。该框架降低了开发流式

红帽OpenShift得到IBM、AWS和Azure的支持,生态能力正不断扩大

继IBM在11月6日宣布,IBMCloudPaks容器云的底层技术通过红帽OpenShift来支持后;AWS也于11月7日表示,原生集成AWS服务的红帽OpenShift容器平台已可用于由光环新网技术

微软停止与华为合作:Windows 暂停供应新订单

据《南华早报》消息,知情人士透露,在华为被列入美国黑名单、因而无法购买美国技术后,微软效仿谷歌的做法,停止接受华为的新订单。该知情人士表示,华为和微软之间的两大业务领域:笔记本电脑Windows操作系

学习 nodejs+mongodb+koa2 写接口(一) 环境布置

一.环境准备最近在学用Nodejs写后端接口,了解到koa2是Nodejs的一个框架。可以快速开发后端接口,同时也能更快熟悉Nodejs以下是所需的环境node  v7.6+,可以用nvm或者n安装指

学习 nodejs+mongodb+koa2 写接口(二) koa2教程入门

一.hellokoa安装koa2#初始化package.json npminit #安装koa2 npminstallkoahelloworld代码constKoa=require('koa') c

html和css不换行代码是什么?

html和css不换行代码是什么?一、HTML不换行代码:在网页排版布局中比如文章列表标题排版,无论多少文字均不希望换行显示,需要强制在一行显示完内容。这就可以nobr标签来实现。语法:内容不换行内容

MongoDB初学者最常用的10个命令

1.登录mongodb 以下命令可以用于登录mongodb数据库,但是需要保证用户你声明的数据库中存在对应的用户和密码 mongo--host--port-u-p--authenticationDat

0x01 MongoDB 练习手札

最近看Node.js相关的一些东西,跟着书上的教程实现了一个Express+MongoDB+Vue.js实验性项目,对于常年使用LNMP黄金搭档的我来说,不用写SQL语句真的是太爽了,也不用关心MyS

MongoDB 存储引擎与内部原理

一、存储引擎(Storage)mongodb3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。mongodb中有多个databases,每个databa

MongoDB数据库因安全漏洞,导致Family Locator泄露二十多万名用户数据

摘要:本月第二次,未受保护的MongoDB数据库因大量安全漏洞而导致敏感信息泄露,受欢迎的家庭跟踪应用程序FamilyLocator已经暴露了超过238,000名用户的实时未加密位置数据。该应用程序非

了解 MongoDB 看这一篇就够了

作者:美码师一、简介MongoDB是一款流行的开源文档型数据库,从它的命名来看,确实是有一定野心的。MongoDB的原名一开始来自于英文单词”Humongous”,中文含义是指”庞大”,即命名者的意图

《MongoDB高手课》学习记录(第十六天)

第十六天今天开始事务的学习,要学习的章节为《19|事务开发:写操作事务》,其实主要就是讲一个参数writeConcern。什么是writeConcern?之前第一章我们学过,生产环境中MongoDB最

《MongoDB高手课》学习记录(第十七天)

写在前面最近有新项目上线,实在太忙了,学习的进度有点拖沓,但会坚持。第十七天今天要学的是《20|事务开发:读操作事务之一》章节。主要讲解的是怎么哪里读取数据的问题。readRreference参数值有

css不同浏览器兼容性问题怎么解决?

css不同浏览器兼容性问题的解决方案1.浏览器CSS样式初始化由于每个浏览器的css默认样式不尽相同,所以最简单有效的方式就是对其进行初始化,相信很多朋友都写过这样的代码,在所有CSS开始前,先把ma

php中css不加载怎么解决?

php中css不加载怎么解决?解决方法:1、首先打开HTML文档;2、然后在head标签中找到引入css文件的link标签;3、最后在link标签的href属性的值前面,加上__STATIC__即可。

css不能嵌套吗?

css不能嵌套吗?原生的css不支持嵌套写法,但是我们可以使用css的扩展语言sass和less来实现嵌套。sass和less都是css的拓展语言,less和sass最主要的区别是less是通过Jav

link标签引入css不起作用怎么办?

link标签引入css不起作用怎么办?1、使用link标签引用CSS:2、link无效的问题:●原因多数是css路径写的不正确。路径分为相对路径和绝对路径。如果是相对路径要仔细检查路径是否和文件相对应

iis不加载css怎么办?

iis不加载css怎么办?解决方法:打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容选中后安装即可。

Jquery怎么让contains不区分大小写?

Jquery怎么让contains不区分大小写?默认的Jquerycontains方法是区分大小写的,以下方法可以使contains不区分大小写(在匹配时将要匹配的元素内容全部转换成小写再进行匹配)/