DockerがUnikernel Systemsを買収しました。ハイパーバイザーとアプリケーションコンテナの「いいところ取り」が実現するかもしれません。
Dockerが急速に支持を得ている大きな理由の1つは、Dockerが提供するコンテナが軽量で迅速に起動する点にあります。その軽量さや迅速な起動をコンテナ型仮想化ではなく、ハイパーバイザーを用いた従来の仮想化で実現するのがUnikernelです。
そのUnikernelの開発を行っているUnikernel Systemsの買収を、Dockerが発表しました。
Unikernelとは、ターゲットとなるアプリケーションのコードと、その実行に必要な機能以外を徹底的にそぎ落としたOSとを合わせて1つにビルドしたものです。
ターゲットとなるアプリケーションのソースコードごとにビルドされるため、Unikernelはアプリケーションごとに異なるものとなります。以下のスライドは、Unikernel Systemsが2015年の「Docker Con」で行ったセッションのものを引用しています。
例えばNginxのUnikernelは2.2MB、MysqldのUnikernelは4.51MB、PHPのUnikernelは4.56MBです。それぞれのUnikernelはターゲットのアプリケーションしか起動されません。
Unikernelの利点は、起動が1秒以内と超高速で使用メモリも少なく軽量であること、アプリケーションに徹底的に最適化されていること、そしてコードが絞り込まれている分セキュリティの脆弱性リスクが非常に低いところです。
そしてこのUnikernelをKVMやXenといったハイパーバイザーによる仮想マシンで利用することで、まるでコンテナのように高速に起動し軽量でありながら、安全に分離された環境を利用できるようになります。
ただし、Unikernelには課題もありました。アプリケーションごとにUnikernelをビルドする手間や、さまざまなUnikernelイメージを管理し運用する手間がかかるのです。
そこで彼らが注目したのがDockerでした。
Unikernelは、DockerのコンテナAPIを取り込みました。例えばDockerファイルに対応し、Unikernelのビルドやイメージ管理など、ビルド、シップ、ランの全てがDockerコマンド経由で行えるようになったのです。
これでUnikernelの課題は解消され、しかもDockerからはコンテナの新たな一員として、Dockerコンテナと同じように迅速かつ軽量に扱え、しかも、より安全に分離された空間を備えたUnikernelが利用できるようになったのです。
Dockerが買収したUnikernel Systemsは、こうしたUnikernelの開発の推進を行ってきた企業です。
今後は、Dockerに正式対応したUnikernel製品群がリリースされることになるでしょう。Unikernel SystemsにはXenのエンジニアも多くいるとのことなので、Unikernel用のハイパーバイザーもリリースされるかもしれません。
コンテナの利点を生かしつつ、ハイパーバイザーの技術を用いてより安全に分離するという試みは、マイクロソフトが「Hyper-V Container」として、VMwareは「vSphere Integrated Containers」「Photon Platform」として取り組んでいます。Unikernelの買収は、Dockerがこれらと競合する技術を手に入れたことを意味します。
そしてDockerはこの買収により、自身の立ち位置をより明確に示したといえます。それは、Dockerが、コンテナ型仮想化を提供するのではなく、マイクロサービスアーキテクチャによるアプリケーションの実現を支援するツール群とサービスを提供する企業なのだ、ということです。
そしてそれはヴイエムウェアやマイクロソフトやレッドハットなどの多くのソフトウェア企業だけでなく、広い意味でグーグルやAmazon Web Services(AWS)などのクラウドベンダーも同じ市場を見ています。Dockerはそうした企業と競合することを理解しており、そのために彼らなりに何手も先を読みながら買収を続けているのでしょう。
下記は2015年行われた「Docker Con」でのUnikernelのデモです。
Copyright © ITmedia, Inc. All Rights Reserved.