2015年6月15日月曜日

データセンターOS(DCOS)は普及するか?

ついこの間まで、クラウド基盤はハードウェアを隠ぺいする仮想化技術の戦いだった。君臨するVMwareにXenを担いで挑戦したCitrix、そしてイスラエルのQumranetを買収しLinuxカーネルにKVMを導入したRed Hat。これらの戦いは一巡し、今は更なるリソースの効率化を求めてコンテナー技術競争が賑やかだ。VirtuozzoSolaris Containers、そしてDockerが登場、さらには沢山のコンテナーをオーケストレーションするKubernetesが出た。一方、このような動きの陰で、データセンターOS(Data Center OS…DCOS)も動き出した。

=データセンターOSの登場!= 
理屈はこうである。
これまでの仮想化を俯瞰すれば、それは無数のアプリが巨大なサーバーを共用する仕組みである(下図左)。言い方を変えれば、沢山のクライアント(アプリ)が中央サーバーを利用するクライアント/サーバー時代(Client-Server Era)の産物に似ている。これに対し、クラウド時代(Cloud Era)の特徴のひとつは、Big Dataなど強力なパワーを必要とするアプリケーションが複数のサーバーをクラスターのように集合体として束ねて(Aggregation)利用する(下図右)。つまり、個々のアプリや業務、さらには企業特有のスケーリング要求に合った利用環境をすばやく構築する技術が渇望されている。出来れば適用するマシンは自前のデータセンターでもPrivate CloudやPublic Cloud上のVMでも構わない。今、利用できるマシン群から必要なものを組み合わせて論理的なデータセンターを構築したい。この仕組みを提供するのがデータセンターOSである。
 
Applications in the Cloud Era

=市場を作り出せるか、Mesosphere!=
この世界を切り開き始めているのはMesosphereだ。
Mesosphereとは地球を覆う大気圏の上位圏と下位成層圏の間に位置する中間圏のことだ。Mesoはギリシャ語で中間を意味する。つまり、既存のITフレームワークと新たなスケーリング要求の間に入って、必要とするIT環境を素早く整備する。MesosphereのベースであるオープンソースのApache Mesosは、2009年、UC Berkeleyの学生たちが立ち上げた。そしてMesosは2013年にApacheのトップレベルのプロジェクトとなり、同年Mesosphereが創業。学生時代からのリーダBenjamin Hindman氏が現在のCEOとなった。Mesosを一言で言えば、分散アプリケーションの実行環境を多様なITリソースに跨って整備するクラスターマネージャーである。その上でアプリケーションを稼働させるにはスケジューラーとなるフレームワークが必要だ。下図の2は、Linux/Unix OS StackとMesos OS Stackを比べたものだ。図で解るようにLinuxやUnixではInitUpstartSystemdなどのデーモンがアプリの起動や終了などのスケジュールを管理する。一方、Mesosでは、MesosがKernelとなって、ユーザは各アプリに適したものや慣れ親しんだフレームワークAuroraChronosMarathonなど)指定して利用する これらがアプリを分散環境で実行するスケジューラとなる。 
  
Linux/Unix OS Stack
Mesos OS Stack

少し説明を加えると、AuroraはTwitterのBill Farner氏が開発して公開し、Apacheのプロジェクトになったものだ。Auroraはひとつの仕事をJob→Task→Processとして実行させる。ChronosはMesosphereのFounderの一人Florian Leibert氏がAirbnb時代に仲間と開発したタイムベースのスケジューラーでCron分散環境用に置き換えた(Cronos Replacement for Cron)ものである。また、Mesosは通常、Apache Zookeeperと共に用い、Master/Slave方式フォールトトレラント構成を採用する。この構成下で、Mesosphereが開発したMarathonはInitやUpstartなどと同様の機能を提供し、さらにZookeeperやChronosと連携してノードクラッシュの対応を行う。
=これからどうなるか、気になるGoogle!=
果たしてデータセンターOSは普及するだろうか。 
それを占う手掛かりはGoogleにあるのかもしれない。GoogleはDockerにいち早く目をつけ、自身でもオーケストレーションのKubernetesを開発して、OpenStackにプロジェクトMagnumを立ち上げた。一方、Mesosphereも2013年9月にはDockerを早々とサポートし、同年11月にはAmazon上で稼働(Mesosphere on AWS)させると発表。翌2014年8月、今度は、MesosphereはGoogleとチームアップし、GCP上での稼働(Mesosphere for Google Cloud Platform)とKubernetesの取り込みを発表した。GoogleはDockerの時と同じように、こうしてMesosphereとの距離を詰つつ、次の手を考えているように見える。そんな折、Googleは今年4月中、Memosと似た技術Large-Scale Cluster Management at Google with Borgとして公開した。公開の意図は何か。GoogleにとってBorgは自社データセンターの中核技術であり、Kubernetesはその延長線上にある。Kubernetesの普及が確実となった今、次はBorgが前面に出てくるのかもしれない。BorgがMesosと共存関係を歩むのか、競合するのか、それはまだ解らない。折しも6月9日、Mesosphereは2013年来のβ版を抜けてGA(General Availability)になり、有償でサポート付きのCommercial Versionと無償Community Versionを発表。本当の戦いが今始まろうとしている。
High Level Architecture of Borg