Google Cloudの開発責任者が語るKubernetesの成功の秘訣
The Linux Foundationが開催した「Open Source Leadership Summit」にてGoogle CloudのDirector of EngineeringであるChen Goldberg氏がキーノートに登壇した。ここではこの日(2018年3月7日)にCloud Native Computing Foundation(以下、CNCF)のプレスリリースによって、Incubationモードからの卒業が発表されたKubernetesについてのセッションを紹介する。
LinkedInのprofileによれば、Goldberg氏は2016年からGoogle Cloudの開発チームのディレクターに就任している。前職は2007年から2011年がHPのイスラエルの拠点でエンジニアリングマネージャー、2011年から2016年がアメリカでHPのクラウドビジネスの責任者だそうで、そののちにGoogle Cloudの責任者に就いたという経歴を持っている。自己紹介で「KubernetesとIstioの開発を行っている」とコメントしたことから、KubernetesだけではなくIstioについても開発を推進している人物と見ていいだろう。
Goldberg氏の講演のテーマは、「オープンソースと非オープンソースの開発にどのように投資をバランスさせるか?」「オープンソースプロジェクトを成功させるためにKubernetesがやったことは何か?」などだ。これらのポイントについてのJim Zemlin氏の後を受けての講演となった。
参考:Open Source Leadership Summit開催。ディレクターのJim Zemlinがキーノートを講演
最初にKubernetesがCNCFのインキュベーションから次の段階に移行したことを説明すると、会場からは拍手が起きた。
オープンソースプロジェクトが企業で誕生した後、非営利団体を作ってその中でガバナンスを行うことは珍しくないが、CNCFは非常に厳密なガバナンスモデルを採用しており、Incubationから卒業するためにも明確なクライテリアが存在する。
多くのオープンソースプロジェクトをホストするApache Software FoundationにもIncubationからTop-Level Projectに至るプロセスは定義されているが、CNCFにおいては「Linux FoundationのCore Infrastructure Initiative(CII)から認定されているかどうか?」「12ヶ月ごとにプロジェクトの状況を確認するステップでCNCFのTechnical Oversight Committeeによるチェックに通っているか?」などが特徴的である(CIIはオープンソースソフトウェアのセキュリティを確保するためのイニシアティブ)。
Goldberg氏は、Kubernetesがコンテナオーケストレーションのデファクトスタンダードであることの裏付けとして、すでに4000以上のプロジェクトがKubernetesを使っていること、5000人以上のコントリビューターがいること、GitHub上で3万スターを得ていることなどを紹介した。
そして「みんな、ポケモンGoやってる? やってますよね。私もやっていますけど、真剣にはやっていない。なぜならポケモンGoはGoogle Kubernetes Engine(GKE)で動いているから。あんまりやるとシステムに負荷を掛けちゃうでしょ?」と語り、「当初の予定よりも50倍もアクセスが来てシステムがちゃんと動くかどうか、いつも心配していた」と、会場からの笑いを誘った。ここではKubernetesのマネージドサービスであるGKEが、世界中のスマートフォンユーザーからの凄まじいアクセスをさばくインフラストラクチャーとして充分に機能していることを紹介した。
Goldberg氏はここから、「いかにオープンソースのプロジェクトとクローズドなプロジェクトのバランスを取るのか?」というポイントに話題を移した。
当然だが、Google Cloudのエンジニアリングチームの中で開発されているソフトウェアにはプロプライエタリでクローズドなソフトウェアとKubernetesのように対外的にオープンなソフトウェアが存在している。だがチームの責任者として、その2つを分けることはしていないとGoldberg氏は説明した。つまりKubernetesの開発とGoogle Cloud Platformの開発のために、資源を分けてはいないということだ。そしてそれは、結果的にGKEの開発を進める上で良い効果をもたらしていると強調した。
そしてKubernetesの開発において重要だったことは、「ソフトウェアの拡張について、いくつかのレイヤーに分けて整理を行うことだった」と解説した。
最上位に他のオープンソースソフトウェアから構成されるエコシステムが位置付けられ、その下にクライアントやライブラリーのレイヤー、オートメーションやポリシーによる制御レイヤー、その下にアプリケーションが実装されるレイヤー、そして中核にAPIなどが整理されていることがわかる。このようにレイヤーに分けることで、どこに何があるのか、どこで開発が停滞しているのかをすぐに理解することができるという。
そしてソフトウェアを開発するプロジェクトにおける重要なこととして、以下の3つのポイントを挙げ解説を行った。
1つ目は「Intentional Leadership」で、これは直訳すると「意図的なリーダーシップ」ということだ。組織をまたいでエンジニアが多数参加するオープンソースソフトウェアの開発においては、「誰がどういう権限を持っているのか」が、往々にして不明瞭になる。それを明確に定義することによって、最終的な決定権を誰が持っているのかを明確にするという意味だ。
2つ目は「Sustainable Success」ということで、プロジェクトが上手く組織が運営されることを運に任せるのではなく、誰が交替しても運営できるような統治システムを作るべきであるという提言だ。
そして3つ目の「Diversity」は、同じ会社のエンジニア、同じ地域や国籍だけで組織を構成するのではなく、多様性を持った人間が存在することでプロダクト開発がより強固なものになるという経験則である。
オープンソースソフトウェアを開発するプロジェクトをどうやって立ち上げ、持続させていけば良いのか? これに関しては日本の大手システムインテグレーターだけではなく、ベンチャーなどでも課題のひとつに挙げられることも多いが、Googleでさえ様々な試行錯誤を行っていることは記憶しておくべきだろう。
そして意外かもしれないが、このプレゼンテーションではGoogleのエンジニアの活動指針として有名な「80:20」の話が出てこなかったのは注目すべきだ。
他のセッションでは「20%の時間を自分の興味のあることに割り当てるというのは、エンジニアからしたら不自然」という発言もあった。興味深いことに、これはマイクロソフトのJavaScriptコントリビューターであるエンジニアのセッションで語られたもので、満員とは言い難いそのセッション会場からは、大きな歓声と拍手で迎えられた瞬間があったことは明記しておきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Open Source Leadership Summit開催。ディレクターのJim Zemlinがキーノートを講演
- Open Source Leadership Summit開催、変化に対応し持続するために何をするべきか?
- LinuxCon+ContainerCon+CloudOpen China開催。中国企業の存在感が大きかった初日
- Open Source Summit Japan 2019開催。Linuxの外に拡がりを見せるLinux Foundationの今
- CloudNative Days Spring 2021開催。CNCFのCTOが語るクラウドネイティブの近未来
- ONSに参加する意図をOpenStack FoundationのJonathan Bryce氏に訊いてみた
- Open Source Summit NA 2022開催。Googleが解説する持続可能な信頼できるOSSのためのキュレーターとは?
- GoogleがIstioを新組織に寄贈。トレードマークだけの管理に意味は?
- KubeCon+CloudNativeCon開催、勢いのあるKubernetesとCNCFプロジェクトが一同に
- 「KubeCon NA 2022」から、初日のキーノートセッションを紹介