Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CNCF Project の作者が考えている OSS の運営

CNCF Project の作者が考えている OSS の運営

CNCF Sandboxプロジェクトの youki の作者が脳内で考えている OSS のマネジメントについて説明します。youki は既に3年以上開発がされ続けているコンテナランタイムです。本セッションではそこから得た知見について共有します。
https://3-shake.connpass.com/event/339212/

うたもく

January 23, 2025
Tweet

More Decks by うたもく

Other Decks in Programming

Transcript

  1. 3-shake 技術顧問 OSS Activities Maintainer opencontainers/runtime-spec youki-dev/youki Reviewer containerd/runwasi Member

    kubernetes org(sig-scheduling/node) Community CNCF Ambassador, CNCJ @utam0k Toru Komatsu 2
  2. 目次 1. youki 2. OSS の⽣態 3. 新規コントリビュータ 4. OSS

    のリーダーシップ 3 💡ある程度の規模の OSS の趣味メンテナが考えている一例
  3. youki 概要 / 規模感 youki : OCI Container Runtime in

    Rust コミュニティベース の運⽤ Repository: youki-dev/youki 📈 2021/03 ~ 🌟 6.4K 👥 メンテナ 6 ⼈ CNCF Sandbox Project 5
  4. youki 概要 / 規模感 他の⼈が本格的に使い始めて 1.5 年くらい経過 runwasi ◦ KubeCon

    NA 2024 - Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads - Jiaxiao Zhou, Microsoft Syd-OCI ◦ FOSDEM 2025 - Syd+Youki=Syd-OCI: Introduction to a Secure Container Runtime for Linux 6
  5. OSS の生態 共生 - 実例 ② youki-dev/oci-spec-rs from youki-dev/youki#162 コンテナの仕様で定められている

    JSON をパースするライブラリ oci-spec-rs を作る前にも似たようなライブラリはあった 結果的に... ◦ youki で使⽤しているため新仕様が即時に反映 ◦ コンテナの仕様のメンテナがメンテしている ◦ Rust界隈でのデファクトになった ◦ Runtimeだけではなく、youki では使わない Image / Distribution もサ ポート 15
  6. OSS の生態 OSS🪸の具体的なメンテナンス ⾃⼰成⻑と継承 ◦ Issue のトリアージ / PRのレビュー 共⽣

    ◦ ライブラリのアップデート、フィードバック 外部環境 ◦ 外部への貢献 ◦ 外部からの提案についての判断、コミュニケーション 18
  7. 新規コントリビュータ 環境作り / 対外発表 📢 “継続的な” 発信は不可⽋ → 将来のコントリビュータへの認知 e.g.,

    youki 🌐Reddit / Hacker News / This Week in Rust 📝Blogs ▪ 2021年に今更コンテナ⼊⾨した僕の最初の⼀歩, 2021 ▪ Hello, youki!, 2021 ▪ Announcing Youki 0.0.4, 2022 🗣Talks ▪ 「あれ、コンテナって何だっけ?」から⽣まれた Rust で書かれた コンテナランタ イム youkiの話 @ ODC2021 ▪ Rust 🤝 Container Runtime @ Rust.Tokyo 2021 ▪ 詳説 OCIコンテナランタイム youki @ 第15回 コンテナ技術の情報交換会 ▪ Possibility of OCI Container Runtime with Rust @ KubeDay Japan 2022 22
  8. 新規コントリビュータ 余談: バズる とはいえ、⼩⼿先のテクニックはある Tech1 他の OSS を参考に README.md をちゃんとかく

    Tech2 X / Reddit / HN → GitHub Trends Tech3 すぐに動かせる環境を⽤意 README.md を⽤意するだけでは重い腰は上がらない Tech4 バズったら震源地を把握 GitHub の Traffic ページを⾒る 23 23 💡バズると効率は良いが、結局は準備と中⾝と継続が⼤事。 準備と中⾝が良いとだいたい誰かが⾒つけてくれる。
  9. 初めての貢献者が取り組みやすいと “メンテナが思っている” issue GitHub ではよくラベルがついている 新規コントリビュータ 環境作り / good first

    issue 取り組みやすい good first issue ✓ お⼿本がある ✓ 環境構築、ユニットテストが容易 ✓ コンフリクトが起きにくい ✓ ⼤きなデザインの決定をする余地がない 25 good first issue
  10. 新規コントリビュータ 新規コントリビュータの環境作り / 後押し メンテナが後押しをしよう! = メンテナに頼ろう ✓ 具体的な Issue

    を提供、割り当てる ✓ なぜやるのか?コンテキストを伝える ✓ ⽇本語でのサポート 27 💡メンテナはあなたを向いていることを強く伝える OSSは素晴らしい! ”機会があれば” コントリビューションをしたい よくあるパターン
  11. 新規コントリビュータ コントリビュータの成熟 32 小さなバグ修正 ドキュメントの更新 利用者 メンテナ 大きな機能実装 🧱 勇気の壁

    🧱 🧱 知識‧経験の壁 🧱 🧱 ⽣活の壁 🧱 ここでの離脱率が高い(体感) そしてここで抜けられるとつらい😿
  12. 新規コントリビュータ コントリビュータの成熟 33 小さなバグ修正 ドキュメントの更新 利用者 メンテナ 大きな機能実装 🧱 勇気の壁

    🧱 🧱 知識‧経験の壁 🧱 🧱 ⽣活の壁 🧱 👀 やりきってもらえるかな 👀 どのくらい急ぎのをお任せしてもいいかな 👀 今までどのくらい OSS に関わってきたかな
  13. 新規コントリビュータ コントリビュータの成熟 34 小さなバグ修正 ドキュメントの更新 利用者 メンテナ 大きな機能実装 🧱 勇気の壁

    🧱 🧱 知識‧経験の壁 🧱 🧱 ⽣活の壁 🧱 OSS のリーダー陣 やることは? 報われるのか?
  14. OSS のリーダーシップ メンテナの影響力 メンテナの振舞は OSS の⾊としてなんとなくあらわれる ◦ どこにでも🎨⽂化はある ◦ レビューのコメントなどが時と共に成熟し⽂化となる

    youki のケース ◦ issue を⽴てた⼈にチャレンジを促す ◦ 新しいことにチャレンジする / 古いものはサポートしない 36 I have fun implementing this. In fact, this may be the most important.
  15. OSS のリーダーシップ メンテナの役割 37 辛い決断も e.g., io_uring 活用にチャレンジする野心的なプロジェクトがあり 実装までして動かしたが、思ったパフォーマンスがでなくて断念 🎨

    設計の最終決定 ✓ ガバナンス, セキュリティ, ドキュメント etc ✓ OSS が 呼吸 をできるようにする 🧹OSS で必要で誰もやってくれないことを拾う
  16. OSS のリーダーシップ メンテナの役割 38 辛い決断も😿 e.g., io_uring 活用にチャレンジする野心的なプロジェクトがあり 実装までして動かしたが、思ったパフォーマンスがでなくて断念 🎨

    設計の最終決定 ✓ ガバナンス, セキュリティ, ドキュメント etc ✓ OSS が 呼吸 をできるようにする 🧹OSS で必要で誰もやってくれないことを拾う
  17. OSS のリーダーシップ メンテナの役割 39 辛い決断も😿 e.g., io_uring 活用にチャレンジする野心的なプロジェクトがあり 実装までして動かしたが、思ったパフォーマンスがでなくて断念 🎨

    設計の最終決定 ✓ ガバナンス, セキュリティ, ドキュメント etc ✓ OSS が 呼吸 をできるようにする 🧹OSS で必要で誰もやってくれないことを拾う 📈コード以外にOSS に求められるものは増加の⼀途
  18. OSS のリーダーシップ OSS がメンテナに与えれるもの メンテナで得たマネジメントスキルは他でも役⽴つ ✓ 他の OSS の雰囲気を読み取る ✓

    どういう issue を作ると受け⼊れてもらいやすいか youki でのやり⽅「メンテナのキャリアに貢献する」 転職時の⼀定は信頼できる評価となる org の遷移: 個⼈ → containers → CNCF Project 40 󰤇 やりがいベースに全てを頼る
  19. まとめ OSS の⽣態 🪸 ✓ ⾃⼰成⻑と継承 ✓ 共⽣ ✓ 外部環境

    新規コントリビュータ ⛰ ✓ 対外発表 ✓ Good First Issue ✓ 後押し OSS のリーダーシップ 42 小さなバグ修正 ドキュメントの更新 利用者 メンテナ 大きな機能実装 💡ある程度の規模の OSS の趣味メンテナが考えている一例