时间:2018-01-12 来源:互联网 浏览量:
提到微软,提到数据库,很多人可能首先会想到SQL Server,但今天我们要说的主角却不是它,而是Cosmos DB。在国内,了解Cosmos DB的人可能并不多,微软中国也几乎没怎么宣传它,但它在国外势头却很猛,今天我们就聊聊它。
Cosmos DB是微软2010年立项,经过7年研发,于2017年5月正式发布的云数据库服务,该数据库服务支持图数据、列存储、键值存储和文档数据库等多种数据模型,同时支持强一致性和最终一致性。
短短的几个月内,Cosmos DB不断增长,据DB-Engines排名显示,Cosmos DB排名从58位攀升到31位,提升27位。超越了Google BigQuery和AWS Redshift,逼近AWS DynamoDB。
仔细观察,AWS和微软这两个竞争对手在云数据库的处理方法上截然不同的。AWS提供了多种不同类型的云数据库产品供用户选择,比如:关系型数据库(Aurora / RDS),数据仓库(Redshift),内存数据库(ElastiCache),图形数据库(Neptune)和NoSQL(DynamoDB)。而微软则恰好相反, Cosmos DB采取一刀切的方式,号称可以适用一切通用型数据库。
云数据库将是云竞争的新战场
目前,大多数数据依然还存储在传统关系型数据库中,在DB-Engines排名前3位的Oracle,MySQL和SQL Server,地位依旧牢不可破。尽管NoSQL已经开始改变这种情况(MongoDB就是个最好的例子),但数据库仍然是企业基础架构中最难改变的,去IOE最难去的是O,已经是公认的事实足以说明问题,因为更换数据库涉及的风险太多了。
为了规避风险,企业可能会回避与弱小的NoSQL创业公司做生意,但他们根本无法避免与AWS和微软这样的巨头做生意。
不过,虽然Oracle,MySQL和SQL Server无可争议地占据统治地位,但云数据库迅速崛起已经是事实,并且还在快速增长。比方说,像AWS DynamoDB和Azure Cosmos DB。尽管从DB-Engines上看,Oracle的受欢迎程度是Cosmos的100倍还要多,但无法否认,对于诞生在云中的新应用程序来说,这些云数据库占据主导地位。
这一点很重要,正如Gartner分析师Thomas Bittman所说,从私有云向公共云环境的转变是明显的,并且正在加速:“新事物倾向于进入公共云,而传统的业务则倾向于私有云,但新事物增速更快。”
这个差距还是很大的,数据显示,公有云有20倍的增长率而私有数据中心只有3倍的增长率。当然,目前来说,企业旧的应用和系统使这些新的云数据库可能相形见绌,但这种情况不会持续很久。
值得注意的是,在这些云数据库的玩家中,Cosmos DB已经超越了其他云数据库的竞争者。尤其是它最近已经超过了Google BigQuery和AWS Redshift。虽然离超越AWS DynamoDB还有一段距离,但按目前这个增长率,实现超越是完全可能的。
Cosmos DB的优势在哪里?
下面这张由微软发布的图表,其中列出了Cosmos DB、AWS Dynamo DB和Google Cloud Spanner。在该对比图表中,Cosmos DB以其多模型和多API支持、全球分布、一致性模型、集中化管理和SLA等特性脱颖而出。
Cosmos DB的迅速增长,其原因可能是开发人员对“多元化持久性”兴趣的下降。所谓“多元化持久性”是在2011年,由Thoughtworks的Martin Fowler提出的,大概意思是“任何具有一定规模的企业对不同类型的数据将有各种不同的数据存储技术,而不是强迫数据符合关系数据模型。”
例如,对一个企业而言,其应用程序的某些部分可能存储在分布式数据库如Apache Cassandra中,部分用图形数据库Neo4j,还有一部分可能会在关系型数据库如PostgreSQL中。像MongoDB数据库的普及就是一个清晰的迹象,事实上,我们的确是生活在一个日益多元的世界里。
Cosmos DB的突出优势在于,开发人员可能希望有一种通用型的数据库。因为如果给他们更多的选择只会让工作变得更加复杂和艰难。因为支持多种数据的功能,让Cosmos DB既能充当图形数据库,又能充当NoSQL数据库,还能充当列式数据库等等。正如InfoWorld的Serdar Yegulalp所说, “微软提供的不是一个特定的数据库。对不同类型的数据库而言,它是一个通用型的后端。”
这让开发人员学习成本大大降低,工作变得更加容易。当然Cosmos DB的面面俱到也存在一个风险,那就是对于所有应用程序来说,它并不是特定工作的最佳工具。毕竟一个面面俱到的数据库,会让人觉得它的一切都很平庸。然而从DB-Engines上Cosmos DB的受欢迎程度判断,目前开发人员似乎还并未从这一角度来看待它。
不管怎样,至少目前所有这一切预示着2018年的云数据库之战会在两家公司即亚马逊和微软之间展开。在刚刚过去的AWS Re:Invent 2017会议上,AWS发布了大量的新数据库服务和功能升级,每个都对应一个单独的产品。相比之下,微软只对Cosmos DB进行了升级,增加一些功能。
最终谁能赢得云数据库的这场战争,这将由开发人员决定的。但我们相信2018年将会是云数据库激烈竞争的一年,其他玩家也会相继跟进。在国内,我们已经看到不少玩家陆续发布了新的自研数据库服务。