SREの林(@morihaya55)です。2019-11-18から21にかけて開催された、KubeCon NA*1こと KubeCon + CloudNativeCon North America 2019
に参加してきたので現地の所感を報告します。
KubeConとは
KubeConはCNCF(The Cloud Native Computing Foundation’s)が主体となって開催する、Kubernetesを中心にクラウドネイティブな技術をテーマに行われるカンファレンスで、世界各地で行われています。
その中でも北アメリカで行われるKubeCon NAは最も規模の大きいカンファレンスの一つで、2015年から毎年開催されています。CNCF Kubernetes Project Journey Reportによると、参加者は初回の550人から年々激増しており、5回目にして 12,000 人を突破したとのレポートが上がっています。*2
2019年だけでも韓国とオーストラリアの開催を残しており、2020年は規模も開催地も増えていくそうです。 ちなみに次回の KubeCon NA 2020 はボストンで開催するそうで、弊社が子会社としたビーガン食のミールキット宅配「Purple Carrot」もボストンにあり、子会社訪問もあわせて参加できると楽しそうと画策しています。*3
KubeCon NA 2019
はじめに、KubeCon NA 2019についての動画・スライド資料に関しては、その多くが一般公開されていて誰でも見ることができます。キーノートだけでも流し見をすると、今回の空気が伝わるかもしれません。
会場のサンディエゴ・コンヴェンションセンター
KubeCon NAの開催場所は固定されておらず、毎年変わるようで今回はカリフォルニア州のサンディエゴにある、サンディエゴ・コンヴェンションセンターで行われました。
サンディエゴ・コンヴェンションセンターは海沿いにある建物で、裏側はヨットハーバになっていて、KubernetesのロゴやIstioのロゴにマッチしている良さがありましたし、町側は ガスランプ・クォーター
という風光明媚な場所で休日はスケッチをする多くの人たちを見かけました。散歩やジョギングにも良さそうな場所でした。
初日はServiceMeshConに参加
月曜日は Day Zero Co-Located Events
として、クラウドネイティブ技術のカンファレンスがいくつか開催され、私はServiceMeshConに参加してきました。
具体的には以下のようないくつかのイベントが同日開催されて、どれに参加するかをとても迷いましたが、弊社のKubernetesの利用状況から、今後サービスメッシュの技術を活用していくのは重要なポイントと考えて選択を行いました。*5
- ServiceMeshCon <- これに参加
- FoundationDB Summit
- Cloud Native Storage Day
- Anthos Day by Google Cloud
- CalicoCon
- Kubernetes Contributor Summit
- MulticloudCon
- Observability Practitioners Summit
- etc...
ServiceMeshConでは
ServiceMeshConのスケジュールと資料のページは、KubeConとは別になっておりこちらです。
冒頭ではサービスメッシュの変遷と盛り上がりが提示されました。
全体的な感想としては、Istio,Linkerd,Consulの主要ソフトウェアのセッションはもちろん、PinterestやGoogleの事例、スポンサーセッションではあるもののSolo.ioの興味深いサービス紹介など満足度の高いカンファレンスでした。
Google社のサイドカー導入の話
特に印象に残ったセッションは How Google Manages Sidecars for Millions of Containers Without Breaking Anything で、Googleが数百万のプロセスにサイドカーを導入する経緯と、導入するに当たって苦労したり気をつけた話です。
プログラム言語の多様性を維持しながらも、それぞれが共通処理のために複雑化することを避けるためにサイドーカーを選択し、実際に導入していくという話なのですが、
- 本番に導入するってことは、とにかく怖いんだ
- ゆっくりだ!ゆっくりやっていかないと怖いんだ
- 警告だ!ユーザにちゃんと警告してからやらないと怖いんだ
と言った、とにかく本番への導入は怖いから慎重に対応しましょうとの話はうなずきが止まらない感じで拝聴しました。
Flagger: 様々な環境に対応した高機能リリースが可能なオペレータ
初見でしたが、Weaveworksが主体となって開発しているOSSの Flaggerのセッションも興味深かったです。 タイトルは Leveraging Service Meshes for A/B, Blue-Green, and Canary Deployments (aka "Progressive Delivery") で、素のKubernetesでもGKEでもEKSでも対応し、Istio,Linkerd,App Mesh 等を活用したカナリアを始めとした様々なアプリケーションのリリースを可能とする Kubernetes operator がFlaggerであるというセッションでした。その機能の良さもさることながら、スピーカであるPaul Curtis氏の力強いプレゼンテーションが印象的でした。
サービスメッシュのパターンを一気に学べた良いセッション
ServiceMeshConのトリのセッションはMaking Sense of the Mesh: A Conceptual Model for Service Mesh Topologiesで、こちらもまた素晴らしい内容でした。 「サービスメッシュとは何か?」 から始まり、サービスメッシュのトポロジーの3つの次元と、3つの目的に分解して整理した上で、ベストプラクティスのパターンを紹介してくれました。
3つの次元
- Controle Plane
- Cluster
- Mesh
3つの目的
- HA
- Resiliency
- Strong Trust Guarantees
最後には複数のサービスメッシュを接続するマルチメッシュという構成も提示されます。メッシュ同士を連結していくことができれば、サービス間の境界がどんどん拡がっていき夢を感じる一方で、運用する辛みも増えそうだという感想を持ちました。
パネルディスカッションは英語力の試練
ServiceMeshConの最後はスピーカー全員によるパネルディスカッションが行われました。30分間質問が途絶えることが無く、参加者の熱量を感じる濃密な良い時間でしたが、資料は無いため英語ヒアリングの試練の時間帯でもありました。*6
強烈な印象を残したのは Solo.io の Idit Levine氏*7で、質問者からの「ただでさえKubernetesも難しいのに、サービスメッシュとか諸々のエコシステムとか抽象化とか難しすぎるんだけどどう思う?」と言った感じの質問に対し「その考え方は今すぐに変えるべきだ!時代とともに技術も進化して変わっていて、それには理由がある。学び続けなければならない」と痛烈な回答をしていましたので、私も背筋が伸びました。*8
KubeConの3日間について
KubeCon本編は2019-11-19(火)から2019-11-21(木)までの3日間で行われました。構成としては3日とも9:00から10:30までキーノートが行われ、その後はスポンサーブースの巡回やセッションを聴いてまわり、18:00前には終了というスケジュールでした。*9
キーノート
キーノートは1万人が収容できる広大なホールで行われました。キーノートセッションの一覧はこちら。
キーノートセッションの内容は幅広く、Vitessの卒業やHelm v3と言った具体的なソフトウェアに言及したものであったり、Minecraftやコーヒーを比喩に利用したエモい話であったり、1万人を前にライブコーディングを会話しながらする超人デモが行われたりと、見応えのある内容が多かったです。
中でもKelsey Hightower氏のセッションは終了後に周囲で立ちながら拍手する方が数名いるなど非常に良い内容だったようです。雑なヒアリングでニュアンスをお伝えすると以下になります。
- 公式記録では無いがフルマラソンで人類初の2時間切りを果たしたエリウド・キプチョゲ氏の試みに言及
- ランナーとしての勝者は彼一人だが、多くのペースメーカーが彼を支援した、これは技術開発においても同じことで、大きくても小さくてもそれぞれが貢献していくことが歴史を作っていく
- 我々は同じチームに所属しているのだからレースでは無い(だからみんなで協力して行きましょう)*10
It's not a race if we are all on the same team.
どんなに小さなことでも貢献していくことが大事ですし、やっていきましょう、という理解です。*11
おすすめなセッション: k3sを使った Kubernetes in the car!
大量に聴いたセッションの中で、個人的にイチオシするのはこのセッションです。直接自社の業務に関係するものではありませんが、Kuberentesの多様性を感じる素晴らしい内容でした。
Kubernetes in Your 4x4 – Continuous Deployment Directly to the Car
概要を述べると以下になります。
- 現代の車は各種センサーや制御ユニットなど、多くの電子部品を搭載していて、それらをソフトウェアによってコントロールする必要がある
- 車へのソフトウェアのデプロイを超軽量なKubernetesを動かせるk3sを利用した
- k3sでKubernetesを車で動作することはできたが、デプロイ元との通信の不安定さの課題があったが、rsocketを利用して解決した
以下 "Rain sensor" など多くの電子部品を搭載する現代の車の図。
なおQAの中でわかったことですが、Kubernetesを搭載した車は開発段階らしく、実際に公道を走っている訳では無い様です。それがいつになるか、どこの会社なのかは濁されていました。
その他
キーノートやセッション以外でカンファレンスの雰囲気をいくつか紹介します。
スポンサーブースを巡回するのも楽しい
スポンサーページに掲載されている、多くのスポンサーがブースを出していて、Tシャツやユニークなノベルティを配布しながらプロダクトなどの紹介を行なっています。*12
名所の一角を貸し切った参加者パーティー
2日めの夜には、カンファレンス会場の前にあるガスランプ・クォーターという名所の一角を貸し切ったパーティーが行われました。当日はあいにくの小雨が降っていて、バンドやイルミネーション・ダンスなどの路上パフォーマンスをのんびり楽しむにはなかなか辛いものがありましたが、お酒やフードが振舞われて陽気な空間になっていました。
朝食も美味しかった
ランチはボックスで提供される無難な感じのものでしたが、朝食はフルーツとマフィンのバイキングで美味しくいただきました。朝食会場も巨大で、カンファレンス定番(?)の無限コーヒーもあわせてゆったりとした時間を楽しめました。
まとめ
3日間のkubeconと、ServiceMeshConを通して、刺激と学びの多い4日間となりました。VitessやRookなどからデータストアをKuberentes上で展開することが一般化してきていることや、マルチクラスタ運用の事例、上でも紹介したIoT的な事例や、キーノートでもあった5Gの活用、NATSやOpenTelemetryなど多くのエコシステムの充実と成熟を通し、ますますKubernetesのプラットフォームとしての拡がりを感じました。
弊社のKubernetesについても、マイクロサービス化基盤としての実績を軸に、それ以外の場所への推進を進めていきたいと考えています。
なお弊社マイクロサービス化について以下にも記事が上がっているのでご参考まで!
*1:日本人は "クベコン" と発音しますがUSの人は "キューブコン" と発音していました
*2:CNCF Kubernetes Project Journey ReportはKubernetesに関わる様々な数字が報告されていて、ながめるだけでも面白いです
*3:参加するのが私かどうかは分からないですが
*4:この記事時点で320本の動画が公開されています
*5:単純に面白そう、という動機も大きいですが
*6:そして私はその試練に勝ったとは言えず...
*7:壇上手前の青い服を着た女性
*8:彼女は直属のボスならめっちゃ怖いタイプです
*9:キーノートは火曜日は夕方も開催されました
*10:残念なことに、私は英語ヒアリング力の不足から感動までは至りませんでした
*11:このブログもその一つと言えるかもしれません
*12:英語力の壁が小粋なトークを阻みますので、英語を学ぶモチベーションが高まります