MTE5NDg0MDYyNDQwODUwOTU5_0
Pocket

グーグルがオープンソースの世界に戻ってきた、それも大々的に。このところファイアーウォールの外に会社の発明を公開するケースが増加中だが、グーグルはさらに大きな一歩を踏み出した。

6月、グーグルが、Linuxアプリケーション・コンテナ管理ツールである「Kubernetes」プロジェクトをオープンソース化して、大ニュースになった。(このコンテナというのは、一種のソフトウェア「ラッパー」で、任意のプログラムをどんなコンピューター上でも、面倒なカスタム化の必要もなく動作させる事ができるものだ)要するに、グーグルは、オープンソース・コミュニティに自社内部用ツールを手本にしたアプリケーション・アーキテクチャを提供したのだ。ちなみにKubernetesはギリシャ語の直訳で「船の操舵手」を意味する。

pic01
クレイグ・マクラッキー

グーグルは、単独で自社コードを公開したのではない。マイクロソフト、Red Hat、IBMやオープンソース・プロジェクトのDockerもこれをサポートしている。

グーグルがKubernetesで目指すゴールは、自社データセンターで使用する技術を使い、デベロッパー達がWebスケールのサービスやアプリケーションを作ることを可能にする事だ。Kubernetesは、ポータブル・フレームワークとして作られたLinuxアプリケーション・コンテナ管理ツールである。これを使えばグーグル検索やGmailといった大規模アプリケーションと同じ管理方法で、誰もが自身のアプリケーションを管理できる。Dockerはコンテナベースのアプリケーション作成に関して、すばらしいデベロッパー・エクスペリエンスを提供する。Kubernetesを使えば、Dockerアプリケーションの運用も可能になるということだ。

Kubernetesに転向し、スマートなシステムに管理を任せることで、顧客はアプリケーション管理から解放される。グーグル社内でも、この変化はデベロッパーの生産性に多大な影響を与えた。コーダーはアプリケーションを作ってしまえば、運用やモニター、スケールまでを内部システムに任せることが可能になった。グーグル外部のデベロッパーもKubernetesで同じことができるのだ。

何故公開したのか?

私はグーグルのシニア・プロダクトマネージャー、クレイグ・マクラッキー(@cmcluck)と話す機会を得た。彼に、自社クラウドの秘密をオープンソース化した理由と、Kubernetesを巡る産業連携について尋ねてみた。

ReadWrite(以下RW):グーグル最大の資産の1つと言えば、自社製のデータセンター技術です。これまで、グーグルはその運用に関して秘密主義を貫いてきました。何が変わったのでしょう?

クレイグ・マクラッキー(以下CM):実はもう何年も、グーグルは自社で開発した技術をオープンソース・コミュニティと共有してきたのです。例えば、MapReduceやBigTableといったデータベース関連技術は、分散処理システム分野の確立に貢献してきました。より近い話で言えば、我々が開発、提供したcgroupsGolmctfy、それにcadvisorといったプロジェクトを通じて、コンテナ型データベース関連技術の普及にも関わってきました。

我々はこれからも自社製品をコミュニティと共有していくつもりです。我々はオープンソース・ソフトウェアを活用していますし、コミュニティもサポートも非常にありがたいですから。加えて、我々はGoogle Cloud Platformビジネスで大きな賭けに出でました。今年始めにウルス・ヘルツルが強調していたように、このチャンスに「全財産賭けよう」と意気込んでいるのです。

我々は、顧客に対してオープンであり、提供技術の詳細も開示することで、自社サービスを差別化しています。

それだけでなく、我々が社内で得ているのと同じ恩恵を顧客にも得てほしい、と思っています。Kubernetesを使って、我々が社内で使うのと似たようなポータブルで無駄の無いオープンソース・システムで、アプリケーションを作成、管理に役立てて欲しいですね。

RW:ではなぜ単独でしようとしなかったのでしょう?何故多くの業界他社(クラウド事業での競合他社さえ含む)と、Kubernetesでコラボレートする事にしたのですか?

CM:理由は二つあります。第一に、我々がオープンソース・エコシステムの持つ力にとても大きな感銘を受けていたから、ということです。多種多様な考え方やスキルセットを持つ人たちが参加することによって、オープンソース・プロジェクトが、クローズドのものよりも速く発展していく様を何度も目の当たりにしたのです。

Kubernetes GitHubレポジトリには、すでにコミュニティ・メンバーが参加していて、素晴らしい活動が行われています。例えば、Red Hatが持つ知識と経験のおかげで、Kubernetesは企業向けとして実用可能になったのです。

第二に、顧客が開示性や柔軟性を要求している、という事があります。我々は、彼らを囲い込むのではなく、素晴らしいインフラやサービスを提供する事によって、信頼を勝ち取りたいのです。コミュニティと共に仕事をすれば、顧客がマルチクラウドで運用できる強力な選択肢がすぐに現れるのです。これは新しい技術を受け入れる時に、彼らが重要視する前提条件なのです。

競合他社との協力

RW:新しい発表があるようですね。あなた方は7月からMesosphereともKubernetesに取り組んでいて、今日更に発表する事があると。どんな事でしょう?

CM:同社とはいくつかのプロジェクトに取り組んでいます。MesosphereはKubernetesに本格的に関わり、それをMesosの一部に組み込む予定です。Kubernetesコミュニティと共に、我々はMesosの能力をKuberneteオーケストレーター環境下のアプリケーションに取り入れようとしています。そしてもちろん、それはどこでも入手可能になるでしょう。

関連記事:Googleのようにデータサービスをスケールするには

MesosとKubernetesは競合するソリューションだと決めつけてしまう人もいるかもしれませんが、私は顧客にそれらがとても相補的だと気づいてもらえると思っています。我々はダイナミックなアプリケーション管理における共通のビジョンの下、マルチクラウド展開用のKubernetesモデルに、より高性能なフレームワークを取り入れようとしています。

リソースや制約付きスケジューリング、あるいは高い可用性を持つ展開等の点で、基本的なKubernetesのシステムをMesosが既に到達したレベルにまで進化させるには、コミュニティを持ってしても、かなりの時間がかかるでしょう。優れたフレームワークを「投入」できる能力というのは、我々の共通の顧客にとっての利益なのです。

他にも素敵なことがあります。KubernetesとMesosを組み合わせる事で、ユーザーは双方の得意とする部分を手にするのです。高機能なMesosの分散カーネルがその一つ。もう一つは、既存のワークロード(SparkやHadoopといった人気の高いビッグデータ・フレームワークを含む)を、共有する物理的リソース上で、新しいKubernetes管理アプリケーションとして処理できるフレームワークなのです。

RW:MesosphereとGoogle Cloud Platformの顧客にとって、それはどういう意味を持ちますか?

CM:我々はKubernetesとMesosを連携させて、顧客が恩恵を得られるようにしたいと思っています。そして、MesosのワークロードをGoogle Cloud Platformを使って最適化されたGoogleコンテナ上に展開可能にしようとしています。例えば、デベロッパーはMesosphere.ioのウェブサイトを訪ねて、数クリックの内にソリューションをGoogle Cloud Platformで運用可能な状態にする事ができます。あるいは、Google Cloud Platform Dashboardから直接Click-to-Deploy機能を使って、Mesosphereのソリューションを運用する事もじきに選択可能になるでしょう。

どちらのやり方でも顧客の作業速度は速くなり、MesosphereとGoogle Cloud Platformの技術結合も実に自然なものになります。

とどまるところをしらないコンテナ

RW:もしコンテナが未来のあるべき姿とお考えなら、Kubernetesへの投資はあなた方がこういった技術公開を今後も続けることを意味するのでしょうか?

CM:もちろんです!Google Cloud Platformへのインフラ支出、そして人的リソースの投入は既に決定しています。そしてその規模はかなりのものです。我が社にとって次なるビッグ・ビジネスになるでしょう。

しかし、一朝一夕という訳にはいきません。このビジネスをものにするには技術的革新と投資が必要ですが、グーグルはそのどちらも得意としており、全力を尽くします。

RW:Kubernetes最初のリリースではコミュニティが活躍しました。次は何でしょうか?

CM:Kubernetesはすでに、Red HatのOpenShift v3や、Clever.comのウェブサイトなどのように、様々なところで採用されています。そこから学んだ事をKubernetesのコードベースに還元していくことにワクワクしています。我々はGitHubでKubernetesのロードマップを公開して、コミュニティからはそのレビューと、何が必要かコメントしてくれることを期待しています。

最終的には、Kubernetes APIが整い次第、我々のインフラと更に統合されたそのホステッド・バージョンのAPIを、Google Cloud Platformで提供することになるでしょう。

トップ画像提供:Shutterstock

Pocket