
Encoreのcrackling、macOSとLinuxで同一OCIイメージからマイクロVMを起動
Encoreは、Macを使用するエンジニアが共有のリモートビルド環境を経由する運用を4年間続けた後、単一のAPIでOCIイメージをLinuxマイクロVMとして起動できるデーモンおよびCLI「crackling」を開発した。バックエンドには、LinuxではFirecracker、macOSではAppleのVirtualization.frameworkを利用する。LimaやTart、Appleのコンテナ機能といった既存の選択肢はそれぞれ単一のホストOSにしか対応していない。これにより、開発用PCと本番環境で同一のマイクロVMビルドを求めるチームは、単一のゲストエージェントを備えた共通のプロトコルで環境を構築できるようになった。なお、今回の解説記事はアーキテクチャに焦点を当てており、起動時間やスループットの数値は公開されていない。
出典: encore.dev ↗
我々はFirecrackerを本番環境で使い続ける一方で、ラップトップ上で同じビルドシステムを動かしたかった。そこでLinux上でFirecrackerを、macOS上でAppleのハイパーバイザーを駆動する単一のmicroVM APIであるcracklingを構築した。
Encore
なぜ重要か
- → 開発者はリモートSSHアクセスなしにMacラップトップとLinux本番環境で同一のビルドVMを動かせる。
- → 全てのMacエンジニアを共有ビルドサーバー経由でルーティングするという4年間の回避策が不要になる。
- → 単一のOCIイメージとAPIがFirecracker (Linux) と Apple Virtualization.framework (macOS) の違いを抽象化する。
統合されたmicroVM、ローカルとリモート