CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは?2019年5月14日CDNプロバイダとして知られるFastlyは先月(4月1日)、WebAssemblyのコンパイラとランタイムで構成される「Lucet」をオープンソースで公開。同社のエッジコンピューティング環境として開発を進めていることを明らかにしました。WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。FastlyはこれをCDNのエッジにあるサーバ上で動作するように移植し、しかも50マイクロ秒(1マイクロ秒は100万分の1秒)以下でWebAssemblyモジュールが起動しメモリオーバーヘッドもわずか数キロバイトという非常に高速で軽量な実行環境とすることで、いわゆるパブリッククラウドのような大規模なコンピューティングリソースを持たないエッジ環境でも大規模に展開できるものとしています。同社はWebAssemblyをエッジコンピューティング環境として選択し、開発を進めているのでしょうか。McMullen氏にインタビューを行いました。Lucetとは、WebAssemblyの事前コンパイラと、それに関連するツール群です。Lucetという名前は、バイキングがロープや組ひもなどを作るために使った道具から由来しています。コードを組み合わせて面白いものを作り出すようなもの、ということですね。Lucetは非常に大規模な並列性と短い時間で終了するワークロードに特化しています。そのため50マイクロ秒以下で起動し、数千から数万以上同時に実行されることが想定されています。プラットフォームを特定の言語のために構築する、ということをしたくなかったためです。ジェネリックなプラットフォームとしてはJavaVMもありましたが、WebAssemblyのほうがよりジェネリックです。いうのも、近い将来にはおそらくさらに多くの低レベルな型付け言語がWebAssemblyへコンパイルできるようになると思われるからです。ガベージコレクション性能や高級言語を実装するのに必要な参照型など、現時点ではWebAssemblyに欠けているものもあります。将来性という点で、業界はこの方向に進んでいると考えています。私たちは数年前からこのプロジェクトに取り組んできていて、WebAssemblyのコンパイラや中間表現を用いたうえで、ほとんどオーバーヘッドのない(仮想マシンのような)分離技術を構築することができました。WebAssemblyより前、どのテクノロジが私たちの目的に適しているかを調べていました。