Cloudflare Workers支持WebAssembly和键值存储

Cloudflare最近宣布给他们的“无服务器”服务Workers新增两个附加功能:将WebAssembly作为JavaScript的替代方案,提供了对WebAssembly的支持,以及称为Workers KV的键值存储。WebAssembly可以使Workers可以通过C、C++、Rust和Go等多种编译语言编写。Workers KV提供了最终一致状态存储机制,托管在Cloudflare全球超过150个数据中心的网络中。

WebAssembly(又称WASM)是由W3C开发的,它针对JavaScript提供了更快(解析和执行)更简捷的替代方案,在2017年底进入到主流的几款浏览器中。它实现了抽象的结构化堆栈机,具有一个中间的字节码表示。它可以保证代码可以用多种编译语言编写(或重用自多种编译语言),只需简单地将其编译为.wasm文件即可。但现在对于.wasm的工具链支持还不成熟,Cloudflare的演示中“如何搭建”这一部分中包含有“Build lld from source”的详细介绍。Cloudflare还尽心地指出,WebAssembly有时候“并不总是适用的”,他们解释了什么时候适合使用WebAssembly:

在Cloudflare发表的《通过Workers KV搭建》博文中,介绍了一系列我们可以用这项技术实现的功能例子。这些包括实现使用访问令牌的API Gateway、页面中的动态数据(如翻译)、功能标志的配置以及有状态的云功能。他们还详细介绍了限制和价格:

Cloudflare将Worker和Amazon的Lambda进行比较,不过可能更加公平的是和Lambda@Edge进行比较,它在AWS CloudFront Content Delivery Network (CDN)中运行函数。这两种情况下,服务都会提供第三端(在全局CDN边缘)进行处理,就不需要在浏览器(或API客户端)或源点进行处理。这样边缘托管的目的是通过接近客户端的入网点提供低延迟服务,同时让客户端不需要承担计算开销(以及安全问题)。通过启用有状态的服务,Cloudflare开启了originless(无源)服务的可能性,仅存在于没有集中源点的边缘。

在宣布Workers对于WebAssembly的支持之前,Cloudflare的CEO Matthew Prince写推文道:“从长远角度来看,这可能是整个月我们做出的最大行业变更声明了”。其他功能即服务(FaaS)平台以及可以提供多语言的支持的基础下,WebAssembly可能是让开发人员喜爱的一种简单方式,只要工具链问题在广泛采纳之后得到解决即可。

查看英文原文Cloudflare WebAssembly and Key Value Store for Workers

感谢冬雨对本文的审校。

讨论

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/10/Cloudflare-Workers-WASM-KV

扫码关注云+社区

领取腾讯云代金券