Fastly、JavaScriptエンジンをWebAssemblyで実装。CDNエッジのサーバレス環境「Compute@Edge」でJavaScriptサポート発表(訂正済み)

2021年7月27日

(お詫びとお知らせ:本記事はFastlyの発表と同社へのメールでの取材に基づいて執筆いたしましたが、記事公開後に同社より、回答を間違えたとの申し出がありました。そのため改めて同社から提供された情報を基に、タイトルと本文を訂正しました。訂正前の記事内容は本文最後にHTMLでコメントアウトされています。)

大手CDNベンダのFastlyは、CDNエッジで提供しているサーバレスコンピューティング環境「Compute@Edge」で、JavaScriptのサポートを発表しました。

Compute@Edgeは、同社が開発したWebAssemblyのランタイム「Lucet」をベースにした、CDNエッジでのサーバレスコンピューティング環境です。あらかじめプログラムのコードをWebAssemblyのバイナリにコンパイルしたものを実行することで、約35マイクロ秒という高速でアプリケーションが起動することを大きな特徴としています。

ただし、WebAssemblyのバイナリを生成できるプログラミング言語としてよく使われるのはGo言語やC/C++、Rustなどであり、一般にJavaScriptが使われることは滅多にありません。そのため、Compute@EdgeでもJavaScriptはサポートされていませんでした。

JavaScriptエンジンのWebAssembly版を開発

そこで同社は今回のCompute@EdgeでJavaScriptをサポートするに当たり、Compute@Edge上でWebAssembly版のJavaScriptエンジンを実行することにしました。

具体的には、FirefoxのJavaScriptエンジンであるSpiderMonkeyのWebAssembly版を開発。このWebAssembly版SpiderMonkeyをCompute@Edge上で実行することで、アプリケーションとなるJavaScriptコードの実行を実現しました。

WebAssemblyによるJavaScriptエンジンの実装と、これによる起動速度や実行速度の最適化については、先月にBytecodeAllianceのWebサイトでFastlyのLin Clark氏が技術解説をしています。

これによると、WebAssembly版のJavaScriptエンジンでも、事前初期化ツールを用いてビルド時にJavaScriptエンジンによるJavaScriptコードの初期化処理を実施し、初期化済みのバイトコードをJavaScriptエンジンに持たせることで起動時間が劇的に短縮できることを示しており、こうしたテクニックが今回のCompute@EdgeでのJavaScriptサポートでも参照されているとしています。

同社は以前から、近い将来Compute@EdgeでのJavaScriptサポートを行うと表明していました。この表明時には、AssemblyScriptを用いることで、JavaScriptからWebAssemblyバイナリを生成する計画を示していました。しかし今回発表されたJavaScriptサポートでは結局その方法ではなく、JavaScriptエンジンをWebAssemblyで実装する方法を選択することとなりました。

あわせて読みたい

WebAssembly クラウド サーバレス Fastly




タグクラウド

クラウド
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本