KubeCon + CloudNativeCon Europe 2020 に登壇します

Neco プロジェクト責任者の ymmt です。 Neco プロジェクトでは大規模な分散システム基盤を Kubernetes というオープンソースソフトウェアを中心として作っています。

この度、来る 3 月に開催される KubeCon + CloudNativeCon Europe 2020 に我々のチームが提出した Capacity-aware Dynamic Volume Provisioning For LVM Local Storage が採択され、登壇することになりました。

kccnceu20.sched.com

この記事では登壇内容の簡単な予告に加え、採択に至るまでに Neco チームが行ってきた各種活動をご紹介いたします。

登壇者と内容の紹介

登壇者は sat松田です。

内容はまず、Kubernetes クラスタでサーバー上の HDD や SSD といったストレージデバイスを取り扱う各種の既存機能を紹介します。既存機能では未解決の課題、例えば、ストレージデバイスの空き容量を考慮した適切なスケジューリングなどに触れた後、Neco プロジェクトにて開発中の TopoLVM がこれらの課題を解決する仕組みを説明します。

KubeCon に参加される方は、ぜひ足を運んでいただければ幸いです。

KubeCon の解説

KubeCon + CloudNativeCon (以下 KubeCon) は Kubernetes やその周辺のエコシステムの開発者やユーザーが集う世界的なカンファレンスで、年に三回、北米・ヨーロッパ・中国で開催されています。北米やヨーロッパで開催される KubeCon は参加者が1万人規模の大規模なカンファレンスです。カンファレンスで発表するにあたっては Call for Proposal (CfP) に応じた内容を提出するのですが、採択率は 15% 前後で非常に狭き門となっています。

Neco チームは 2018 年にプロジェクトを開始した直後から、KubeCon に参加してきました。2018 年冬に北米で開催された KubeCon には当時のチームメンバー全員で参加し、こちらのブログに詳細な報告記事を寄せています。

blog.cybozu.io

この時が初回参加のメンバーが多かったのですが、カンファレンスのセッション内容は初心者~中級者向けの比較的簡単なものが多いという所見を共有して帰ってきました。例えば、発表内容がそのプロジェクトの Web サイトを小一時間眺めればわかるといったものがちらほらあるといった具合だったのです。実はその大半は後述する「メンテナーセッション」だったのですが。。

最初の挑戦... そして惨敗

Neco プロジェクト自体は順調に進み、昨年の半ば頃には以下をはじめとする成果を出していました。

  • Kubernetes 自動管理ツール CKE
  • データセンターを丸ごと仮想化しての自動試験
  • モジュラーなネットワークプラグイン Coil
  • ローカルストレージの柔軟な活用を実現する TopoLVM

前年の KubeCon の様子から、これらを実装する上で得た技術的な知見や工夫を詳細に解説すればあっさり採択してもらえるのではないかと我々は期待しました。そこで 2019 年冬の KubeCon North America に以下の三本のプロポーザルを提出しました。

  • TopoLVM – An LVM Based CSI Driver With Capacity-Aware Scheduling
  • Building Pure BGP-Based Kubernetes Network With a New CNI Plugin Coil
  • Testing Kubernetes and Its Infrastructures in a Virtualized Data Center

結果は、全滅でした。その時に知らされた採択率は 11.72%。8 本中 1 本しか採択されない計算で、これほど低い採択率のカンファレンスは滅多にありません。

敗因と採択傾向の分析

振り返れば、我々は舐めすぎていました。技術的に濃い内容のセッションが少ないというだけで、これなら勝てると高を括って自分たちの成果のみをアピールする内容のプロポーザルを提出していました。それが顕著に表れているのがタイトルです。「TopoLVM」や「Coil」といった自社製ソフトウェア名を入れていたのですが、著名でも、注目されつつあるわけでもないソフトウェアの名前に誰が興味を惹かれるというのか。

それに、我々は KubeCon の採択傾向をろくに調べてもいませんでした。11.72% という非常に低い採択率のカンファレンスで、なぜ初心者向けの内容のセッションが目立つのか。そこには理由があるはずです。深く反省して、まずは KubeCon のセッション内容と採択傾向を分析しました。以下がその内容です。

  • 全体の半数近くは CNCF プロジェクトの OSS のメンテナーセッション
  • それ以外のセッションの半数は有力スポンサー企業が注力しているテーマ
  • つまり残りの枠をめぐる熾烈な競争になっていそう
  • ライトニングトーク枠は狭き門で、採択は運の要素が強そう
  • メンテナーセッションを除き、タイトルでは課題を訴求している

メンテナーセッションは、スケジュール上では灰色で表示されているセッションです。一例として、Intro to gRPC のように OSS をメンテナンスしている人が代表して、その OSS を初心者向けに解説したり開発状況を報告したりするものです。メンテナーセッションは CfP とは別に枠が確保されているので、そもそも競争相手ではありません。

そう思って調べると、熾烈な競争を勝ち抜いたと思しきセッションの文章は、魅力的で聴いてみたいと思わせるものが多数を占めていました。メンテナーでも、有力スポンサー企業でもない我々がどのようなプロポーザルと競っていたのか、ここでようやく認識できたのです。

作戦を練って行動する

ここまでの内容をもとに我々が立てた計画は以下の通りです。

  • プロポーザルは幅広い人の興味を引ける問題設定にする
  • コミュニティにおける知名度を上げて潜在的な聴衆を増やす

前者については、実際に提出したプロポーザルのタイトルを紹介します。先のものと比べ、より広い層が興味を持てるように工夫しました。

  • Capacity-aware Dynamic Volume Provisioning For LVM Local Storage
  • Is Your CI/CD Pipeline Production-Ready? Here's How.
  • Egress Matters: How to Reach External Networks From Pods?

後者については、以下の取り組みを行いました。どれがどの程度有効だったかはわかりませんが、ストレージコミュニティでは TopoLVM はかなり知名度を上げることに成功したので一定の後押しを得られたのではないかと推測しています。

まとめ

最初のチャレンジではろくに分析もせずに惨敗してしまいましたが、今回はやるべき手をしっかり打って結果につながったと考えています。 プロポーザルが通らず悩んでおられる方に、幾何かでもお役に立てれば幸いです。

KubeCon Europe 2020 の登壇に向けて、しっかり準備をして臨みます。それでは今回はこの辺で。