CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応

2018年10月3日

CDNプロバイダのCloudflareは、3月にリリースした「Cloudflare Workers」を強化し、WebAssemblyの実行に対応したことを発表しました

Cloudflare Workersは、同社が提供するグローバルなコンテンツデリバリーネットワーク(CDN)のエッジにおいて、開発者がJavaScriptのコードを配置し実行できる機能を提供します。また、HTML5の新機能として策定されたService Workerも利用可能です。

参考:JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始

Cloudflare Workers

Service Workerとは、もともとWebブラウザに実装されバックグラウンドで起動される、いわばプログラミング可能なローカルプロキシです。ルーティングやレスポンスやキャッシングなどを操作でき、オフラインで動作するWebアプリケーションを実現する上で重要な機能を提供します。

これをCDNのエッジで提供することにより、JavaScriptで操作可能なインテリジェントなキャッシュやルーティングなどを実現できます。

これによってクライアントに対して非常に高速にレスポンスを返すことができ、またオリジンサーバの負荷を効果的に削減しつつ、広範囲に分散された高い冗長性を持つ分散システムが構築可能になります。

Cloudflare WorkersがWebAssembly対応に

今回発表されたのは、このCloudflare WorkersがWebAssemblyに対応したことです。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットで、C言語やGo言語、Rust言語などさまざまな言語から生成できます。

Cloudflare WorkersがWebAssemblyに対応したことで、JavaScript以外での開発が可能になることと、JavaScriptのコードよりも高速にアプリケーションが実行できるようになります。

では、どのような場合にCloudflare WorkersでWebAssemblyを用いるのか。Cloudflareのブログに投稿された記事「WebAssembly on Cloudflare Workers」では、次のように説明されています。

WASM really shines when you need to perform a resource-hungry, self-contained operation, like resizing an image, or processing an audio stream.

WASMがその能力を本当に発揮するのは、リソースを大量に消費する自己完結型の処理、例えば画像のサイズ変更や音声処理などの場面だ。

These operations require lots of math and careful memory management. While it's possible to perform such tasks in pure JavaScript — and engines like V8 have gone to impressive lengths to optimize such code — in the end nothing beats a compiled language with static types and explicit allocation.

これらの処理は多くの計算と綿密なメモリ管理が求められる。これらはJavaScriptでもできないことはないし、V8エンジンはそうした大きな処理を最適化する能力に達してもいるが、結局のところ静的型付けと明確なメモリ割り当て処理(が行えるWebAssembly)に勝るものはないのだ。

この例に挙げられているようなヘビーな処理をユーザーに近いエッジで分散して実現できるとすれば、クラウドを用いた集中処理とは異なる興味深いアプローチが実現できそうです。

あわせて読みたい

JavaScript Web技術 Cloudflare PWA




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本