V8 IsolateからFirecracker MicroVMへ:Edge Functionsが5倍爆速に!
5x faster Edge Functions: V8 isolates to Firecracker MicroVMs
5x faster Edge Functions: V8 isolates to Firecracker MicroVMs
Edge Functionsのアーキテクチャが刷新され、これまでのV8 IsolateベースからFirecracker MicroVMへと移行したことで、パフォーマンスが劇的に向上し、実行速度が5倍になりました。この変更により、セキュリティと分離性能を維持しつつ、より高負荷なタスクや複雑な処理をエッジ環境で高速に実行できるようになります。
v8 isolateのレイテンシがmicrovmと比較してどこから来ているのか、詳しく説明してほしい。
Cloudflare Workersも同じv8 isolateを使っていて、Netlifyが言う25-40msよりもずっと高速に動作していることを考えると、この内容はいまいち信じがたいんだが。
ミリ秒単位でこだわるなら、なんでJavaScriptなんて使ってるの?
UnikraftのAlexです!microVMに関する話であれば、何でも気軽に質問してね。
興味があれば、こちらの技術解説記事もどうぞ:
AWSがLambdaのためにMicroVMを開発したのに、Lambda上のNode.jsが(レイテンシもスループットも)死ぬほど遅いのは興味深いよね。聞かれればいくらでも愚痴れるよ。ユースケースが認証検証やルールチェックなどと似ていることが多いんだから、AWSもこの技術をもっと活用すればいいのに。
AWSを罵りたくなった時は、彼らがFirecrackerを提供してくれたことを思い出してほしい。最高峰のmicrovm技術のひとつで、AWS以外のプロダクト(今回のもその最新例だね)の基盤にもなっているんだから。
自分はSlicerVMをかなり使い込んでる。Firecracker MicroVMを一般の人でも使いやすくしたようなやつ(プラットフォーム提供でヘビーユーザーにも対応してる)で、ローカルで安全にエッジ系のワークロードを動かしてるよ。エージェントとかローカル開発用のCIとかね。ProxmoxのVMオーケストレーターをこれに置き換えたおかげで、どこへ行ってもノートPC上でセキュアかつ高速なVMが使えるようになった。Docker風のビルドもサポートしてるから、コンテナからセキュリティを一段階上げたいなら(エージェントを使うならそうすべきだけど)、かなりおすすめ。
正直、Firecrackerが将来的にDockerを置き換える可能性はあると思うけど、エッジ関数の実行に関しては、ほとんどのケースでv8 isolateに取って代わるとは思えないな。まず、今回の記事のシナリオは他人のisolateを使っていたせいでホップ数が増えていて少し特殊だし、次に、JS/TSを動かすisolateは静的解析が非常に優秀だから、過去の脆弱性やエクスプロイトを大規模に追跡するようなエッジコンピューティングのシナリオではかなり都合がいいんだ。MicroVMは柔軟性が高すぎる分、同じメリットを得ようとすると利用可能なリソースをガチガチに制限しないといけないから、中堅企業にとってはisolateの方がトレードオフのバランスがいいんだろうね。もちろんNetlifyはその規模じゃないし、そこに大きく依存しているから彼らにとっては都合がいいんだろうけど。
MicroVMが起動してJavaScriptサーバーがポートをリッスンし始めたら、そのMicroVMのスナップショットを取得する。 [...] スナップショットから新しいMicroVMを起動する。
これって怖くないか?RNG(乱数生成器)の状態をフォークすると、UUID生成や暗号化で壊滅的な失敗を引き起こす可能性があるぞ。
以前はリクエストをホスト型実行サービスに送っていたが、現在は自社エッジネットワーク内のMicroVM上で実行しており、中央値で約5倍高速化している。
つまり、実行自体は今も遅いかもしれないのに、ネットワークのオーバーヘッドを取り除いただけってこと?ミスリーディングだな。