Microsoft 更新 Cosmos DB,提供 Cassandra 支持,提高可用性保证

  • Steef-Jan Wiggers
  • 盖磊

2017 年 12 月 19 日

话题:AWSAzure语言 & 开发架构

在上个月的 Connect 2017 大会上,Microsoft 新发布了多个 Azure Cosmos DB 更新,其中包括支持使用 Cassandra NoSQL 数据库的 API,以及更高的可用性保证。这样,用户可以在 Cosmos DB 内使用针对 Cassandra NoSQL 数据库的 API 去操作数据模型。此外,可用性保证也从 99.99%提高到 99.999%。

Ike Ellis 是一位 Microsoft MVP,同时也是 Crafting Bytes,一家位于加州圣地亚哥的独立软件开发公司,的合伙人。他指出

当前,在 Azure Cosmos DB 中可以使用 Microsoft 推出的 Cassandra API 预览版。Cosmos DB 是一种瑞士军刀类型的数据库,时常也被称为多模型数据库([Multi-model database]https://en.wikipedia.org/wiki/Multi-model_database))。最初在今年早些时候发布该产品时,Microsoft 使用的命名是 DocumentDB。针对 Cassandra 的更新,填补了 Azure 云数据库整体结构中的一块重要空白。

Microsoft Cosmos DB 是一种数据库托管服务,在其全球所有的数据中心中提供。该数据库服务支持图数据、列存储、键值存储和文档数据库等多种数据模型。用户可以借助于 Cosmos DB 对 Cassandra 的支持,提升其内部部署的 Cassandra 应用程序。进而,客户为充分利用该服务提供的所有优势,会选择迁移到 Cosmos DB 上。这样,客户不再需要管理 Cassandra 集群,或修改集群的配置。此外,无论需要存储数据的规模如何,以及是否要达到五个 9 的可用性要求,Microsoft 都能保证 SLA 在吞吐量上具有四个 9。

在 Connect 2017 大会期间,Microsoft 云服务和企业组的执行副总裁 Scott Guthrie提出

Cassandra 是一种可以部署到商业服务器上的开源分布式数据库管理系统。Microsoft 推出的新 API 将支持开发人员重用已有的代码,并可使用分布于全球的 Cosmos DB NoSQL 服务,作为实现“Cassandra 即服务”的基础。

在配置 Cosmos DB 实例之前,客户可以选择使用新的 Cassandra API。一旦完成配置,就可以使用一个简单的连接代码段,实现 Cassandra 应用程序连接到 Cosmos 数据库实例。在 Cosmos 数据库实例中,开发人员可以使用 CQL shell,在表中用 CQL 语句创建 Cassandra 的键空间(key space)。虽然命令是在 Cosmos DB 终端上执行的,但是开发人员无需了解命令与 Cosmos DB 实例通信的细节。

图片来源:https://www.youtube.com/watch?v=1Sf4McGN1AQ&feature=youtu.be的视频截图

公有云提供商 Google、Microsoft 和 Amazon 都提供了云上的数据库服务。在今年早些时候,Microsoft 发布了一张图表,对比了各大云服务提供商的数据库服务,其中列出了 Cosmos DB、AWS Dynamo DB 和 Google Cloud Spanner。在该对比图表中,Cosmos DB 以其多模型和多 API 支持、全球分布、一致性模型、集中化管理和 SLA 等特性脱颖而出。

图片来源: https://medium.com/@jevdemon/a-chart-comparing-azure-cosmos-db-amazon-dynamodb-and-google-cloud-spanner-ab0afdd244cc

但是在 AWS re:Invent 2017 大会上,Amazon 宣布了对 Dynamo DB 的一些更新,例如全局表和按需备份等,并且 Dynamo DB 已拥有数十万客户。此外,Amazon 的客户已经从 Cassandra 迁移到 Dynamo DB。 因此,客户在 Cassandra 应用程序中寻找云数据库服务时,Microsoft 的 Cosmos DB 并非唯一的选择。

图片来源:https://www.youtube.com/watch?v=EFDDjzIGxA0的视频截图

为了应对 Cosmos DB 和 AWS Dynamo DB 的发展,Google 改进了其数据库服务 Cloud Spanner。现在,Cloud Spanner 提供五个 9 的可用性,没有停机时间,跨越多个地区和大陆的事务和同步复制,并支持更宽范围上的应用工作负载。与其竞争对手 AWS Dynamo DB 和 Google Cloud Spanner 相比,Cosmos DB 唯一的特点在于多模型和多 API 支持。换句话说,Cosmos DB 是那些寻求对模型和 API 支持灵活性的客户的选择。

Jet.com 的数据工程高级总监 Christoph Leinemann 在 Azure 博客上撰写了一篇博文,介绍了他们在 Cosmos DB 上使用 Cassandra 的情况。文中提及

我们正在多个关键业务用例中使用基于 Azure Cosmos DB 的 Cassandra API。特别需要指出的是,这一解决方案中,关键的优势在于地理冗余和动态扩展特性。我们期待,未来能从中获得更多的收益。

查看英文原文: Microsoft Updates Cosmos DB with Cassandra Support and Provides Better Availability Guarantees

AWSAzure语言 & 开发架构