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

20250612_GitHubを使いこなすためにソニーの開発現場が取り組んでいるプラクティス.pdf

 20250612_GitHubを使いこなすためにソニーの開発現場が取り組んでいるプラクティス.pdf

イベントの資料です。

- イベント概要 https://sony.connpass.com/event/356950/
- 動画 https://www.youtube.com/watch?v=-e4SHgRSgh0

Avatar for Yasuhiro Osaki

Yasuhiro Osaki

June 12, 2025
Tweet

Other Decks in Technology

Transcript

  1. Copyright 2025 Sony Corporation 3 自己紹介 大崎 泰寛 (おおさき やすひろ)

    ソニー株式会社/技術センター 2010年入社後、サウンド商品開発とソフトウェア 開発基盤の構築に従事。 最近は社内に「GitHub管理者クラブ」を発足して、 GitHub (Copilot) の全社的な利用促進を牽引。
  2. Copyright 2025 Sony Corporation 5 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  3. Copyright 2025 Sony Corporation 6 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  4. Copyright 2025 Sony Corporation 9 GitHub Enterprise Cloud の利用規模 組織(org)総数

    100+ リポジトリ総数 10,000+ ユーザー数 5,000+ 内 Copilot ユーザー数 1,600+
  5. Copyright 2025 Sony Corporation 10 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  6. Copyright 2025 Sony Corporation 11 ケーススタディ:GitHub 管理者のジレンマ あなたは以下の組織に GitHub を導入する役割だったとします。

    どんな管理ポリシーで GitHub を導入するのがよいでしょうか? • 20代から50代の開発者が100名近く在籍する開発組織 • 組込みソフト開発からクラウド・ウェブ開発など案件がバラバラ • C/C++ から TypeScript まで言語も幅広い • GitHub での開発経験にも個人差がある
  7. Copyright 2025 Sony Corporation 12 ケーススタディ:GitHub 管理者のジレンマ 単一 org で

    admin なし (中央集権型) • シンプルで責務分担が明確 • Owner に設定依頼が集中する • 開発者はもっと自由にやりたい 単一 org で admin あり (ハイブリッド型) • リポジトリごとの自由度が増す • admin に管理能力が求められる • 管理のコミュニケーションが増える 複数 org (分散管理型) • org ごとの自由度が増す • 複数 Owner に管理能力が求められる • org ごとに情報がサイロ化してしまう
  8. Copyright 2025 Sony Corporation 13 • 正解はありません どのメリットが組織にふさわしいかで選びましょう • GitHub

    での開発経験の浅い組織はまずは 「中央集権型」 から ケーススタディ:GitHub 管理者のジレンマ
  9. Copyright 2025 Sony Corporation 15 GitHub の管理者がやっていることの例 設定変更を受け付ける 変更履歴の経緯を記録する 意図しない設定を元に戻す

    • 結局はソフトウェア開発と一緒 • 設定もコード化して構成管理すれば管理がラクになる
  10. Copyright 2025 Sony Corporation 16 GitHub 設定のコード化 • terraform-provider-github •

    GitHub の各種設定をコードで管理するための Terraform プロバイダ • GitHub が公式サポートしている OSS ではない • GitHub のほぼすべての設定を Terraform でコード化できる 1 回目) 新規リポジトリが作成される 2 回目) 差分がなければ何もされない
  11. Copyright 2025 Sony Corporation 17 GitHub 組織の設定のコード化 • 組織・メンバー・リポジトリなどのあらゆる設定を Terraform

    でコード管理 • 利用者は Pull-Request で変更依頼をする • 管理者はレビュー後に GitHub Actions で設定を更新する チェックジョブが失敗! 修正後チェックジョブが成功 GitHub Actions を実行し 各種設定をアップデートする
  12. Copyright 2025 Sony Corporation 20 $ terraform state list 508

    github_team_membership 90 github_team_repository 75 github_repository 75 github_branch_default 75 github_branch 60 github_organization_ruleset 24 github_repository_environment 18 github_team 10 github_actions_organization_secret … 合計 1,000 以上 ... ! • リポジトリ数 75 • チーム数 18 • ユーザー数 133 誰がどのチームに所属するかの組み合わせ リポジトリのアクセス権(チーム別) リポジトリの基本設定 リポジトリのデフォルトブランチ リポジトリのブランチ org のルールセット リポジトリの Environment 設定 チームの設定 アクションで利用する org のシークレット 膨大な設定を Infrastructure as Code することで自信をもって管理できる 例: 組織の設定をすべて Terraform 化したらどうなったか?
  13. Copyright 2025 Sony Corporation 21 GitHub 組織管理のコード化、実際うまくいっているか? どのくらい変更依頼が来るか? • 2年間で30名から500回を超える変更申請

    • Wiki や GitHub Copilot で申請をサポート 誰のトークンでワークフローを実行するか? • 管理者級の強力な GitHub Apps を作成 • シークレットを Environments に格納して 利用時は管理者の実行承認を得る
  14. Copyright 2025 Sony Corporation 22 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  15. Copyright 2025 Sony Corporation 23 GitHub Actions の活用 • 継続的なインテグレーション

    • ビルド・テスト・静的解析 • 継続的なデプロイ • AWS・GitHub・Datadog など • その他の自動化 • Self Hosted Runner で社内ネットワークにあるリソースを扱う
  16. Copyright 2025 Sony Corporation 24 GitHub Actions の活用(アクションの再利用) (1) 再利用性の高いアクションを組織内公開

    • DRY 原則で同じコードをあちこちに書かない (2) マーケットプレイスに公開されたアクションの利用 • GitHub 製アクション • Verified Creator 製アクション • 3rdパーティ製アクションは原則NG
  17. Copyright 2025 Sony Corporation 25 GitHub Actions の活用(Environments でデプロイ承認) (1)

    Environments で実行承認を得る - ワークフローの実行の承認制 - 対象ブランチの制限可 - シークレットの格納可 (2) OIDC プロバイダを使って認証をする (3) 一時的なアクセストークンを受け取る aws-actions/configure-aws-credentials (4) 対象のAWSリソースを更新する (1)実行承認 (2)認証 (3)トークン発行 (4)デプロイ (2)認証 (3)トークン発行 重要 本番環境の Route53 にレコードを追加する例
  18. Copyright 2025 Sony Corporation 26 GitHub Actions 管理のポイント 3rdパーティ製アクションの原則禁止 強い権限を持つランナーをグループ化

    して特定リポジトリにアクセス制御 複雑な設定こそ Infrastructure as Code 化することで自信をもって管理できる シークレットをコードで管理 例外的に利用許可する アクションとハッシュの管理 ランナーグループと特定リポジトリ の組み合わせの管理 GitHubの各種公開鍵でシーク レットを暗号化してコードで管理
  19. Copyright 2025 Sony Corporation 27 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  20. Copyright 2025 Sony Corporation 28 GitHub Codespaces の活用 VS Code

    の設定の同期 (例: settings.json) ドットファイルの同期 (例: .gitconfig) パッケージ管理 (例: terraform をインストールする) https://containers.dev/features devcontainer.json 日頃から使い慣れた開発環境を Codespaces 上に構築して ”使い捨てる” 開発者体験
  21. Copyright 2025 Sony Corporation 29 GitHub Codespaces 管理のポイント Prebuildを作ってCodespacesの高速起動 無駄遣いとインシデントを防ぐ組織レベルのポリシー設定

    同時に作れる数 ポートの可視性制限 停止から自動削除までの期間 (デフォルト30日は長すぎる) 自動停止までの期間 マシン種別
  22. Copyright 2025 Sony Corporation 30 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  23. Copyright 2025 Sony Corporation 32 GitHub Copilot の活用 GA リリースされた

    Copilot 機能を活用 • コードの補完 • コードの説明 • テストコードの生成 • チャット (Ask/Edits/Agent) • ワークフローのエラー解決支援 • コードレビュー • カスタムインストラクション • ナレッジベース
  24. Copyright 2025 Sony Corporation 34 GitHub Copilot 社内利用者急拡大の舞台裏 GitHub 管理者

    “有志の会” の発足 GitHub Copilot 社内トレーニング開催 社内申請プロセスの簡略化
  25. Copyright 2025 Sony Corporation 35 GitHub Copilot 管理のポイント • 業務利用は

    Business または Enterprise プラン • ポリシー制御を徹底するため(Free プランは禁止) • プレビュー機能の業務利用禁止 • プレビュー機能は GitHub プレリリース ライセンス条項 が適用されるため • パブリックコードの提案をブロック • ライセンス侵害のリスクを下げるため • GitHub Copilot の利用を申請制 • Copilot 利用者用 team で作って適用
  26. Copyright 2025 Sony Corporation 36 アジェンダ 1. 組織紹介 2. GitHub

    組織管理について 3. GitHub Actions について 4. GitHub Codespaces について 5. GitHub Copilot について 6. まとめ
  27. Copyright 2025 Sony Corporation 37 まとめ • GitHub の組織の管理はそもそも難しい •

    開発者の利便性とセキュリティを重視した管理とのトレードオフが発生する • 情報がサイロ化しないようにある程度大きな組織を構成するのがよい • GitHub の組織の管理をコード化してみよう • コード化して設定依頼を Pull-Request で受けて履歴を残す • コード化することで組織がスケールしても管理者の負担はあまり増えない • GitHub の各種サービスを開発現場で活用している • GitHub Copilot は社内利用者が急拡大している • プレビュー機能やプレミアムリクエストのコントロールが課題