Workers KV,基于边缘节点的无服务器式键值存储

阅读数:13163 2019 年 6 月 2 日 08:00

Workers KV,基于边缘节点的无服务器式键值存储

Cloudflare Workers 是一个无服务器平台,使开发人员能够将 JavaScript 代码和 WebAssembly APP 部署到 Cloudflare 广泛延伸的数据中心(截至如今,Cloudflare 已经在 80 个国家 180 多个城市搭建了其云网络数据中心)。Workers 可以扩展出数千个实例并拦截到站点的 HTTP 请求。这些实例不到 5 毫秒就可以完成启动,而实例完成运行最多只需 50 毫秒。到目前为止,如果一个 Worker 实例需要检索数据,开发人员要么将数据存储在 Worker 实例本身的脚本中,要么从 Cloudflare 的缓存中加载数据文件。之前在 Cloudflare 团队的一篇博客中提及,在使用 Workers 平台后不久,一些客户就提出了需求,需要更好地存储持久性数据。这就是促使 Workers KV 诞生的源由。

Workers KV 有一个简单的读写API 接口,可以通过HTTP 或在Worker 实例内部进行调用。开发人员可以用文本、JSON、arrayBuffer 或stream 数据形式进行检索。该服务专门为快速读取而设计,据报道其平均响应时间为12 毫秒。写入Workers KV 的任何数据(大小可达2MB)在未使用静置时、在传输过程中,以及存储在本地磁盘时都会进行加密。Cloudflare 在beta 测试期间,通过添加用于批量加载的端点,极大地提高了写操作的性能。写入Workers KV 的键会自动在Cloudflare 的云网络上进行复制,不到60 秒就可以完成全球的一致性同步。然而, Cloudflare 的文档指出,只有那些最经常被访问的键值才会在全球范围内进行复制,Workers KV 对不会经常读取的值进行集中存储。这是一项“无服务器”的服务,即在客户不必接触任何基础设施操作的情况下,它就能完全实现其所有管理。所有部署、升级、扩展和数据复制都由 Cloudflare 处理。

虽然 Workers KV 的产品经理很谨慎,并没有透露关于这项服务所采用的备份存储或技术的细节,但他们还是信心满满地对这项服务做出了保证。Cloudflare 团队的一篇博文简要解释了 CAP 原理,并强调了其设计理念。

Workers KV 的设计同时兼顾了可用性和分区容错性。这种组合又称为最终一致性,它使 Workers KV 具有两个独特的竞争优势:

  • 在 Cloudflare 缓存技术的支持下,读取速度非常快(平均速度为 12 毫秒)。
  • 数据在 175+ 边缘数据中心中可用,并且在区域性故障中断情况下可迅速恢复。

不过,此最终一致性有时仍需要权衡。比如两个客户端同时向同一个键写入不同的值,后面那个客户端会最终“胜出”,其输入的值将成为全局一致的键值。

基于这些考虑因素,Workers KV 的典型应用场景是什么呢?Cloudflare 根据其客户目前构建的内容给出了一些用例示范

  • 海量的重定向,例如处理数十亿个 HTTP 重定向。
  • 用户身份验证,用以验证用户对 API 的请求。
  • 翻译相关的键,动态地完成网页本地化。
  • 配置数据,用以管理谁可以访问源数据。
  • 基于任务和状态机的 Step functions,在多个 API 函数之间同步状态数据。
  • 边缘节点上存储了大量小文件。

2018 年 9 月,Cloudflare 宣布开始 Workers KV 的 Beta 测试时,还建议可以用 Workers 和 Workers KV 构建一种既廉价性能又高的 API 网关,这将比 Amazon API 网关等其他方案便宜得多。在同一篇文章中,他们列出了与改变 Worker 实例性能相关的其他用例,而使用 Workers KV 进行这些改善并不需要进行重新部署、A/B 测试,甚至不需要为电商网站存储购物车数据。

Workers KV 现在已经发布正式商用版本并公开发布了其服务价格。如果用户已经有5 美元的Workers 包月订阅,那么可以自动获得的Workers KV 免费使用包括:1 GB 的存储,1000 万次读取操作和100 万次写入操作。如果你的实际使用超出了这些数量,则每月每GB 的存储收取0.5 美元,每100 万次读取操作收取0.5 美元,每100 万次写入操作收取5 美元。命名空间(Namespace)是容纳键值对的容器,Workers KV 支持开发人员创建多达 20 个命名空间,每个命名空间可容纳数十亿个键值对。用户每秒钟可以对每个键执行无限次读取和 1 次写入。

Cloudflare表示,这种新型的无服务器键值存储方式“为开发人员构建软件打开了一种全新的思路:以后的软件哪些部分放在服务器上,哪些放在客户端上,以及,哪些又放在互联网上呢?”

查看英文原文: Cloudflare Releases Workers KV, a Serverless Key-Value Store at the Edge

评论

发布