KubeCon + CloudNativeCon North America 2019 参加レポート -Day 0, Day 1編-

こんにちは!Airメイトを開発している小谷野(@bandwagondagon)です。

弊社ではCETチームのバッチ基盤・API基盤やホットペッパービューティーコスメをはじめ、本番環境へのKubernetesの導入事例が増えてきています。

そんなKubernetesをテーマにしたカンファレンスの中でも最も大規模なカンファレンスの一つである、KubeCon + CloudNativeCon North America 2019が11月19~21日にアメリカのサンディエゴで開催されました。

そのカンファレンスの参加レポートとして、メインのDay 1~3にDay 0を加えた4日間を

  • 前半 (Day 0, Day 1)
  • 後半 (Day 2, Day 3)

の2つに分けて、現地の様子や個人的に興味があったセッションをご紹介いたします。 本記事はその前半(Day 0, Day 1)にフォーカスした記事です。

KubeCon + CloudNativeCon とは

KubeCon + CloudNativeConはThe Cloud Native Computing Foundation (CNCF)によって開催される、Kubernetesをはじめとしたクラウドネイティブな技術をテーマとするカンファレンスで、年に3回、南アメリカ/ヨーロッパ/中国で開催されます。

今年のヨーロッパ、中国でのKubeCon + CloudNativeConの公式サイトはこちらです。

また、2020年の開催日や開催都市も既に発表されています。

今回の来場者は約12000人・スポンサーは250社以上と、規模も注目度も非常に高いカンファレンスでした。スポンサーブースだけでも2会場に分かれるという大きさで、気になった会社やサービスの話を聞いて回るだけでも一日かかってしまいそうな規模です。

こちらはスポンサーブースの様子です。休憩時間・セッション時間問わず常に人にあふれて賑わっていました。

Day 0 : EnvoyCon 2019

Day 0ではCo-Located Eventsとして、約35種類のクラウドネイティブに関連したカンファレンスやワークショップが同時に開催されていました。開催元も、CNCFからAWSやGoogle Cloudなどさまざまです。

その中でも私は技術的な興味からEnvoyCon 2019に参加しました。

  • 弊社でもサービスメッシュとしてIstioを導入する形でenvoyを利用しているプロダクトがある
  • 今年6月のEnvoy MobileのOSS公開が話題となり、その存在感がさらに増していると感じていた

などがEnvoyConを選択した主な理由です。EnvoyConは1会場での開催で、18ものセッションやライトニングトークが行われました。

気になったセッション

Building Low Latency Topologies with Envoy

Building Low Latency Topologies with Envoy - John Howard, Google | Snow Petterson, Square | Liam White, Tetrate

発表資料はこちらです。

Envoyによってマルチリージョンのクラスタ間に分散する同一サービスにアクセスするとき、ラウンドロビンなどで均等にロードバランシングを行ってしまうと、他クラスタ・他リージョンへのアクセス増加によって通信コストやパフォーマンスに懸念が生じます。そこで、優先度や局所性を考慮してどのように負荷分散させるかというアルゴリズムやIstioやSquare社での実装例を説明したセッションです。

後半スライドで

Hard to reason about mixing health checks (such as Kubernetes) with Envoy health checks

と語られているように、ヘルスチェックの競合にどう対処するか、という問題は個人的に今まで経験したことがなかったのでとても印象的でした。

Envoy Mobile in Depth: From Server to Multi-platform Library

Envoy Mobile in Depth: From Server to Multi-platform Library - Jose Nino & Michael Schore, Lyft

発表資料はこちらです。

Lyft社

  • なぜEnvoyをモバイルアプリケーションの領域にも導入しようとしているのか
  • どのようにEnvoy Mobileは動作するのか

などを取り扱ったセッションです。 セッション名は異なるものの、KubeConの方でもBringing the Envoy Service Mesh to Mobile - Jose Nino & Michael Schore, Lyftというセッションで同じ内容が発表されていたので、そちらを見たという方もいるかもしれません。

私も普段は業務でAndroidアプリケーションを開発することが多く、今後Envoy Mobileという形でEnvoyがどのようにモバイルアプリケーション開発に関わってくるのかは非常に興味深いテーマでした。

また、Observabilityなどの機能とは別にマルチプラットフォームに動作するライブラリとしての文脈では、Kotlin/Nativeの登場や、先日のDropboxのiOS/Androidのコード共有に関する課題など、メリット・デメリットが多く語られている中で、このEnvoy Mobileがマルチプラットフォーム対応のライブラリとしてどのような立ち位置になっていくのかがとても楽しみです。

Envoy Mobileの今後のロードマップはAnnouncing Envoy Mobile, Envoy Mobile v0.2: Ready for donuts!などでも確認できるので、引き続きチェックしていきたいと思います。

Day 1の様子

Day 1のKeynoteセッションでは、CNCFのExecutive Directorを務めるDan Kohn氏による、Minecraftを比喩として用いたクラウドネイティブ技術の取り組み、を皮切りにCNCFに関するアップデートが取り上げられていました。 大きなステージとディスプレイからわかるように会場の規模もさることながら、 CNCFメンバーを中心とする登壇者の熱い思いとそれに対応する参加者の熱気で非常に盛り上がっていました。

Day 1のKeynoteはこちらです。

気になったセッション

Beyond Storage Management

Beyond Storage Management - Andrew Large & Yinan Li, Google

発表資料はこちらです。

障害に備えたデータベース保護に関する原理・原則とベストプラクティスが、Kubernetesのリソースや機能にどのようにマッピングされるかを説明したセッションです。

データベース保護の上で重要とされる

  • Recovery Point Objective (目標復旧時点)
  • Recovery Time Objective (目標復旧時間)

という2つの指標とコストを

  • Snapshots
  • Backups
  • Replication

というアプローチを用いてどのように最小化していくのかを丁寧に解説しています。

私自身はデータベース運用の経験や知識があまりなかったため、Kubernetesの知識だけに限らず非常に勉強になるセッションでした。ステートフルアプリケーションとしてデータベースをどのようにKubernetes上で扱うべきかは、ステートレスアプリケーションと比較して考慮すべき懸念事項も多く難易度が高い一方、今後の技術の進化の注目度が特に高い分野なのではないでしょうか。

また、当セッションに限ったことではないのですが

  • 管理者(プラットフォームチーム)のためのクラスタへの関心事
  • アプリケーション開発者のためのアプリケーションへの関心事

を別々の問題として切り離して考えるべき、と強調して語っているセッションが多く、改めてアプリケーション開発者のためのプラットフォームとしての、Kubernetesと組織作りの重要性を感じました。

Applying Policy Throughout The Application Lifecycle with Open Policy Agent

Applying Policy Throughout The Application Lifecycle with Open Policy Agent - Gareth Rushgrove, Snyk

発表資料はこちらです。

Policyの適用やそのフィードバックをCI・CDパイプラインの中でも修正コストが低い初期段階にシフトレフトさせていく上で、Open Policy Agent (OPA)conftestを用いたテストや、それをどうパイプラインに組み込んでいくかをDEMOを行いながら紹介しているセッションです。また、OPAとKubernatesとの統合を行う中でgatekeeperkubesecなどのツールにも触れています。

OPAは 誰がどのリソースに対して何を実行できるのかという認可ポリシーに関する意思決定の部分を統合する汎用ポリシーエンジンです。OPA側で集中的に認可ポリシーを管理し、ポリシーを実施するシステムがポリシーエンジンに意思決定を問い合わせるという認可フローを導入することによって、システムの認可ポリシーに関する意思決定と実施を分離できます。また、OPA自体はKubernetesへの組み込みに限定せず、マイクロサービス、CI / CDパイプライン、APIゲートウェイなどさまざまな技術スタックと統合が可能です。

今年は前回のKubeConと比較してもこのOPAに関するセッションが増えた印象でした。 下記にOPAに関するセッション一覧をまとめています。Co-Located EventsのOPA Summit 2019などまだ資料が公開されていないものもあるのですが、詳細が気になる方はぜひこちらものぞいてみてください。

おわりに

1日目だけでも100近くのセッションがあり、なかなかその全ての魅力がお伝えしきれないKubeCon + CloudNativeConですが、Day 0, Day 1の一部をかいつまんでご紹介しました! 次回はDay 2, Day 3の様子を砂川がお伝えします!お楽しみに!