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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for うたもく うたもく
January 23, 2025

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

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

Avatar for うたもく

うたもく

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 の趣味メンテナが考えている一例