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

サイバーエージェントにおけるインナーソーシングの取り組み

 サイバーエージェントにおけるインナーソーシングの取り組み

CyberAgent

August 13, 2024
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

  1. 小塚健太 - Developer Productivity室 室長 前田 拓 - ABEMA Live/CyberFight/FANBASE

    ARENA 技術責任者 (各兼務) InnerSourcing Gathering Tokyo 2024 サイバーエージェントにおける インナーソーシングの取り組み
  2. Dグレード対象技術資産の凡例① 開発・運用支援系 SaaS • IaaS ◦ プライベートクラウド開発と運営 ◦ 独自Kubernetesエンジン(XKE, XKS)

    • ライブラリ ◦ アプリケーションに組み込めることができるもの ◦ アプリケーション開発フレームワーク ◦ SaaSのクライアント SDK ◦ ゲームエンジン • ソフトウェアデザイン ◦ 体系化、明文化されたアーキテクチャパターン ◦ 体系化、明文化された方法論
  3. Dグレード評価指標 グループ内 導入数 GitHub Star数 メンテナンス 状況 導入・運用 期間 OR

    これらを元に 1年に1回、D1〜D5の5段階のグレードを決定する
  4. 解決したかった課題 • CIとCDが密結合 • 一元化されたプラットフォームが存在 しない • 各チームは、独自のCDシステムを選 択し、維持する全責任を負わなけれ ばならない

    • チーム異動の際のオンボーディング コストが高い • マルチクラウド環境で使いにくい • CIとCDの分離 • プラットフォームに依存しない一貫し たDevEx • 各チームの運用は最小限に抑える • 高いセキュリティ • 迅速かつ有用なフィードバックを提供 する
  5. 社内基盤への投資と利益の考え方 1. ソリューションにより減る不必要な仕事 2. 浮いた時間を再投資した場合に、得られうる売 3. ソリューションがプロダクトにもたらす付加価値 CA独自のカルチャー • 様々なドメインへの事業展開

    • 最適な技術スタックを自由に選択する裁量 → 統一した基盤を導入することは難易度が高い 持続可能な社内基盤を目指す 過去の反省を活かす 社内基盤が直面する困難さ • 希薄な中長期ビジョン • 市場での競争力に晒される • 役員への説明責任と継続性(お金と人材)
  6. OSSのライフサイクルを確立し、開発資源を最大化する 成果 事例創出 コミュニティ 活性化 市場 拡大化 ▪OSS公開 ▪ベストプラクティスの啓蒙 ▪カンファレンス発表

    ▪CNCF等参加での知名度・信頼性獲得 ▪社外の利用・事例が増える ▪個人or企業コントリビューター獲得 ▪採用チャンス増 ▪社外コンサル活動 ▪要望サポート ▪プロダクトグロース
  7. 社内基盤のライフサイクルもほぼ同じ 社内成果 事例創出 コミュニティ 活性化 市場 拡大化 ▪社内公開 ▪社内勉強会への登壇 ▪Dグレードでの社内広報

    ▪社外・社内の利用・事例が増える ▪部署外コントリビューター獲得 ▪異動チャンス増 ▪社内要望サポート ▪社内SaaSの提供 ▪プロダクトグロース ▪社内Enablingチーム活動
  8. 現在 GitHub リポジトリ • ~4k commits • 90+ contributors (~30名が社内の別部署のcontributor)

    • 1k+ stars 社内SaaS • 20以上のプロジェクト • 3,700+のアプリケーション • 1日3,000回以上のデプロイ
  9. •WRESTLE UNIVERSE プロレスをサブスク・PPVで国内外に配信(ライブ・オンデマンド) •ABEMA Live 海外向けABEMA PPV配信プラットフォーム •AG! SEISHUN CLUB

    海外向けのファンコミュニティサービス ファンとアーティスト、ファン同士のコミュニケーションを主体としたコミュニティ 共通基盤のプロダクト事例 ※記載以外にも多数のプロダクトを展開しています
  10. Terraform Provider PipeCDの開発 •開発内容 Terraform Providerの開発と、必要なPipeCDのAPI開発を同時に進行 インナーソースプロジェクトを実践する中で、OSSであるPipeCDにもコントリビュート Add EnableApplication rpc

    for grpc api service #4274 Add RegisterPiped api for grpcapi #4314 Add GetPiped grpc api #4316 Add UpdatePiped grpc api #4318 •公開に向けて PipeCDへのリポジトリTransferや、PipeCDのDocsへの追記、Community MeetingでのデモをDeveloper Productivity室と連携 数日でほとんどの実装が完了しました 🚀