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)に勝るものはないのだ。

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

Tags: JavaScript Web技術 Cloudflare PWA

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly





タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本