[和訳]アプリケーションの仮想化とDockerは別物である #docker
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は There’s Application Virtualization and There’s Docker (2016/4/15) の和訳です。
繰り返しのテーマになっているように思われますが、「Dockerは○○ではない」というテーマについて話したいと思います。―― Dockerはアプリケーションの仮想化ではありません。
私は かなりの時間をVMware社 で過ごし、そこではVMware Viewに携わりました(Horizon 7をもうけたVMware Viewです)。ですから、デスクトップとアプリケーションの仮想化にはかなり詳しいです。そのため 、Dockerをアプリケーションのポータビリティのために活用するという話を最初に聞くと、App-V、XenApp や ThinAppの系列と考えてしまう人がいる理由も理解できます。
昨日私は、モダンソフトフェアのサプライチェーンをDocker上で実行するというトピックについて話しました。その投稿の中で、Docker ユーザーの41%が、アプリケーションのポータビリティが主な使用目的であるとしています。
Docker社に入社する前に「アプリケーションポータビリティ」について聞いていれば、すぐにThinAppを思い浮かべたでしょう(VMwareの遺産によるところが大きいのですが)。従来のサーバーベースのテスクトップコンピューティングに携わる多くの人にとっては、それは”DLL地獄”のような、よくある落とし穴に出遭う ことなくシームレスにアプリケーションを伝達することを意味します。
それはApp-VやThinAppのようなものや、そのほか必要なDLLを含むサンドボックスにアプリを入れることを意味するかもしれません。または、サーバー上にアプリケーションをホストし、Citrix XanAppまたはMicrosoft’s Remote APP式にリモートでアクセスして表示させるということを意味するかもしれません。アプリケーションの仮想化ターゲットの共通の例としてはカスタム拡張のIE6、Microsoft WordやExcelがあります。
このようにアプリケーションの仮想化ソリューションとDockerの間には共通の基本概念があります。しかし重大な相違点もあるのです。
以前書いたように、Dockerは従来の仮想化技術というよりは、アプリケーションをデリバリーするプラットフォームです。Dockerは従来型のモノリシックなアプリケーションを、再利用可能なマイクロサービスのセットとしてデリバリーできるようにします。
この投稿で触れたツールはすべて実際にWindowsのレガシーデスクトップアプリケーションのデリバリーを目的としています。これらのアプリケーションは、(ブラウザを通してアクセスするWebアプリと対比して)自らのGUIを持つという点でモノリシックです。一方、最も幅広く使われているDockerの作業負荷はマルチ/マイクロサービスWebアプリです。
つまり、Docker コンテナは、サービスの実行に必要なすべてのコードとライブラリをカプセル化します。しかしこれらのサービスは、従来のアプリケーション仮想化技術を通してデリバリーされたものとは根本的に異なります。
結論を言うと、Dockerはアプリケーション仮想化の直接的な代替品ではありません。これはアプリケーション仮想化技術を用いてデプロイされた多くのアプリケーションを、高レベルの機敏性、ポータビリティ、そして管理能力を提供するように改造する方法なのです。
- Blog: [和訳]コンテナは可能マシンではない
- Blog: [和訳]コンテナと仮想マシンを一緒に利用する
Dockerに関してさらに学ぶには
・Docker初心者は、10分のオンラインチュートリアルをご覧ください。
・画像、自動構築などを無料のDocker Hubアカウントでシェアしてみましょう。
・Docker 1.10リリースノートを読んでみましょう。
・Docker Weeklyを購読してみましょう。
・次に予定されているDockerオンラインMeetupに登録してみましょう。
・次に予定されているDocker Meetupに参加してみましょう。
・DockerCon 2016に登録してみましょう。
・DockerCon EU 2015のビデオを見てみましょう。
・Dockerコミュニティへの貢献を始めましょう。