2014年に入ってから、コンテナベースのテクノロジが次から次へと発表されている。ブームになっているのは、データセンターを運送用コンテナに詰め込むことではなく、Linuxコンテナだ。コンテナとは何なのだろうか。そして、皆がこれほど騒いでいるのは、なぜなのだろうか。
IT供給と需要のバランス化の歴史
今から10年前、次の会計年度のコンピューティング容量要件を計算するのが一般的だった。次の1年間に起きるであろうことを試算するプロセスは不可能に近かったが、何かを行う必要があった(それはエンタープライズ分野で今も行われている)。
5年前なら、少なくとも、分散アプリケーションを実行するための要件を割り出して、仮想マシン(VM)やオブジェクトストレージを必要に応じてクラウドプロバイダーからレンタルすることはできた。それは新しい運用方法だった。クラウドコンピューティングは極めて困難な問題を解決するソリューションを私たちに与えてくれた。それが十分に理解されているかどうか、あるいは、本当に効果的なのかどうか、ということは重要でなかった。クラウドコンピューティングは、何もなかったところに新たに登場したものだった。
VMのレンタルが普及したことで、重いスケーリングやポータビリティの欠如、ベンダーの囲い込みといった問題も発生した。現在、コンテナテクノロジが普及を広めており、これらの問題を解決すると期待されている。
VMの限られたスケーリング
クラウドプロバイダーElasticHostsの最高経営責任者(CEO)であるRichard Davies氏の説明によると、広範に普及したクラウドのVMテクノロジはベアメタルが大幅に改善されたものの、依然としてリソースが浪費されているという。
必要に応じてスケーリングできるというクラウドの利点は「ハイパーバイザ上で稼働するVM(われわれのケースではLinuxの『KVM』)」によっておおむね実現されている、とDavies氏は説明した。「顧客は自分の望む規模を選択し、必要に応じて、VMを停止したり、開始したりすることができる」(同氏)
スケーリングに対するこうしたアプローチは、料金請求にも及んでいる。「Amazonや『Google Compute Engine』、ElasticHostsなどのどのクラウドサーバでも従来の料金請求モデルを考えると、必要に応じて規模の拡大が可能だ。必要に応じて規模を拡大できるということは、ユーザーがどんな規模のサーバからでも開始することができ、最初に選択した規模に応じた料金を支払うということだ。例えば、8Gバイトのインスタンスが必要なら、8Gバイトのインスタンスから始めることができる。ユーザーは毎時間、8Gバイトのインスタンスの料金を支払う。実行を停止したら、料金を支払う必要はない」(Davies氏)
VMを初期設定の規模のまま使い続けると、リソースの浪費につながる。「現実世界のサーバについて考えてみると、4つのコアと8GバイトのRAMを搭載するサーバを立ち上げた場合、そのサーバの使用率は100%に達することもあれば(CPUの4つのコアがすべて100%使用され、8GバイトのRAM全体が実際にソフトウェアによって使用される)、そうでないこともある。負荷の少ない時間がしばらく続くこともある。一晩中、アイドル状態のまま放置されることもあるかもしれない」(Davies氏)