2015年6月1日月曜日

コンテナーの世界!(2)
-Kubernetesで息を吹き返えしたGoogle!
         そしてAtomic Host, CoreOS, Snappy, Nano-

コンテナー技術の生い立ちと動向については前回述べた。
今の流れは2つある。ひとつは人気のDockerはほぼデファクトとなったが、その周りに出来つつあるエコシステムがどこまで広がるかだ。もうひとつは関連する専用OS化の流れである。今回はこの辺りを整理しよう。

=Google Kubernatesプロジェクトが惹きつけるもの!=
この分野でGoogleの動きは積極的だ。 
Googleは昨年11月、Google Cloud Platform LiveDockerベースのGoogle Container Engine(GKE-現在パブリックα)を発表した。これはDockerに対抗するものではない。GKEはGoogle Cloud Platform(GCP)上でDockerコンテナーを実行する新しいサービスだ。そして自身が開発した膨大な数のコンテナー制御のクラスターオーケストレーションフレームワークKubernetesと連携する。元々このKubernetesはGKEと連携させるために始まったものだが、オープンソースプロジェクトとしてローンチし たのは昨年6月のGoogle I/O 2014だった。すぐに多くのデベロッパーやベンダーを惹きつけて、翌月には本家のDockerやCoreOS、IBM、Mesosphere、 Microsoft、RedHat、SaltStackなどが相次いでサポートを表明した。クラウド化を実践してきた米企業にとって、コンテナーは魅力的だが、その運用には不満もある。大規模システムをサポートするベンダーやプロバイダーは、この不満の解決策をKubernetesに見出した。既にAWSではDockerとElastic Beanstalkが連携し、AzureでもDockerサービスが始まっている。しかしAmazonのElastic Beanstalkは基本的にVMセントリックなフレームワークだが、Kubernetesはコンテナーセントリックだ。Googleの戦略はこれを公開してデファクトとし、Dockerを超えた新たなエコシステム目指すことのようだ

=Project Atomic、CoreOS、Ubunture Core!=
もうひとつはDockerのための専用OS化の流れである。
昨年末、Red HatからDocker対応の専用OSとしてRed Hat Enterprise Linux 7 Atomic Host βが発表され、今年3月5日には、RHEL 7.1と共に正式版となった。遡ればRed HatがスポンサーのProject Atomic、2013年から始まった。プロジェクトの開始時点では独自のコンテナー技術geard目指したが、Docker人気でgeardからDockerに方向転換。その後Google Kubernatesがローンチし、Red Hatは直ちに支持を表明。こうしてProject AtomicにKubernetesが追加された。公開されたAtomic Host 7.1は、RHEL 7.1のインストーラが約4,400のパッケージ数であるのに対し、約400と必要最小限の構成だ。RHEL Atomic Hostはエンタープライズ向けだが、他に関連製品として将来志向の無償Fedora AtomicやRHELと完全互換を目指した無償のCentOS Atomic Hostもある。しかし、この分野で最初にDocker対応を出したのはCoreOSだ。正式版は昨年7月、Googleとの関係は深い。すぐにGoogle Compute Engine上でCoreOSのサポートが始まり、今年4月にはKubernetes対応のTectonicをリリース。同時にGoogle Venturesがリードした資金調達では$12M(14.4億円)を獲得。またもうひとつ、今年1月、CanonicalからもSnappy Ubuntu Core βが出た。これはクラウド展開がメインだが、それだけではなく、今後はIoTなどへの適用も目指している。

=Microsoft AzureとWindows Nano Server!=
もう1社のMicrosoftはどうか。
Microsoftは他ベンダーと共にKubernetesの支持を表明し、同社子会社のMicrosoft Open Technologiesから、昨年夏、Azure上でのDockerとKubernetesサポートがリリースされた。たった2ヶ月の早業だった。且つ、このインプリメントではKubernetesで管理するDockerコンテナーがビジュアルで確認できる。そのダッシュボードはAzureチームが主催したハッカソンで選ばれたAzure Kubernetes Vizualizerだ。さてもうひとつ目玉はどうか。昨年10月、前述のMicrosoft Open TechnologiesからWindowsによるDockerサポートの発表があった。その後もカンファレンスで何度か触れられたが、今年4月初め、正式にWindows Serverの次期版Windows Server 2016でコンテナー対応OSが出るとアナウンスがあった。最小構成版のNano Serverである。 
具体的には、Microsoft Open TechnologiesがDockerと提携して作業し、Docker EngineをWindowsに統合する。5月初めからレビューの始まったWindows Server 2016 Technical Preview 2では、Nono Serverはほんの一部しか窺うことが出来なかった。これまでのアナウンスでWindows Server 2016ではWindows Server ContainerとHyper-V Containerの2つのコンテナーを扱う。これらが本当の姿を現すのはTechnical Preview 3以降のようだ。

=新たなエコーシステムを目指す!=
OpenStackでもDockerやKubernetes対応が始まっている。
今年2月、GoogleがMirantisと組んでこれらを統合するとアナウンスした。その後、このプロジェクトは、3月にOpenStackの正式なプロジェクトMagnumとなった。5月18日から始まったOpenStack Summit Vancouver 2015でその詳細が姿を現した。それによるとMagnumはKubernetesやDocker Swanだけでなく、OpenStack自身が進めていたHeatなどとも連携する。Dockerが火をつけたコンテナー技術が他のVirtuozzoやSolaris Containerと決定的に異なるのは、前2者がひとつのコンテナー内で走るプログラムは複数プロセスから構成されるのに対し、LinuxコンテナーのDockerでは、ひとつのコンテナーにはひとつのプロセスしか走らない。それ故、単純な仕事でも複数のコンテナーを必要とし、大 きなアプリケーションでは無数のコンテナーの管理が必要となる。この点を改善したものがGoogleのKubernetesだ。もうひとつ、Dockerの利点はモビリティー(携行性)にある。つまり、Docker環境さえあれば、どのマシンやクラウド空間でもコンテナーの内容をイメージとして持ち出し、実行させることが出来る。これによって、PaaSの世界も様変わりが始まった。
こうしてVMwareやXenの仮想化技術で始まった現代のクラウドコンピューティングは、再度、コンテナーで大きなうねりとなって動き出した。もう図抜けた1社の技術で全体が動く時代ではない。ひとつの技術に幾つもの会社が関わり、さらに広大なコミュニティーとなって、新たなエコシステムが出来上がる。こうなれば本物である。