
Kubernetesは独立して2年、クラウドの中心にいますが、これから難しい局面を迎えます

Googleが2年前の今日、Kubernetesをオープンソース化し、Cloud Native Computing Foundationにプロジェクトを寄贈していなかったら、クラウドコンピューティングの世界は今とは違ったものになっていたかもしれません。しかし、Kubernetesは、ソフトウェア開発手法を急速に近代化しようとしているソフトウェア開発チームにとって、将来の礎となるでしょう。
Kubernetesはオープンソースのコンテナオーケストレーションソフトウェアであり、Googleが長年にわたりインターネット上で最も人気のあるサイトを運営してきた経験から得たインフラ管理のノウハウを、企業が活用できるようにします。Kubernetesはコンピューティングリソースを管理する強力な手段であり、セットアッププロセス中にユーザーを非常に苛立たせるという不当な評判があるにもかかわらず、コンテナ管理の頼みの綱として急速に普及しつつあり、クラウドベンダーのロックインからの脱却策となる可能性があります。
これは非常に新しい市場です。特に、多くの主流IT組織がコンテナやマイクロサービスを開発戦略の中核に導入するまでには至っていないことを考えると、なおさらです。しかし、企業がコンテナによってアプリの信頼性が向上し、アップデートを迅速に適用できるようになると、コンテナの利用がますます拡大する傾向があり、そうなると、あらゆるアクティビティを管理するための手段が必要になります。そこでKubernetesが登場します。
いよいよ難しい局面が到来です。Kubernetesは主要なクラウド企業すべての注目を集めており、この技術を活かすべく各社がしのぎを削っています。Kubernetesをどれだけ積極的に活用するか、それとも競合するかは、Kubernetesプロジェクト、そしてKubernetesの活用を支援するために立ち上がった数多くのスタートアップ企業に大きな影響を与える可能性があります。
さらに、Kubernetesの主要な貢献者は、いつアクセルペダルから足を離し、プロジェクトに成熟感をもたらすかを判断する必要があります。そうすることで、より多くの企業がKubernetesを中心とした開発戦略を構築するよう促されます。そして、Kubernetesのユーザーインターフェース体験(開発者自身も得意分野ではないと認めている)を完璧に実現した人は、報われるでしょう。
ボルグを超えて
Kubernetesは、ジョー・ベダ、ブレンダン・バーンズ、そしてクレイグ・マクラッキーによるGoogle社内プロジェクトとして始まりました。彼らは当時(そしておそらく今でも)世界で最も先進的な分散システム企業であったGoogleで、長年にわたり経験を積んでいました。「Googleスケール」での運用は、今ではモバイルアプリやウェブアプリではごく当たり前になっていますが、過去15年間のインターネット利用の爆発的な増加に伴い、Googleは世界中のどこでも即座にサービスを利用できるようにするために、多くの技術を独自に開発する必要がありました。(同社はこのシステムを、スタートレックシリーズに登場する邪悪なロボット軍団にちなんで「ボーグ」と呼んでいました。)
「分散システムの問題に不慣れな人は、直面する課題を理解するのに十分な時間を費やしていません」と、現在シアトルでKubernetesに特化したスタートアップ企業Heptioを経営するマクラッキー氏は語る。「私たちは、大規模に事業を展開する組織の問題を解決してきました。」
Google は数年間社内でこのプロジェクトに取り組み、2015 年 7 月 21 日に世界にリリースしました。同じリリースで、プロジェクトを監督するための Cloud Native Computing Foundation も設立され、時間の経過とともに CNCF は Kubernetes ストーリーの一部を解決する他のプロジェクトを追加し始めました。
「コンテナをワークロード単位として管理する視点と規模を持っており、その情報をユビキタスな方法で共有したいと考えていました」と、Kubernetesコミュニティ・オープンソース・グループのプログラムマネージャーであるGoogleのサラ・ノボトニー氏は述べています。2年前、GoogleはKubernetesプロジェクトへの貢献の73%を占めていました。その後、GoogleはKubernetesへの貢献への全体的な投資を増やしましたが、コミュニティからの貢献が急増したため、その割合は約50%に低下しました。

Kubernetesを実際にどれだけの人が利用しているかは完全には明らかではありませんが、ベンチャーキャピタリストは注目しており、Kubernetes関連のスタートアップ企業は昨年着実に買収されてきました。科学的な調査ではありませんが、今年初めにCNCFが主催するCloudNativeCon/KubeConカンファレンスで行われた開発者調査では、コンテナオーケストレーション製品を評価している参加者の77%がKubernetesを使用していることが示されました。昨年、The New Stackがコンテナオーケストレーション製品に関する開発者調査を実施したところ、Kubernetesが最も多く利用されている製品でした。
Kubernetesへの需要は、コンテナブームの波に乗じて生まれたものです。開発者たちはコンテナに夢中になっています。コンテナは、アプリケーションを個別のコンポーネントにパッケージ化し、どこでも実行できるだけでなく、ハードウェアからより高いパフォーマンスを引き出すために10年前に使われた仮想マシンよりもはるかに少ないリソースで実行できるからです。
Googleなどの企業は長年にわたりコンテナを使用してきましたが、Dockerが開発者がアプリケーションをコンテナ化するための使いやすい方法を開発して以来、その利用は爆発的に増加しました。Dockerは、これまでで最も急速に成長しているエンタープライズソフトウェアテクノロジーの1つとなり、長年にわたるコンテナ化されたアプリケーションのテストを経て、より多くの企業(特に大企業)が本番環境のアプリケーションでこのアプローチを採用し始めています。
現在、これらのコンテナをすべて管理する方法を模索しており、そこでKubernetesが登場します。Kubernetesを使用すると、管理者はコンテナ自体を「ポッド」と呼ばれるグループにパッケージ化することで、同じハードウェア上で実行される異なるコンテナ化アプリケーション間の競合を回避できます。また、需要に応じてアプリケーションをスケールすることも可能です。さらに、コンテナはほぼどこにでもデプロイできるため、マルチクラウドやハイブリッドクラウド戦略の効率性も向上します。
「Kubernetes が、どこにでもあると想定される基本的な仕組みになるまでには、あと 2 ~ 4 年かかるでしょう」と、CoreOS の CEO であるアレックス・ポルヴィ氏は語る。ポルヴィ氏は数年前に Kubernetes の実稼働を見て、自社を Kubernetes に賭けた。
丁寧に扱ってください
しかし、Kubernetes はベテランのシステム エンジニアの心を喜ばせる一方で、これまでに大規模な分散システム全体でアプリケーションを管理した経験がない場合、初めて Kubernetes に取り組んだときには頭が痛くなるでしょう。
「Kubernetesは導入2日目のエクスペリエンスが素晴らしいと思います」と、CNCFのエグゼクティブディレクターであるダン・コーン氏は冗談めかして語り、経験豊富なソフトウェア開発者でさえKubernetesを使い始める際に遭遇する困難を認めた。マクラッキー氏はこれを「時速0マイルから10マイル」までの問題と表現したが、2速になれば問題は解決する。しかし、この記事のためにインタビューした複数の人物は、Kubernetesの初期ユーザーエクスペリエンスはDockerに及ばないと指摘した。

これはプロジェクトの長期的な健全性にとって潜在的な問題です。現在、Kubernetesの実行に関心を持つ人のほとんどは、複雑なソフトウェアパッケージの実装に必要な作業を恐れない人々です。しかし、コンテナがより広く普及するにつれて、状況は変化するでしょう。Dockerの成功は、開発者エクスペリエンスに重点を置くことが導入に大きな影響を与えることを示しています。
DockerにはSwarmというコンテナ管理用の独自製品があり、より簡単なオンボーディングエクスペリエンスを提供していますが、Kubernetesほど普及していません。Mesosphereもコンテナ管理製品を提供していますが、こちらは主にビッグデータとデータ分析市場に重点を置いています。
いつものように、ここで問題視されているのはAmazon Web Servicesです。KubernetesはAWS上で実行できますが、パブリッククラウドのリーダーであるAmazonは、EC2 Container Service(ECS)と呼ばれる独自のコンテナオーケストレーション製品も提供しており、AWS上で実行する場合の実装作業の多くを抽象化します。しかし、最近のレポートによると、Amazonでさえ「勝てないなら仲間になる」戦略を検討している可能性があります。AWSはKubernetesを基盤とした製品の開発、あるいはECSをよりKubernetesフレンドリーにすることを検討しているというのです。
しかし、Kubernetes は、その機能セットと強力なコミュニティの両方を考慮すると、大きな先行をとっていると Polvi 氏は言います。
「だからこそ、これは止められないと思うんです」と彼は言った。「競合しようとする企業は、いずれ機能を模倣し始めるでしょう。そしてコミュニティ側では、どうやってそれを模倣できるのか、私にはわかりません。」
落ち着く時間ですか?
Kubernetesが今後2年間で進むべき道を決定づける要因はいくつかあります。まず、ユーザーエクスペリエンスの問題を解決する必要があることが挙げられます。
「このプロジェクトに初めて触れたときは、多くの摩擦がありました」とマクラッキー氏は認めた。「それは私たちが得意としていたことの結果であり、率直に言って、あまり得意ではなかったことでもありました。」HeptioとKubernetes志向のスタートアップ企業が行っている多くの取り組みは、開発者がKubernetesをより簡単に使い始められるようにすることに重点を置いている。
ポルヴィ氏は、ある時点でKubernetesのどの部分を安定したコアに組み込むべきかをプロジェクトは決定し、新しいアイデアをプロジェクトのエッジに委ね始める必要があると述べた。マクラッキー氏もこれに同意し、「このプロジェクトを検討し始めると、Kubernetesははるかに大きく大胆なものへの種結晶のようなものだと分かります」と述べた。
コーン氏は、CNCF はトップダウンの監視アプローチで主力プロジェクトに取り組むことを避けるよう細心の注意を払ってきたため、この成熟プロセスは Kubernetes コミュニティが独自に解決しなければならないものになるだろうと述べた。
「将来を見据えると、Kubernetesの中核部分で起こるであろう興味深い出来事の多くは、Kubernetesの中核部分で起こるわけではない」とマクラッキー氏は述べた。CoreOSやHeptioといった企業がまさにそこに賭けている。もしクラウドの世界が、HadoopやLinux自体のような他のオープンソースプロジェクトが普及したように、Kubernetesを標準として定着させれば、大きな商業的チャンスが生まれるだろう。