Azure Cosmos DB变为无服务器平台

2020-12-07 07:46 来源:中国存储网

Azure的Cosmos DB是该平台的基础之一,可为其许多关键服务提供支持。从头开始设计为分布式数据库,它实现了一组不同的一致性模型,使您可以在应用程序的性能和延迟之间进行权衡。然后,从熟悉的NoSQL和SQL API到对Mongo DB的API的支持,再到Gremlin图形数据库查询引擎,都有不同的数据处理模型。

Cosmos DB中有足够的资源来支持大多数常见的云开发方案,从而为您提供了一个一致的数据平台,可以在全球范围内共享数据。微软经常将其描述为“行星级数据库”,恰如其分。

Azure Cosmos DB变为无服务器平台

无服务器替代预置吞吐量

对于所有好处,Cosmos DB确实有一些缺点。尤其是它的成本。尽管免费选项相对有限,但是大规模运行它可能会很昂贵,并且围绕它构建应用程序时需要考虑到这一点。Cosmos DB请求单元的预算是一个复杂的过程,很难在第一时间就做好,尤其是在考虑手动或自动扩展时。

微软已经运行了宇宙DB无服务器选项的预览,而现在,基于其核心SQL API。这是传统配置选项的有趣替代。它仅在运行请求时向您收费,而在什么都没有发生时挂起您的实例。数据库操作会有额外的延迟,因为您的实例在挂起时需要启动。当然,存储需要付费,但是任何Azure数据库都是一样的。现在,最初的试用版已扩展到所有Cosmos DB API,并且在不久的将来还不会提供一般可用性。

在Cosmos DB中添加无服务器选项对于许多类型的工作负载非常有意义,在这些工作负载中,您会批量获取少量请求。对于具有不规则操作模式的小工作量,基于消耗的定价模型非常有意义-并且由于不承诺预置吞吐量,因此可以长期节省大量资金。

成本低:您需要为每个无服务器请求单位支付0.282美元,在一个计费周期中,费用高达一百万RU。如果您需要更可靠的服务器,则可以设置一个可用区,尽管这会使成本增加1.25倍。那仍然是一个合理的交易,而您在可预测性方面失去的东西,则可以降低成本。对于手动和自动预配置的吞吐量,存储成本保持不变。

无服务器Cosmos DB入门

跳进去很容易。像标准的Cosmos DB帐户一样,您需要将其设置为预订,并将无服务器实例添加到资源组。接下来,选择您计划用于查询的API,然后在要求您选择容量模式时,选择无服务器而不是预配置的吞吐量。最后,将其链接到一个区域,记住您只能在单个Azure区域中使用无服务器。没有地理冗余的选择。您也将无法在免费套餐中使用它。

一旦无服务器实例运行,就可以使用其API加载数据并进行查询。像Cosmos DB的标准实例一样,您可以构建在数据库中运行的JavaScript函数和触发器,以及使用其许多不同的API来管理查询。

无服务器Cosmos DB应该会很快退出预览,并增加对其所有API的支持,甚至是对最近的Cassandra API的支持。由于它是公共预览,因此可以直接从Azure门户对其进行设置和浏览。尽管在预览阶段,不支持将ARM或其他基础结构用作代码部署工具,但是通常应该只有一次才可以使用该服务。您无法自动执行配置和部署,因此由于部署将需要手动进行,因此您现在将无法将其用作CI / CD(连续集成/连续交付)管道的一部分。

使用无服务器Cosmos DB构建代码

您应该从无服务器Cosmos DB获得很多价值的地方与Azure Functions并行。这两个无服务器环境可以很好地协同工作,非常适合突发,小批量,事件驱动的应用程序。无服务器Cosmos DB可以迅速从零增加到每秒5,000个请求单位,因此,如果您编写的代码使用Function来跟踪错误情况或其他警报,那么它是快速收集和存储数据的一种选择。

Microsoft建议将其用作开发环境的一部分,在该环境中,您将捕获有关全面应用程序需要的请求的数据。由于供应请求单元是一件黑手艺,因此,使用所有数据库内代码运行的无服务器实现是一个有用的开发工具。您可以设置操作环境,运行测试,捕获使用的请求数,然后使用该数据为生产部署提供吞吐量。

了解无服务器限制

使用无服务器Cosmos DB帐户存在一些限制。也许最重要的是,由于无服务器帐户仅在单个区域中运行,因此您无法访问多区域部署。这是有道理的限制:多区域Cosmos DB实现需要同时运行多个实例以实现区域间复制和一致性。如果无服务器实例仅在处理请求时运行,则无法保证另一个区域将联机以处理复制。结果,无服务器实例的Cosmos DB服务级别目标发生了变化,写入时间预计为30ms或更短,读取时间为10ms或更短。

另一个关键限制是每秒最多5,000个请求单位。同样,对于大多数简单的实现或开发实现而言,这已经足够了,但是它确实需要您密切注意应用程序,并且如果您经常超出限制,则准备好切换到预配置的Cosmos DB实例。同时,每个无服务器的容器只能存储50GB的数据和索引。Microsoft在Azure门户以及Azure Monitor中提供工具来帮助监视操作。

向Cosmos DB添加无服务器选项可以回答许多有关成本的问题。对于不需要全局覆盖的低使用率方案,它应该是您的首选。仅在您能够理解应用程序的请求模式并据此进行预算时,才转向使用预配置的吞吐量实例。

第一页 第二页 继续阅读