KubeCon + CloudNativeCon Japan 2025 参加速報 - Day1 | Wantedly Engineer Blog
こんにちは、ウォンテッドリーでインフラエンジニアをしている田中です。ついに KubeCon + CloudNativeCon Japan 2025 が始まりました。ウォンテッドリーでは2016年...
https://www.wantedly.com/companies/wantedly/post_articles/984296
こんにちは!Rust にうつつを抜かして自宅の Kuberntes クラスタにふれられていない巨畠です。
KubeCon + CloudNativeCon Japan 2025 が6月15日から始まりました!現地にて参加される方はもちろん、残念ながら参加できなかった方々もどのような発表があるのか期待が高まっているところだと思います。
そこで、KubeCon + CloudNativeCon Japan の参加速報ということで、現地の熱狂をそのままブログという形でお伝えします。ウォンテッドリーからは普段 Kubernetes 基盤の開発・運用を担う Infra Squad の田中(@bgpat)、加藤(@kkato)、巨畠(@donkomura)の三名が参加し、参加セッションの内容を現地で得られる生の声とともにお届けします!
第一弾は6月15日に開催された「Japan Community Day at KubeCon + CloudNativeCon Japan 2025」の様子をお届けします。このイベントは KubeCon + CloudNativeCon Japan に合わせて開催されたコミュニティイベントです。
Kubernetes は誕生から11年が経過しています。その中で様々な機能や修正が積み重なり、今日の巨大なプロジェクトを作り上げています。この発表ではそんな Kubernetes を11年間ずっと見てきた Tim Hockin 氏が今の Kubernetes に存在するリスクについて語ったものです。Hockin 氏が言及していた Kubernetes のリスクは大きく3つありました。
中でも印象的だったのは複雑性のリスクについてです。
Kubernetes が複雑なシステムということは言うまでもありませんが、Hockin 氏の視点からもより複雑になってきているようでした。システムが複雑になればなるほどメンテナーは容易に変更を加えられなくなりますし、ユーザーから見れば認知負荷が高まります。そのため、本当に必要な機能だけを慎重に Kubernetes に取り込むという姿勢が取られています。
しかし、これは簡単なことではありません。判断を慎重に行いながら高速に開発を進めることは容易ではありませんし、時間と労力を割かなければなりません。この問題は Kubernetes に限ったことではなく、成長したあらゆるソフトウェアに共通する課題だと感じました。
複雑性とコストのトレードオフを正しく評価するのは難しく、またそれを実行に移すには大きなエネルギーを要します。私自身この課題に対する答えは出ていないのですが、Hockin 氏は課題解決のためにコントリビューションを呼び掛けていました。Issue のトリアージやこうした複雑なシステムを単純にしていくためのアイディアを議論するためにプロジェクトに貢献できる部分がまだまだ多いことを訴えかけていました。
すでに7万を超えるコントリビューターが関わるこの巨大プロジェクトを、いかに持続可能に保ち、それでいてより多くのワークロードに価値を提供し続けていくか。これはプロダクト開発者にとっても、他人事ではない重要なテーマだと感じました。
Wasm(WebAssembly)は今回のイベント内の複数セッションで言及されており、その進化の速さを改めて実感しました。中でもWasmに関して技術的に深く掘り下げていた、はこだて未来大学の Nakata さんと Fujii さんのセッションについて紹介します。
このセッションは、ランタイムに依存しないWasmのチェックポイント・リストア(C/R)という、Wasmの真価をさらに引き出す可能性を秘めたテーマに焦点を当てていました。
Wasmは「一度書けばどこでも動く」という強力なポータビリティを謳っていますが、これは主にコンパイルされたバイナリが様々なCPUアーキテクチャやOS上で実行可能であるという意味合いが強いです。実際にワークロードが動作している途中の状態、例えばメモリの内容やCPUのレジスタ値といった「実行状態」は、利用しているWasmランタイム(Wasmtime, WasmEdge, WAMRなど)に強く依存してしまいます。このため、異なるランタイム間や異なる環境間でサービスを停止せずに実行中のWasmワークロードを移動させる「ライブマイグレーション」は困難です。
このセッションでは、その課題を解決するための画期的なアプローチとして二つの方法が紹介されました。
一つ目は「実行状態の相互変換」です。異なるWasmランタイム間で発生する内部状態の差異を吸収し、相互に変換可能にする手法です。具体的には、各ランタイムにおけるプログラムカウンター(PC)のカウント方法が異なるため、これらを正確に対応付けるためのマッピングを構築したり、Wasmのスタックフレームやメモリレイアウトの差異に対して「TypeStack」という抽象概念を導入することで解決を図っていました。これにより、あるランタイムで取得したチェックポイントデータを別のランタイムの内部表現に合わせて変換し、リストアすることが可能になります。実行時にオーバーヘッドを発生させないよう、このマッピング計算はWasmコードのロード時に事前に行うといった最適化も施されている点が印象的でした。
二つ目は「Self-hosted Runtimeを介する方法」です。これはWasmバイトコードを処理できるランタイムそのものをWasmで実装してしまうというものです。WasmでセルフホストすることでC/R機能の実装が特定のランタイムに縛られることなく、任意のWasmランタイム上で動作するという究極のポータビリティが実現されます。ただしこの方法はWasmのコードをさらにWasmで解釈・実行するため、追加のオーバーヘッドによるパフォーマンス劣化が課題となります。この課題に対し、セッション中ではサンドボックス機能のバイパスや、実行時のインライン化といった様々な最適化手法を適用することで、実用的なパフォーマンスを目指している点が語られました。
Wasmのライブマイグレーション機能は、対応するランタイムの種類やパフォーマンスの点でまだ課題が残されていますが、Wasmの持つ「ポータビリティ」という特性を、単なるバイナリの互換性にとどまらず「実行中の処理」にまで拡張しようとするこの取り組みは、非常に興味深いと感じました。これは、リソースの動的な最適化、サービス無停止でのメンテナンス、エッジコンピューティング環境でのワークロードの柔軟な移動など、Wasmの新しい利用シナリオを大きく広げる可能性を秘めています。今後もこの分野の発展に大いに期待し、その動向をウォッチしていきたいと思います。
Kubernetes Upstream Training in Japan に参加してきました。
このイベントは、Kubernetes の開発やドキュメント執筆などのコントリビューションを始めたい人のための入門講座で、現役のメンテナーやコントリビューターの方々から直接学べる、とても貴重な機会です。
使用した資料などは以下の GitHub リポジトリに公開されています:
まずは、Kubernetes コミュニティの構造や開発フロー、必要な開発環境の整え方についてスライドで説明がありました。
続いて、実際に GitHub 上でのコントリビューションの流れを体験するハンズオンに取り組みました。今回は kubernetes-sigs/contributor-playground というリポジトリで、簡単なドキュメントを作成し、それをプルリクエストとして提出・マージするという内容でした。kubernetes-sigs/contributor-playgroundは本番と同様のレビュープロセスを体験できる練習用のリポジトリです。
という一連の流れを体験でき、初めての人でも非常に分かりやすい構成になっていました。
引用元: https://github.com/kubernetes-sigs/contributor-playground/blob/master/japan/assets/slide.pdf
また、Kubernetes へのコントリビュートには CLA(Contributor License Agreement) への署名が必要なのですが、PR 作成時に自動で案内されるため、思っていたより簡単に済んだのもありがたかったです。これで最初の大きなハードルがひとつ下がった気がします。
正直、Kubernetes へのコントリビュートと聞くと、敷居が高く感じていました。ですが、今回のイベントを通して「まずはやってみようかな」と一歩踏み出す勇気をもらえました。これをきっかけに実際にコントリビュートしてみようと思います。
Keynote をはじめとしてかなりの人数で盛り上がっていました。
余談ですが、「Kubernetesで実践する Platform Engineering」の抽選会に参加し、本をいただきました。著者である Mauricio Salatino さんからサインまでいただくことができました。少し読んだのですが、7章と8章が実践的で良かったです。
Japan Community Day からすでにコミュニティの熱量と盛り上がりを肌で感じることができました。6月16日 から始まる KubeCon + CloudNativeCon Japan 2025がメインです。
現地の熱量をそのままに、引き続きブログでお届けしていきますので、会場にいる方もそうでない方も、ぜひ楽しみにしていてください!