KubeCon Seattle初日のキーノートはHelm、Envoy、Istio、etcdの最新情報をアップデート
クラウドネイティブなシステムを構築する際の、コアコンポーネントとなりうるソフトウェアは数多く存在するが、デファクトスタンダードのポジションにあるのがKubernetesであることに異を唱える人は少ないだろう。Googleが利用するコンテナオーケストレーションのツールであるBorgをオープンソースソフトウェアとして公開したのが2014年、Linux FoundationがKubernetesをホストするためにCloud Native Computing Foundation(CNCF)を創設したのが2015年のことだ。それ以降、CNCFの中心的なプロジェクトとして、多数のコントリビュータによってKubernetesは急速に進化している。周辺のソフトウェアも拡大の一途を辿り、コンテナオーケストレーションのためのプラットフォームとしては他を圧倒する成長を続けている。
2018年12月、北米(シアトル)で開かれた今回のKubeConはコペンハーゲン、上海に続いて2018年の3回目の開催となる。CNCFはグローバル展開を非常に重要視しており、ヨーロッパ、アジア(特に中国)においてクラウドネイティブなシステムを啓蒙し、エコシステムを拡げるための努力を怠らない姿勢を見せている。
シアトルで開催されたこのカンファレンスも参加者のウェイトリストが2,000名を超え、メディアに対するパスも上限に到達し、多くの参加希望者が参加できなかったほどに人気が過熱していることが見てとれる。また展示ブースもGoogleやAWS、Microsoftなどの大手だけではなく、ベンチャー企業も数多く出展しており、エコシステムが本格的に拡大していることを感じとれた。
エコシステムの拡大と統合が並行して進む現状
このレポートでは、初日午前中に行われたキーノートを紹介したい。この日のキーノートは午前と午後にそれぞれ1時間ほど枠が設けられており、それを20分ずつ短いプレゼンテーションで繋げていくというスタイルだ。最初に登壇したのはCNCFのDan Korn氏ではなく、Aqua SecurityのエバンジェリストLiz Rice氏だ。Rice氏は、これまでも何度もKubeConのキーノートではMC役としてオープニングやクロージングのトークを行っており、今回もそれに倣った形だ。
Rice氏はまず、KubeConの参加者が8,000名に達したことや、多くのサービスプロバイダーやエンドユーザーに支えられていることなどについて数字を挙げて紹介し、KubeConの拡大ぶりを説明した。その後、クラウドネイティブなシステムを展開するベンダーが、買収などによって収束しつつあることを紹介。
エコシステムとして拡大しつつ、同時に競争が激化した結果、コンソリデーション(統合)が進んでいることの良し悪しは別にして、旧来のベンダーがクラウドネイティブを目指して先進的なベンチャーを取り込んでいることを、例を挙げて解説した。
CNCFがホストするプロジェクトのアップデート(Helm)
そしてここからCNCFのプロジェクトの最新情報のアップデートのパートに移った。最初のプロジェクトはHelmであり、MicrosoftのMichelle Noorali氏が登壇して紹介を行った。
Helmは元々Kubernetesのサブプロジェクトとして、Microsoftが買収したDeisで開発が進んでいたKubernetesのパッケージマネージャーだが、2018年6月にKubernetesのサブプロジェクトから独立した1つのプロジェクトとしてCNCFにホストされることが発表された。同時に地味ではあるが、コントリビュータのライセンスモデルも、Contributor License Agreement(CLA)からDevelopers Certificated of Origin(DCO)に変更された。CLAは、デベロッパーがパッチなどのコミットを行う前に、所属する企業から事前に許諾を取る必要がある。一方DCOは、コミットの際にSigned-off-byというフラッグを付けるだけでDCOを承諾したとみなすという簡易なライセンスモデルだ。
現時点でCLAを使っているのは、Kubernetesの本体とgRPCだけということになる。企業に属するエンジニアにとって、KubernetesのCLAが、貢献する際のハードルになっていたことは事実として存在する。そのため、Helmが、より簡易なライセンスに移行したことには大きな意味がある。またHelmのパッケージテンプレートであるChartを流通させるためにも、効果があると思われる。
Kubernetesから独立したことで、ライセンス以外にもガバナンスを整理しようという試みの一つが、メインテナーの役割の整理だろう。上のスライドで紹介したOrg Maintainerは、Helm全体のブランディングやビジョンなどについても責任を持つことになる。
そして今回のHelmのアップデートの大きな目玉が、Helm Hubだ。Helmがパッケージを管理するツールとして、よりエコシステムを拡大するためには様々なソフトウェアに対応したパッケージ、Helmで言うところのChartが開発される必要がある。Helm HubはChartのマーケットプレイスのようなものだが、いわゆるリポジトリーと異なる点は実体となるソフトウェアがそれぞれのベンダーや企業のサイトに存在し、Helm Hubではそこへのリンクとドキュメンテーションを保持する形を取っている点だろう。
参考:Helm Hub
他にも将来的な機能拡張の一つとして、SDKや新しいスクリプト言語Luaへの対応などが紹介された。Luaの採用によって、よりシンプルにChartが書けるという。
CNCFがホストするプロジェクトのアップデート(Envoy)
次に登壇したのは、Envoyの開発チームであるLyftのMatt Klein氏、Constance Caramanolis氏、Jose Nino氏だ。
Envoyは、CNCFにホストされたプロジェクトの中ではKubernetesに続いてGraduationステージに至った軽量のProxyサーバーだ。サービスメッシュのコンセプトでは、サイドカーインジェクションという実装モデルを採用することで一気に利用が拡がったプロジェクトだ。特にIstioの中では、必須のコンポーネントとして利用されている。そのEnvoyがLyftの中で開発された背景などについて、解説が行われた。
Envoyを使う前のシステムは、モノリシックなアプリケーションが相互に接続される形式でシンプルではなかったと言う。それをサービスメッシュの形に作り変え、EnvoyがサイドカーとしてPodの中でデータ通信を代行する形にすることで、小さなPodが連携するシステムに移行できたという。
結果的にPodが連携するサービスメッシュとなることで、システム自体の変化の速度が向上し、トラフィックのピークにも対応できるようになったという。興味深いのは、Internetからのトラフィックを受ける最初のロードバランサーの部分にもEnvoyが利用されており、AWSのElastic Load Balancerの直後に配置されたEnvoyが、実際のトラフィック分散処理を担当しているという部分だろう。
Matt Klein氏はメディア/アナリスト向けのサービスメッシュに関するブリーフィングにもスピーカーとして登壇しており、クラウドネイティブなコミュニティではサービスメッシュを語る権威として認められているようだ。さらに興味深かったのは、そのブリーフィングの中でKlein氏がNGINXをすでにレガシーなProxyとして認識していたこと、そしてgRPC以外にもAlibabaが開発を進めるRPCフレームワークDubboへの対応などにも言及し、サービスメッシュの最新の技術動向にも意識を向けていたことだ。
Lyftの3名が降壇した後、再度Liz Rice氏が登壇し、Linkerdを紹介した。Istioなどとも重なる領域をカバーするLinkerdの簡単なデモを見せ、EnvoyだけではなくLinkerdに対しても配慮を行うところが、競合するプロジェクトをホストするCNCFの気遣いと言ったところだろうか。
etcdがCNCFに寄贈される
この後、初日の最大のニュースとなったetcdのCNCFへの寄贈について、Red HatのBrandon Philips氏が登壇し、etcdのコントリビュータであるAlibabaのXiang Li氏とともに、etcdの概要をプレゼンテーションした。
etcdは、Kubernetesの構成情報などを格納する用途に使われている分散型キーバリューストアデータベースで、CoreOSが中心となって開発が行われていた。そのCoreOSがRed Hatに買収され、さらによるRed HatがIBMに買収された後ということもあって、etcdのCNCFへの寄贈は安定的なプロジェクト運営という意味では歓迎すべき動きだろう。
すでに多くのオープンソースソフトウェアで使われているetcdが、パブリッククラウドでの利用を拡げていくことは間違いなく、分散型システムの土台として成長を続けていくという力強い決意表明という形になった。
その後、GoogleのAparna Sinha氏、VMwareのWendy Cartee氏が続けて登壇し、GKEでのKubernetes、VMwareが取り組むオープンソースソフトウェアなどを紹介した。
Kubernetesが絵本に「Phippy goes to Zoo」
そして午前中のキーノートのハイライトは、MicrosoftのMatt Butcher氏とKaren Chu氏によるKubernetesの概要を絵本の形で表現した「Phippy goes to Zoo」というトークだろう。
Kubernetesは、デベロッパーにとっても運用担当者にとっても新しい概念、用語を導入したことで知られているが、それを絵本という形式を取ることで、より理解を深めようというのがMicrosoftによるこの絵本プロジェクトだ。Pod、ReplicaSets、Deployment、Ingressなどについて、イラストレーションを使って分かりやすく解説したこの絵本は、CNCFのショップで販売されており、絵本に登場するキャラクターもヌイグルミセットとして販売され、大変好評を博していた。
PHPで書かれたシンプルなアプリケーションであるPhippyがコンテナに収められ、Captain Kubeが運転するコンテナ船で海を渡るというのが、この前段に動画で発表されており、それをさらに詳細にしたものという位置付けだろう。
The Illustrated Children's Guide to Kubernetes
それを今回の「Phippy goes to Zoo」で、さらに詳しく解説したことになる。重要なのは、この絵本もキャラクターも全てCNCFに寄贈され、Creative Commonsのライセンスで誰でも利用が可能だという点だろう。プレゼンテーションの時点では若干緊張気味な両氏だったが、最後にこの絵本を作る苦労を語る段になってようやく緊張が解けたのか、リラックスした様子だったのが印象的だった。
動画は、以下のリンクから見ることができる。非常にわかり易い内容で、英語もそれほど難しくないので、ぜひ視聴をお勧めする。
今回は、Aqua SecurityのLiz Rice氏、MicrosoftのMichelle Noorali氏、LyftのConstance Caramanolis氏、GoogleのAparna Sinha氏、VMwareのWendy Cartee氏、MicrosoftのKaren Chu氏と、etcd以外のセッションで女性が登壇するという演出になった。北米とヨーロッパだけではなく、中国への積極的な進出を実施しているCNCFらしく、ダイバーシティに富んだキーノートであり、スポンサーにも目を配りつつ、最新のアップデートを簡潔に届けると言う意味では、よく出来たキーノートだと言って良いだろう。