Google から世界へ : Kubernetes 誕生の物語
2016年8月1日月曜日
Kubernetes 誕生の物語は、ここから始まります。2013 年の夏のことでした。私たちは Urs Holzle の部屋にいました。Urs はテクニカル インフラストラクチャの責任者であり、Google の最も重要なネットワーク イノベーションの数々でチーフ アーキテクトを務めた人物です。
私たちは Urs にオープンソースのコンテナ管理システム構築のアイデアを説明しましたが、賛同は得られませんでした。少なくとも私たちはそう思いました。
どうしてそうなったのかを理解していただくには、歴史を少し遡る必要があります。
Google はかねてから、Google 検索や Gmail、YouTube など、パワーが必要なオンライン サービスを提供するため、極秘のうちに最良のネットワーク インフラストラクチャを複数構築してきました。
それらはゼロから作られたのですが、それはそうしなければならなかったからです。初期の頃は予算もタイトでした。サーバーのパフォーマンスを最後の 1 滴まで絞り出すため、私たちは 10 年前からコンテナを試していました。
そして、Borg というクラスタ管理システムを作りました。Borg は数十万ものジョブを実行し、コンピューティングの効率を大幅に向上させ、私たちはデータセンターの能力をフルに活用できるようになりました。
その後、私たちは同じインフラを使って Google Cloud Platform を提供するようになり、誰もが自分のニーズのためにこのインフラを使えるようになりました。
ところが、IaaS プラットフォームの Google Compute Engine を立ち上げると、面白い問題があることに気づきました。お客様は料金を支払って大量の CPU を確保しているのに、VM を実行していたため、その利用率はきわめて低かったのです。
私たちは、この問題を解決するための方法が Google 社内にあることを知っていました。それどころか、コンピューティングの未来はコンテナだということも理解していました。コンテナはスケーラブルかつポータブルで、しかも効率的だからです。
その頃、コンテナ システムの Docker はすでに発表されており、私たちは Docker を素晴らしいと思っていました。しかし、私たちは Google 社内での長年の試行錯誤を通じて、解決策は優れたコンテナ管理システムにあることを知っていました。
これこそ、私たちが作りたいと思っていたものです。私たちは提案が却下されても諦めませんでした。Google では良いアイデアはたいてい勝ち残ります。これは間違いなく良いアイデアだと思っていました。私たちは、話を聞いてくれる人には誰にでもこのアイデアのことを話しました。
転機がやってきたのは、移動のときに偶然クラウド担当 VP で Urs のブレーンの 1 人である Eric Brewer の隣の席になったときでした。まさに運命的な出来事でした。私は Eric にアイデアを十二分に説明する時間を手に入れ、理解を得ることができました。Urs からゴーサインが出たのは、それからすぐのことです。
Borg にちなんで、プロジェクトには Seven of Nine という名前を付けました(Kubernetes のロゴが 7 角形になっているのも、この名前に由来します)。私たちは、Borg とその後継モデルの Omega の設計、デプロイを通じて学んだすべてのことを組み込み、エレガントでシンプル、かつ使いやすい UI を持ったコンテナ管理システムを作りたいと考えました。そして 3 か月のうちに、シェアできるプロトタイプを作り上げたのです。
私たちは常々、Kubernetes についてはオープンソース化が正解だと思っていました。得られるメリットが大きいからです。まず、フィードバック ループが瞬間的になります。どこかがうまく動かないというような問題があれば、それをすぐに知ることが大切なのです。
もっとも、何より重要なのは、たくさんの優れた技術者たちと一緒に仕事ができたことです。彼らの多くは、コンテナのデプロイによって利益が得られるビジネスのニーズをよく理解していました(Kubernetes ブログを見れば、初期のコントリビューターたちの視点がよくわかります)。それが好循環を生みました。有能な技術者たちの仕事がプロジェクトへの関心を呼び、それが改良と採用のペースを押し上げていきました。
あの夏に Urs の部屋で交わされた話が、このようにしてグローバルな動きへと発展していきました。現在、Kubernetes は数千の企業(たとえば Box)で採用され、830 人を超えるコントリビューターの支援を受け、その力は 237 人年分のコードという形に結実しています。それは、私たちの最も大胆な予想さえ超えるペースでした。
コントリビューターとコミュニティの皆さんには、Kubernetes を透明で誰からも喜ばれるシステムに育ててくださったことを心から感謝します。そして Kubernetes、君にはお誕生日本当におめでとう!と言っておきましょう。
Kubernetes をまだ試されていない方は、Google Container Engine を使えば簡単に始められます。60 日無料トライアルはこちらです。そして、Kubernetes の物語をもっと知りたい方は、Software Engineering Daily の Kubernetes Origins ポッドキャストをお聴きください。
- Posted by Craig McLuckie, Co-founder of Kubernetes and Senior Product Manager at Google