写点什么

微软通过 Cosmos DB 向 MongoDB 和 Cassandra 发起挑战

2018 年 3 月 04 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

当人们对微软感到失望时经常会说“拥抱、扩展、消灭”。表明上看,这话说的是技术公司设法吸引竞品的客户,但是具体的策略比那复杂。本报道将使用 Azure Cosmos DB 作为例子来说明这个概念。

拥抱

第一步是拥抱竞争对手的标准。在八九十年代,这意味着能够读写他们的文件格式。例如,MS Word 需要能够完美地打开、修改和保存 WordPerfect 文档。否则,对于当时是主流的 WordPerfect,其用户甚至都不会考虑试一下 Word。

在 NoSQL 数据库领域,需要拥抱的标准是 API。和关系型数据库至少会支持 ANSI SQL 标准不同,每一种 NoSQL 数据库都有自己的一套 API 和相应的驱动。因此,理论上讲,用户会被特定的产品绑定,不付出很高的代价重写,就无法切换到其他的产品。

通过拥抱当前较为流行的数据库的 API 和驱动,微软的 Cosmos DB 解决了这个供应商锁定问题。我们这里所说的“拥抱”是一种纯字面的理解。

当配置 Cosmos DB 实例时,需要选择一种 API 类型,选项包括:

  • SQL (实际上是旧有的 Azure DocumentDB)
  • Gremlin,一种图数据库
  • MongoDB
  • Azure Table
  • Cassandra

如果用户选择 MongoDB 作为使用的 API,那么他就可以使用已有的 MongoDB 驱动,而不是一个类似 MongoDB 驱动的驱动。而且,微软的文档会直接把用户导向官方的MongoDB 驱动,包括Node.js、.NET、Java 等。类似地,对于Gremlin 和assandra,用户在使用Gremlin 或Cassandra 模式时,也是使用各自相应的驱动和Cosmos DB 通信。

理论上,这意味着Azure Cosmos DB 是其他NoSQL 数据库的替代品。

扩展

由于上述所有的第三方数据库都是免费/ 开源的,所以除了托管之外,微软还必须提供更多的功能。否则,当其他数据库提供了性能更好或者价格更低的兼容云的解决方案时,用户就会立马切换回去。

这就轮到微软的其他Azure 产品发挥作用了。Cosmos DB 可以和Apache Spark 或Apache Kafka 等开源产品集成,也可以和Azure Search、Azure Data Factory 和HDInsight 等专利产品集成。不是扩展文件格式,而是设法扩展用户使用数据库可以完成的工作。

虽然从MongoDB 的云托管切换到Cosmos DB 主要是QA 和操作问题,那么使用其他Azure 产品会极大地限制用户将来的架构选择。用户需要根据长远规划仔细权衡微软今天提供的便利和功能。

消灭?

长远来看,NoSQL 的发展还很难预测。一种可能是,发展出一种所有主流NoSQL 数据库都遵循的标准查询语言,和上世纪80 年代的ANSI SQL 一样。另一种可能是,ANSI SQL 继续发展,并最终承担起这个角色。

或者,MongoDB 中已有的API 变成了事实上的标准,得到了主流供应商的非正式认可,但永远不会得到一个标准组织的正式批准。

同时,任何一种NoSQL 数据库都不可能一直占据主导地位,因为竞争对手很容易复制他们的REST API。即使CosmoDB 成功颠覆了MongoDB 或Cassandra 的市场地位,其他数据库/ 云供应商,如亚马逊或谷歌,也可以做同样的事情。

查看英文原文 Microsoft Directly Challenges MongoDB and Cassandra with Cosmos DB

2018 年 3 月 04 日 18:002401
用户头像

发布了 1008 篇内容, 共 313.6 次阅读, 收获喜欢 282 次。

关注

评论

发布
暂无评论
发现更多内容

十三、深入Python字典和集合

刘润森

Python

网上赌被黑系统维护出不了款怎么办

其实很简单

互联网 网络安全 信息安全 网络

阿里大牛原创技术好文精选整理:Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo

Java架构之路

Java 程序员 面试 编程语言

来点不一样的: 精选200个Java技术面试真题,详解应聘Java程序员常见考点,在Github上标星89.6K

996小迁

编程 程序员 架构 面试

十四、深入Python条件和循坏

刘润森

Python

iOS底层原理之—dyld与objc的关联

iOSer

ios ios开发 iOS Developer dyld objc

微服务已成Java开发的面试门槛,你连SpringCloud都不会怎么涨薪

Java架构之路

Java spring 编程 程序员 面试

每周花6小时跟清华大牛马士兵学Java:多线程高并发、JVM调优、算法、设计模式等

Java架构之路

Java 程序员 面试 算法 编程语言

Linux的信号

菜鸟小sailor 🐕

c++

Flink时间服务和计时器-6-5

小知识点

scala 大数据 flink

Java进阶架构师面试手册:核心框架篇整理,助我斩获65W架构师Offer!

Java架构追梦

Java 学习 架构 面试 框架

区块链要如何解决供应链金融痛点?

CECBC区块链专委会

区块链 金融

每天都要写吗?

Nydia

架构师训练营第四周学习总结

Gosling

极客大学架构师训练营

职场求生攻略答疑篇之 4 —— 社会有多真实,人心就有多虚伪

臧萌

职场 职场成长

第11周作业

Vincent

极客时间 极客大学

第11周总结

Vincent

极客时间 极客大学

典型的大型互联网应用方案

garlic

极客大学架构师训练营

如何设计大型互联网系统架构

天天向上

极客大学架构师训练营

Redis - redis.conf - 中文翻译

学个球

redis 缓存 翻译

一文带你轻松了解Python导入模块的各种命令

计算机与AI

Python

面试多次被拒,‘两个月’61天,我收到了蚂蚁金服P7级的offer

周老师

Java 编程 程序员 架构 面试

大区块链的必然性

CECBC区块链专委会

区块链技术

三步法解析Express源码

执鸢者

面试 前端 Node Express

架构师训练营第四周作业

我是谁

极客大学架构师训练营

大型互联网系统常用的技术方案

天天向上

极客大学架构师训练营

第四周总结

Geek_ac4080

十年 Java 开发经验,走了五年弯路,整理了一份 Java 架构师进阶路线及进阶资料!

Java成神之路

Java 编程 程序员 面试 编程语言

架构师训练营第四周课后作业

Gosling

极客大学架构师训练营

马化腾的区块链理想

CECBC区块链专委会

区块链 马化腾

甲方日常 32

句子

随笔杂谈

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

微软通过Cosmos DB向MongoDB和Cassandra发起挑战-InfoQ