- MicroVMは、この5年間で技術R&D分野の注目領域となっている
- 中核となるアイデアは、IBMが1960年代にハイパーバイザーとともに発明したいくつかの概念と技術を再創造したもの
- 他のOS上でゲストとして実行されるよう、OSを特別に設計すること
- VM内で動作しつつ、偽のハードウェアではなく特定のハイパーバイザーが提供するリソース(VirtIO)と通信するようにすること
- 商業的な目標は「サーバーレス」コンピューティング性能を提供すること
- AWS LambdaはFirecrackerで動作
- FirecrackerはLinuxカーネルに組み込まれたKVMハイパーバイザーを基盤としている(従来のAWSはXenハイパーバイザー基盤だった)
- Linux-On-Linux
- FreeBSDは25msで起動可能で、同じ環境ではLinuxは75〜80msかかる
- FreeBSDカーネル開発者のColin Percivalが最初に起動速度改善の作業を始めた時は10秒だったが、今では400倍高速化した
- 現在はx86-64で最適化されているが、Arm64向けの作業も進行中
- Firecrackerは現在もっとも広く知られているmicroVMの1つだが、他の製品もある
- QEMUはmicrovm仮想プラットフォームを追加し、オンライン開発環境サービスのHocusはFirecrackerからQEMUへ移行した
- クラウド以外の用途もあり得る
- まったく異なるOS上で、あるOS向けに構築された単一プログラムを実行することは、さまざまな状況で有用
5件のコメント
80ミリ秒と20ミリ秒の差は、実際にサービス全体やサービス提供者の体験という観点では、どの程度の違いなのでしょうか? 単に80ミリ秒でも十分なのではないか、という気もなんとなくするので。10秒はちょっと長すぎましたが。
コールドスタート時間をクライアントとのTLSハンドシェイクにかかる時間より短くできれば、遅いコールドスタートによる一部ユーザーの初期体感速度の低下や、それを防ぐためのウォームアップなどの対策は不要になると言われています。
Cloudflareでは、Workersサービスのロード時間をなんと5ミリ秒まで短縮し、これを実際に達成したと自慢したことがあります。
Cloudflareの技術力、すごいですね...
最近、Colin Percival は SYSINIT のバブルソートからマージソートへの変更で話題になりましたが、
この記事は、その背景にある FreeBSD の起動速度改善と microVM との相関関係もあわせて説明している内容なので、紹介します。
Hocus - GitHub Codespaces のオープンソース代替
Firecracker を QEMU で置き換えた理由
FreeBSD は起動時に時間の 7% を SYSINIT のバブルソートに使用
FreeBSD、SYSINIT のバブルソートをマージソートに変更
ああ、それと同じ文脈にある記事なのですね。興味深いです。