「VMware ESX」ハイパーバイザが登場し、「Xen」や「Hyper-V」「KVM」といった製品が後に続いた結果、データセンターにおける総所有コスト(TCO)の大幅な削減を目的として、多くの物理的なx86システムがVMへと統合されていった。
近代的企業におけるデータセンターは、数千台規模の物理サーバではなく、数百台、場合によっては数十台の仮想化ホストでまかなえるようになり、全体的なフットプリントの低減に役立っている。
ハイパーバイザと仮想化インフラは、データセンターをけん引していく原動力になっているだけでなく、パブリッククラウドのIaaS(サービスとしてのインフラ)が現在提供しているものに力を与えてもいる。それでも、データセンター内でのこのような統合や、よりパワフルな仮想化ホストへの投資(そのホストが自社のデータセンター内にあるか、プロバイダーが提供するクラウド内にあるかに関係なく)という継続的な取り組みはさらに続けられているのだ。
「Amazon Web Services」(AWS)や「Microsoft Azure」のように、パブリッククラウド内で稼働しているIaaSのインフラは、使用時間に応じて課金されるようになっている。VMが稼働し、活動している間、クロックは刻まれ続けている。そして、仮想CPU(vCPU)の動作には仮想化ホストに搭載されている物理的なCPUコアの一部を使用する必要があるため、使用時間に応じて料金が発生するというわけだ。
VMには、システムやアプリケーションを既存環境の基本的なアーキテクチャに影響を及ぼすことなく物理マシンからVMに移動できるなどのさまざまな利点があるが、リソースを大量に消費する可能性もある。データベースのような、メモリやCPUに負荷がかかる処理の場合、特にそれが顕著となる。
ここで重要なのは、VMがカーネルやデバイスドライバを含んだOS全体のインスタンスであり、ハイパーバイザ上で稼働する他のVMとシステムリソースの取り合いをするという点だ。
パブリッククラウド環境内にプライベートクラウド環境を構築するというホステッドプライベートクラウドや、ハイパースケールパブリッククラウドでは、VMの台数は数千台から数十万台といった規模になり、その多くはオンプレミスで扱いきれなくなった作業負荷を取り扱っている。こういったケースでは、スケーラビリティが無視できない問題となる。
では、VMの無秩序な増加に対する長期的な解決策はあるのだろうか?その答えがコンテナ化だ。
コンテナ化の源流はVM技術と同様に、大型コンピュータにまでさかのぼれる。「FreeBSD」にも「Jail」という機能が存在していたが、商用ではSun Microsystems(現Oracle)のUNIX系OS「Solaris 10」に搭載された「Zone」という機能によって初めて実装された。
そしてこの技術は、Parallelsの「Parallels Virtuozzo Containers」というかたちでx86版のLinuxやWindowsの元へと送り届けられた。また現在も、「OpenVZ」と呼ばれるLinux向けのオープンソース版が、フリーおよびオープンソースソフトウェア(FLOSS)コミュニティーによって開発されている。ただ、オープンソースソフトウェア(OSS)のコンテナ化技術は現在、ほとんどのものが「Linux Containers」(LXC)とDockerをベースにしている。