こんにちは、日立ソリューションズの吉田です。
今回は、最近話題になっている「コンテナ型仮想化」について、ご紹介したいと思います。
OS上に「コンテナ」と呼ばれる隔離されたアプリケーションの実行環境を作成し、一台のマシン上であたかも複数のマシンが動いているかのような環境を実現するのが、「コンテナ型仮想化」技術です。
従来の仮想化技術である「ハイパーバイザー型仮想化」では、KVMやXenのようなハイパーバイザーと呼ばれるソフトウェアが、仮想的なハードウェアである「仮想マシン」を提供する技術です。この「ハイパーバイザー型仮想化」では、ハードウェアレベルでの仮想化を実現するため、別々のOS(VM)を動作させることができます。しかし、それではVMの容量が大きくなり、起動に時間がかかります。
「コンテナ型仮想化」では、OS上の実行環境を仮想化するため、OS自体は限定されますが、実行環境である「コンテナ」のサイズが小さくなり、起動も早くなります。そのようなこともあり、近年注目を浴びています。
この「コンテナ型仮想化」の領域では、二つのソフトウェアが覇権を争っています。一つ目は「Docker」です。「Docker」は非常に軽量なコンテナ型のアプリケーション実行環境で、現在の米国Docker社が2013年にオープンソースのプロジェクトとして公開されました。「Docker」ではアプリケーションとその実行環境、展開/操作方法などをまとめて1つのパッケージにし、それを「Dockerイメージ」として保存/配布しています。
これに対して、この「コンテナ型仮想化」に最適化したOSである「CoreOS」が2014年に米国CoreOS社によって、公開されました。「CoreOS」は、「Docker」を組み込んだLinuxOSでクラウド環境で動かすことを前提としています。その後、CoreOS社は、「Docker」のセキュリティ面の課題を解決するために独自のコンテナ実装である「Rocket」(後の「rkt」)を開発しました。
これにより、分裂するかと思われた「コンテナ型仮想化」は、2016年6月にコンテナの統一仕様を実現する「Open Container Initiative(OCI)」発足に両社ともに参画し、分裂の危機は防ぐことができました。
Docker社は今年4月に開催された、同社のイベント「DockerCon 2017」で、新たなオープンソースプロジェクト「Moby Project」を発表しました。
「Moby Project」は、Docker社がこれまで開発してきた80以上のコンテナ関連ソフトウェアコンポーネントを取捨選択し、他のコンポーネントとレゴのように組み合わせて、カスタムのコンテナシステムを作り上げられる環境を提供するオープンソースプロジェクトです。
しかし、このように便利な「コンテナ」も簡単に使うためには、さまざまな管理ツールが必要になってきます。その中で、一番有名なのは、「Kubernetes」です。「Kubernetes」は、米国Google社が15年以上稼働していた大規模コンテナ管理システムである「Borg」をベースに開発したオーケストレーションするツールです。「Kubernetes」は、ノード群のスケジューリング、ワークロードの動的管理、ユーザーが定義した状態の共有と管理などをLabelやPodといった概念によって論理的なグループを構成することで、管理や発見を容易に実現します。
米国の調査会社451 Researchが、”Hybrid cloud drives growing container production use and disruption”というレポートを5月に公開しました。このレポートでは、企業によるコンテナ採用が進んでいるという調査結果が下記らかになりました。これらの企業は、ハイブリッドクラウド配備の効率向上と、開発者の生産性向上を目的にしていると回答しています。さらに興味深いのは、調査回答者の71%が「Kubernetes」を利用していると答えた点です。また、「Kubernetes」採用の理由としては、優先順位にフォーカスするためのリソースの解放や、ハイブリッドクラウド/クロスクラウドのサポート、自社でのコンピュート機能の実現、ベンダーロックインの抑止が挙げられています。
このように次世代のシステムのアーキテクチャに欠かせない「コンテナ」はますます進化し、DevOpsの基盤として期待されるところです。
(*)本文中記載の会社名、商品名、ロゴは各社の商標、または登録商標です。