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


2015年6月6日土曜日

IBM/SoftlayerがOpenStackへシフト!
‐IBM Cloud OpenStack Services for Public Cloud‐

IBMのOpenStack傾斜が鮮明になってきた。
5月19日、米IBMは「IBM Delivers Broadest Set of OpenStack Services」と題するプレスリリースを出した。企業向けPrivate Cloud(LocalやDedicated)に、同社はこれまで独自のOpenStackディストリビューションを提供してきたが、今回の発表はこれをさらにPublic Cloudまで拡大したものである。これによって、顧客のLocalやDedicatedなOpenStackアプリケーションはPublic Cloudとハイブリッド化が可能となる。

=OpenStack化するSoftLayer!=
少しIBMのOpenStackへの取り組みを整理しよう。
記憶をたどれば、最初に出た製品は2013年3月のSmartCloud Orchestratorだった。SoftLyer買収(2013年6月)以前である。異機種混合のハイブリッド管理ができるオーケストレーション機能付きのこの製品は、翌年、SoftLayer買収に伴うリブランドでIBM Cloud Orchestrator(ICO)となった。その後、エンタープライズ向けPrivate CloudにOpenStackが浸透し始めると、IBMは本格的な製品としてIBM Cloud Manager with OpenStackICMO)を出荷(昨年5月発表)。この結果、ICOはICMOの上位エディションと位置づけられた。さらに時代が進み昨年10月、IBM Cloud OpenStack Services(ICOS)をリリース。ICOSはSoftLayer上にOpenStackのPrivate Cloud(Dedicated)を構築するサービスである。つまり、IBMはこれまでICMOやICOを用いてエンタープライズ向けのPrivate Cloud(Local)構築を支援してきたが、ICOSの発表でDedicatedなサービスにも乗り出した。

=2つのアプローチ!=
ここまで来れば、次なる戦略がPublic Cloud対応であることは明らかだ。
課題はSoftLayerとOpenStackをどう調和させるかである。IBMの取り組みは2つ。ひとつは2014年2月に発表したJumpgate。これはOpenStack APIを他のクラウドに変換させるミドルウェアレイヤーとしてライブラリー整備を進めるものだ。これが出来ればSoftLayerだけでなく、理論上はAWSなどへの適用も可能である。実際のところ、OpenStack APIを他のクラウド基盤に適用する方法は、他にもCloudscaling(現EMC傘下)のOpen Cloud System(OCS)やVMwareのVMware Integrated OpenStack(VIO)がある。(各々既報があるのでそれらを参照されたい(既報OCS既報VIO)。ただ、これらの方法はOpenStack APIと連携させるクラウド基盤との機能マッピングが必須となり、かなりの作業が伴う。IBMの始めたJumpgateプロジェクトもまさに現在進行形である。そして、同社のもうひとつの取り組みが今回発表したものだ。これはSoftLayerが提供するベアメタル上にOpenStackインフラを展開したもので、SoftLayerとOpenStackインフラが併存する形だ。

=OpenStackのハイブリッド化!=
今回IBMが発表したICOS型のOpenStack Public Cloudは、現在、PaaS領域のBluemixで利用が出来るβ版だが、いずれ正式版となろう。そうなれば、これまでのオンプレのLocalなもの(ICMOやICO)や、ICOSによるSoftLayer上のDedicatedなもの、これらは共にPrivate Cloudであるので、ハイブリッド化が可能となる。IBMによると、このプロジェクトに約500名のデベロッパーを投入してきた。これが正式リリースとなれば、開発(Bluemix)から構築・本番まで、全てのOpenStackワークロードを自由に行き来させ、ハイブリッドの効果を最大化出来る。

=Magic Quadrantに見るSoftLayer!=
さて、5月18日、恒例のMagic Quadrant for Cloud IaaS 2015がGartnerから出た(下段上図)。それによると、リーダグループを形成するツートップのAWSとAzureの差が少し詰まってきた。Amazonは既報のように好調だが、Microsoftが追い上げている。続くビジョナリーグループは、昨年(下段下図)と比べると、異変が起きている。ひとつはCentulyLinkをGoogleが激しく追い上げていることだ。これはこのところのDocker対応やGoogleが始めたコンテナーオーケストレーションKubernetesなどが上手く機能し始めたことによるのだろう。もうひとつの変化はVMwareのvCloud Airが好調なことだ。その結果、IBMはやや埋没気味に見える。


=結果はどれだけ早く走るかだ!=
勿論、IBMの目指すPublic Cloudは、エンタープライズが主戦場であり、AmazonやGoogleとは異なる。しかし、同じエンタープライズ指向でもMicrosoftは善戦している。クラウドは仮想化技術の延長線上で始まり、今は更なる効率化を求めてコンテナーの扱いが花盛りだ。Microsoftは昨年夏にAzureでDockerとKubernetesをサポートし、この5月からは次期Windows Server 2016(含むNano Server)Technical Preview 2のパブリックレビューが始まった(このあたりの流れは前回号に詳述)。IBMも昨年7月にはKubernetesの支持を表明し、12月にはDockerと戦略的提携を発表、デッドヒートが繰り広げられている。翻って、Microsoftの企業ユーザに比べて、IBMの抱えるユーザはより大型だ。期待される要求も異なる。取り分け、これら大型ユーザのPrivate Cloudに対するOpenStackニーズは高い。これへの対応が一連のOpenStack傾斜である。れは正しい選択だろう。しかし、クラウドは技術が先乗りのビジネスである。GoogleはMirantisと組んでDocker/KubernetesをOpenStackに持ち込み、正式なプロジェクトMagnumとなった。幸いなことに、StackAlyticsを見ると現在、このプロジェクトへの最大の貢献は、全体の32%をIBMが占める。遅れは許されない。出来るだけ早く、Magnumを適用できれば勝機が見える。そんな矢先、IBMは6月3日、OpenStackベースのHosted Cloud Provider、Blue Box買収。今やIBMにとって、OpenStackのトラックをどれだけ早く走るかが勝負の分かれ目である。

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社の技術で全体が動く時代ではない。ひとつの技術に幾つもの会社が関わり、さらに広大なコミュニティーとなって、新たなエコシステムが出来上がる。こうなれば本物である。