サイバーエージェントにおけるインナーソーシングの取り組み
by
CyberAgent
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
小塚健太 - Developer Productivity室 室長 前田 拓 - ABEMA Live/CyberFight/FANBASE ARENA 技術責任者 (各兼務) InnerSourcing Gathering Tokyo 2024 サイバーエージェントにおける インナーソーシングの取り組み
Slide 2
Slide 2 text
1.インナーソースの推進と Dグレード制度 2.PipeCDでのインナーソースとオープンソース 3.FanTech事業とPipeCD Terraform Provider開発 4.事業プロダクトでのインナーソース活動 5.今後のインナーソース推進に向けて
Slide 3
Slide 3 text
小塚 健太 Developer Productivity室 室長 Engineer at CyberAgent #PipeCD #Bucketeer ✈🎾🏃⛰ X: @kenta_kozuka GitHub: @kentakozuka
Slide 4
Slide 4 text
インナーソースの推進と Dグレード制度
Slide 5
Slide 5 text
CAの抱えていた課題 元々グループ内では、社内共通基盤や個人による OSS活動も活発だったこともあり多くの技 術資産が存在 しかし、 1. 技術資産が十分に流動しておらず、全体での生産性向上に活かしきれていない 2. 車輪の再発明 3. 技術資産を支援していく枠組みが不十分だったため、継続性に乏しかった → 作りっぱなしで、利用者が増えず、ゆっくり廃れていく
Slide 6
Slide 6 text
Dグレード •グループ内の技術資産を中長期で支援し、開発生産性を高めるための制度 •D = Developer, DevTool •2021年に発案、制度化 •継続的に改善を重ね、現在は Ver.4 •個人・チームの申請制 2020年5月 GitHub Enterpriseへの契約一本化によって Internalリポジトリが利用可能になっていた
Slide 7
Slide 7 text
Dグレードの目的 ① 中長期での技術資産開発、 OSS育成 ② 全社レベルでの技術資産の流動と有効活用 ③ 情報共有促進・車輪の再発明の抑制 ④ 技術力を使った組織貢献の活性化 技術資産をこれまで以上に流動・活性化させ、 全社でのシナジー発揮を目指す
Slide 8
Slide 8 text
Dグレード対象となる技術資産 1. 事業プロダクトの開発や運用を効率化する技術資産である 2. CAグループ社員がオーナーである技術資産に限定 3. 社内に導入実績があること 4. 利用者向けドキュメントが整備されている
Slide 9
Slide 9 text
Dグレード対象技術資産の凡例① 開発・運用支援系 SaaS ● IaaS ○ プライベートクラウド開発と運営 ○ 独自Kubernetesエンジン(XKE, XKS) ● ライブラリ ○ アプリケーションに組み込めることができるもの ○ アプリケーション開発フレームワーク ○ SaaSのクライアント SDK ○ ゲームエンジン ● ソフトウェアデザイン ○ 体系化、明文化されたアーキテクチャパターン ○ 体系化、明文化された方法論
Slide 10
Slide 10 text
Dグレード評価指標 グループ内 導入数 GitHub Star数 メンテナンス 状況 導入・運用 期間 OR これらを元に 1年に1回、D1〜D5の5段階のグレードを決定する
Slide 11
Slide 11 text
Dグレードサポートプログラム 価値のある技術資産を功労したり、中長期での継続的な開発をサポートするためにグレー ドに応じたサポートプログラムを用意 • 技術広報のサポート • パブリッククラウドや開発ツール利用料負担 • 懇親会・カンファレンス参加費用負担 など
Slide 12
Slide 12 text
数値で見るDグレード
Slide 13
Slide 13 text
PipeCDでのインナーソースとオー プンソース
Slide 14
Slide 14 text
PipeCD • DP室が中心となって開発している CD基盤 • GitOpsのプラクティス • アプリケーションの可視化 • デプロイの自動化 • Enterpriseを想定したセキュリティ • マルチプロバイダー & マルチテナント
Slide 15
Slide 15 text
解決したかった課題 • CIとCDが密結合 • 一元化されたプラットフォームが存在 しない • 各チームは、独自のCDシステムを選 択し、維持する全責任を負わなけれ ばならない • チーム異動の際のオンボーディング コストが高い • マルチクラウド環境で使いにくい • CIとCDの分離 • プラットフォームに依存しない一貫し たDevEx • 各チームの運用は最小限に抑える • 高いセキュリティ • 迅速かつ有用なフィードバックを提供 する
Slide 16
Slide 16 text
〜2023年まで 2019-2020年頭ぐらい 構想〜調査 2020年5月 提案〜開発スタート 2020年10月 リポジトリを公開 2021年11月 社内Saas提供開始 2023年5月 CNCF Sandboxに参加 Dグレードには初年度から参加
Slide 17
Slide 17 text
社内基盤への投資と利益の考え方 1. ソリューションにより減る不必要な仕事 2. 浮いた時間を再投資した場合に、得られうる売 3. ソリューションがプロダクトにもたらす付加価値 CA独自のカルチャー • 様々なドメインへの事業展開 • 最適な技術スタックを自由に選択する裁量 → 統一した基盤を導入することは難易度が高い 持続可能な社内基盤を目指す 過去の反省を活かす 社内基盤が直面する困難さ • 希薄な中長期ビジョン • 市場での競争力に晒される • 役員への説明責任と継続性(お金と人材)
Slide 18
Slide 18 text
OSSのライフサイクルを確立し、開発資源を最大化する 成果 事例創出 コミュニティ 活性化 市場 拡大化 ■OSS公開 ■ベストプラクティスの啓蒙 ■カンファレンス発表 ■CNCF等参加での知名度・信頼性獲得 ■社外の利用・事例が増える ■個人or企業コントリビューター獲得 ■採用チャンス増 ■社外コンサル活動 ■要望サポート ■プロダクトグロース
Slide 19
Slide 19 text
社内基盤のライフサイクルもほぼ同じ 社内成果 事例創出 コミュニティ 活性化 市場 拡大化 ■社内公開 ■社内勉強会への登壇 ■Dグレードでの社内広報 ■社外・社内の利用・事例が増える ■部署外コントリビューター獲得 ■異動チャンス増 ■社内要望サポート ■社内SaaSの提供 ■プロダクトグロース ■社内Enablingチーム活動
Slide 20
Slide 20 text
現在 GitHub リポジトリ ● ~4k commits ● 90+ contributors (~30名が社内の別部署のcontributor) ● 1k+ stars 社内SaaS ● 20以上のプロジェクト ● 3,700+のアプリケーション ● 1日3,000回以上のデプロイ
Slide 21
Slide 21 text
FanTech事業と PipeCD Terraform Provider開発
Slide 22
Slide 22 text
•株式会社サイバーエージェント 2020年度新卒入社 CyberFight、FANBASE ARENA、ABEMA Live技術責任者 FanTech領域で新卒エンジニアの育成責任者 •趣味 配信機材集め カメラ📸 GitHub: @arabian9ts 前田 拓
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
エンタメテックとFanTech事業 •エンタメテック サイバーエージェント注力領域の1つ 音楽ライブやスポーツ・格闘技などを中心に、海外進出を後押しするプロダクトを多数提供 デジタルプラットフォームでの配信、PPVによる収益化支援など •FanTech事業 エンタメテック領域の1つで、ファンビジネスを中心に多数のプロダクトを展開 映像配信や多言語対応しているファンコミュニティサービスを多数展開 ファンとアーティストの双方向性を重要視
Slide 25
Slide 25 text
FanTech事業 •WRESTLE UNIVERSE サブスク制・PPVプロレス動画配信サービス 海外ユーザーに向けて、UIやコンテンツ、実況音声を多 言語化 •FANBASE ARENA 独自にカスタマイズされたファンコミュニティ・ファンクラ ブサービスを構築 エンタメテックでもバックエンド基盤として利用 WRESTLE UNIVERSEもFANBASE ARENAで構築 ※FanTech事業の一部のみを記載しています
Slide 26
Slide 26 text
•WRESTLE UNIVERSE プロレスをサブスク・PPVで国内外に配信(ライブ・オンデマンド) •ABEMA Live 海外向けABEMA PPV配信プラットフォーム •AG! SEISHUN CLUB 海外向けのファンコミュニティサービス ファンとアーティスト、ファン同士のコミュニケーションを主体としたコミュニティ 共通基盤のプロダクト事例 ※記載以外にも多数のプロダクトを展開しています
Slide 27
Slide 27 text
FanTech事業の特徴 •海外展開の強化 多言語化や決済のローカライズ対応、マルチリージョン展開を前提としたアーキテクチャ •多岐にわたるコンテンツ 複数のドメインに対して迅速に高品質なサービスを展開 多くのプロダクトを抱えることになり、事業ニーズに応じて迅速な立ち上げ •コードベースの共通化 バックエンドと管理画面のコードベースを共通化
Slide 28
Slide 28 text
FanTech事業でのPipeCDの活用 •メインブランチを正とする全環境の同期 デプロイマニフェストをバックエンドリポジトリ内で集約管理 メインブランチのマニフェストを正とし、dev/prodに同時にSync(dev/prod同時デプロイ) •プロダクト数の増加に対しての Pull型デプロイ マルチリージョン×分割されたアプリケーション×プロダクト数のデプロイを管理 メインブランチの変更をPipeCDが検知しデプロイ → プロダクト数が増えても、メインブランチのマニフェストを最新に保てば良い
Slide 29
Slide 29 text
FanTech事業が抱えていた課題 •手動でのデプロイ管理 プロダクトや展開リージョンの増加に合わせて、PipeCDの設定追加を手動で行う必要があった 同じアプリケーション設定を何度も追加 /削除することが多いので、 IaC管理したかった モジュラーモノリスで160近いアプリケーションのデプロイを管理している
Slide 30
Slide 30 text
社内での課題感の共有 1.社内サポートへの問い合わせ CDをIaC管理したいのはニッチかと思いつつ、社 内サポート用チャンネルに問い合わせ すぐに対応は難しい様子
Slide 31
Slide 31 text
社内での課題感の共有 1.社内サポートへの問い合わせ CDをIaC管理したいのはニッチかと思いつつ、社 内サポート用チャンネルに問い合わせ すぐに対応は難しい様子 2.timesで呼びかけてみた 黒崎が開発に参加 🎉 関心を持つエンジニア数名がジョイン
Slide 32
Slide 32 text
社内での課題感の共有 1時間半で共同プロジェクトが始動 🚀
Slide 33
Slide 33 text
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室と連携 数日でほとんどの実装が完了しました 🚀
Slide 34
Slide 34 text
プロジェクトの振り返り •組織規模に対する “発見可能性 ” 知らないだけ、同じ課題や関心を持っているエンジニアは一定数いる 社内で相互に認知できる場が有効(今回は、サポートチャンネルや黒崎がtimesにいたこと) •整っていた条件 推進者である前田、黒崎が所属組織の技術責任者レイヤーであり、合意形成が容易だった 開発メンバーがOSS開発フローを心得ていた 資産はCNCFプロジェクトであるPipeCDに寄贈することが明確だった •サイバーエージェントの文化的側面 技術的なチャレンジ精神を持ったエンジニアが多く、プロジェクト化のフットワークが軽い
Slide 35
Slide 35 text
•インナーソースにおけるコミュニティ形成 PipeCDの一部なので、PipeCDで形成されているコミュニティ内で一緒に運用していく 社内ニーズに応じて、機能開発はインナーソーシング予定 •Developer Productivity室との連携 社内SaaSとしてのサポートにマージ 技術課題にフィットするプロダクトへの導入支援 Terraform Provider PipeCDの運用
Slide 36
Slide 36 text
•プロダクトでの運用を経て PipeCD、Terraform Provider PipeCDはDグレード制度を利用 社内広報や開発費用支援を受ける予定 インナーソースで重要な “発見可能性” を高める制度として利用 Dグレードの利用
Slide 37
Slide 37 text
事業プロダクトでの インナーソース活動
Slide 38
Slide 38 text
FanTech事業の特徴 •海外展開の強化 多言語化や決済のローカライズ対応、マルチリージョン展開を前提としたアーキテクチャ •多岐にわたるコンテンツ 複数のドメインに対して迅速に高品質なサービスを展開 多くのプロダクトを抱えることになり、事業ニーズに応じて迅速な立ち上げ •コードベースの共通化 バックエンドと管理画面のコードベースを共通化
Slide 39
Slide 39 text
コードベースの共通化 •1リポジトリ運用 1リポジトリで複数のプロダクトを同時開発・ 同時運用 •機能の汎用性・拡張性 プロダクトごとの条件分岐を設けず、汎用性 や拡張性を重要視した設計を実施 •リポジトリの再利用性 それぞれ目標の異なる複数事業で再利用が できている → インナーソーシング 不採用 採用
Slide 40
Slide 40 text
バックエンドのデプロイフロー
Slide 41
Slide 41 text
•事業横断チームが複数事業に均等にコミット 情報流通量が多過ぎることで、認知負荷の上昇につながっていた 2023年までの体制
Slide 42
Slide 42 text
組織の成り立ち •高速なプロダクトの立ち上げ要求 周年イベントなど期日が決まった立ち上げが発生しやすい FANBASE ARENAでは、都度チームを組織するのではなく、1チームで複数プロダクトを運用できる仕組み 化を行ってきた •海外へのチャレンジ WRESTLE UNIVERSEで海外へのサービス展開を行っていた ABEMAでも海外展開を始めるにあたり、初期は高速な立ち上げが可能なチームで担当
Slide 43
Slide 43 text
•各事業の主担当を決定 結果として、インナーソーシングとしての共通資産投資へと変化 ※ABEMAは2025年からインナーソースプロジェクトへジョイン 2024年以降の体制
Slide 44
Slide 44 text
インナーソースを通じた共通資産へ •2025年以降の体制 横断する事業が増えても、事業貢献を損なわない組織体制へ 集約的な組織構造から、分散的な組織へ変化 OSSのプラクティスを実践できる情報の “発見可能性” を強化
Slide 45
Slide 45 text
今後のインナーソース推進に 向けて
Slide 46
Slide 46 text
実践者視点でのインナーソーシング •サイバーエージェントでのインナーソーシングの難しさ プロダクトごとに技術選定が大きく異なる 技術スタックの共通化が前提となるような、アプリケーションレベルの開発では難しい •取り組みやすい領域 OSSの社内用プラグインなど、専任チームが不要な粒度の開発 技術の多様化の影響が少ないスコープで、開発体験を上げるツール(Terraform Provider PipeCD) 事業をまたいで、横断的にプロダクトを開発 •ハードルを下げつつコラボレーションを促進する制度設計 1人または少数の開発者が気軽に始められるようにハードルを下げる一方、技術資産を有効活用し、コラ ボレーションによって継続的な価値を作っていくための制度設計が大切
Slide 47
Slide 47 text
ありがとうございました