130 Views
December 04, 24
スライド概要
Cloud Native Week 2024 Fall
Microsoft MVP for Microsoft Azure
Cloud Native Week 2024 Fall バンダイナムコスタジオでのクラウドネイティブゲーム開発環境の構築取り組み事例紹介 株式会社バンダイナムコスタジオ 八重樫 剛史 Takeshi Yaegashi 2024/12/04
自己紹介 • 八重樫 剛史 Takeshi Yaegashi • 株式会社バンダイナムコスタジオ (BNS) 技術スタジオ 第3グループ オンラインテクノロジー部 サーバソリューションユニット DXセクション テクニカルディレクター • 社内開発者向けのクラウドサービス導入推進 プラットフォームエンジニアリングのプロジェクトに従事 • Microsoft MVP for Microsoft Azure (2023, 2024) https://mvp.microsoft.com/ja-jp/PublicProfile/5005134 2
DXセクションが注力するクラウドネイティブな取り組みのキーワード • プラットフォームエンジニアリング • 定義: ソフトウェア開発の基盤となる社内開発者プラットフォームの設計、構築、運用を行う技術領域 • 目的: 開発者がセルフサービスで効率的に作業できる環境を提供し、ソフトウェアの品質と生産性、開発者体験 (DevEx)を向上させる • 社内開発者プラットフォーム • 定義: 開発者がアプリやサービスを構築・テスト・運用するためのツールやサービスの集合体 • 目的: 開発のプロセスを簡素化し、開発環境の迅速な立ち上げと開発・テストのサイクル短縮を可能にする • クラウド開発環境 • 定義: 開発者がリモートアクセスで利用可能なクラウドホスト型の開発環境 • 目的: 開発者のオンボーディング時間を短縮し、どこからでも効率的に開発作業を行えるようにする • インナーソース • 定義: 企業内のソフトウェア開発でオープンソースの開発手法・カルチャー・ベストプラクティスを実践する • 目的: 企業内のサイロを壊し、開発者のコラボレーションを加速して、車輪の再発明を防ぐ 3
ガートナー ソフトウェア・エンジニアリングのハイプ・サイクル 2023年12月4日 [1] Gartner、「ソフトウェア・エンジニアリ ングのハイプ・サイクル:2023年」を発 表-AIに関するプラクティスやプラット フォーム・エンジニアリングは、2~5年 以内にソフトウェア・エンジニアリング における主流の採用に • プラットフォームエンジニアリング • 社内開発者ポータル • インナーソース • クラウド開発環境 すべてのキーワードがガートナーのハイ プ・サイクル [2] に捕捉されており、今後 ソフトウェア開発の主流になりうる技術と して注目されていることを示す [1] https://www.gartner.co.jp/ja/newsroom/press-releases/pr-20231204 [2] https://www.gartner.co.jp/ja/research/methodologies/gartner-hype-cycle 4
ガートナー ソフトウェア・エンジニアリングに関する戦略的テクノロジ・トレンド 2024年6月3日 [1] Gartner、2024年のソフトウェア・エンジニアリングに関する戦略 的テクノロジ・トレンドのトップ5を発表 • ソフトウェア・エンジニアリング・インテリジェンス • AI拡張型開発 • グリーン・ソフトウェア・エンジニアリング • プラットフォーム・エンジニアリング プラットフォーム・エンジニアリングは、社内の開発者ポータルや複数のプロダク ト・チームが利用できるプラットフォームを通じて基本機能を提供することで、開 発者の負荷を軽減します。このようなプラットフォームにより、ソフトウェア開発 を促進する「舗道」が提供されるため、開発者にとっては時間の節約につながり、 満足度が向上します。 2026年までに、大規模なソフトウェア・エンジニアリング組織の80%は、プラット フォーム・エンジニアリング・チームを立ち上げるとGartnerでは予測しています (2022年の45%から増加)。 • クラウド開発環境 クラウド開発環境は、設定の手間を最小限に抑えながら、リモート・アクセスです ぐに利用可能なクラウド・ホスト型の開発環境を提供します。開発ワークスペース を物理的なワークステーションから切り離すことで、負担の少ない一貫性のある開 発者エクスペリエンスが実現し、開発者のオンボーディングに要する時間が短縮さ れます。 赤字はDXセクションが注力する領域 [1] https://www.gartner.co.jp/ja/newsroom/press-releases/pr-20240603 5
マイクロソフト プラットフォームエンジニアリング ガイド プラットフォームエンジニアリングの原則と実践 Microsoft Azure 関連製品を紹介するドキュメント [1] • プラットフォームエンジニアリングの原則 [2] • 社内の開発者を顧客として考える • 開発者プラットフォームを開発者に売る商品として考える • ガードレール付きのセルフサービス機能を開発者に提供する • アセットを管理・追跡できるインベントリを導入する • プラットフォームエンジニアリングの問題領域 [3] • エンジニアリングシステム • アプリケーションプラットフォーム • アプリケーションテンプレート • セルフサービス基盤 赤字はDXセクションが特に注力する領域 [1] https://learn.microsoft.com/ja-jp/platform-engineering/ [2] https://learn.microsoft.com/ja-jp/platform-engineering/about/principles [3] https://learn.microsoft.com/ja-jp/platform-engineering/problem-space 6
インナーソースとは? • インナーソース (InnerSource) • オープンソースの開発手法・カルチャーを組織内のプロプライエタリなソフトウェア開発で実践する取り組み • 社内のサイロを壊し、コラボレーションを加速して、車輪の再発明を防ぐ • おすすめの講演資料:インナーソースで始める組織内オープンソース開発入門 [1] 1-2 InnerSource とは︖ 1-2 InnerSource で⽬指す姿 ● InnerSource は、企業内のソフトウェア開発にオープンソースの実践と ベストプラクティスと原則を適⽤したものです。 ● InnerSource ソフトウェアは、会社としてはプロプライエタリなものとなりますが、 内部にはオープンで、誰もが利⽤したり貢献したりできるようになります。 つまり ・・・ 今まで ⽬指す姿 サイロごとに閉じている 何をしているか⾃部⾨以外のことは知らない サイロを取り払い、コラボレーションが各所で発⽣︕ Open all artifacts! Welcome visitors! ・・・ を企業内で実践することです。 Dirk Riehle, Inner Source (Software Development), InnerSource Summit 2018 InnerSource Commons Japan [1] https://speakerdeck.com/yuhattor/innersource-learning-path-japanese https://www.youtube.com/watch?v=wL-SkKR1eZg [ 10 InnerSource Commons Japan 7 11
インナーソース推進団体とコミュニティ • InnerSource Commons [1] • 2015年に設立されたインナーソースを推進する非営利団体 • 750の組織から3000人が参加するグローバルなコミュニティを擁する • 2024/11/20-21 InnerSource Summit 2024 [2] → グローバルオンラインカンファレンス • InnerSource Commons Japan [3] • InnerSourceの価値基準を考える会 (全3回) → 日本企業でインナーソースの普及を図るための企画会議 • 2024/08/08 InnerSource Gatherning Tokyo 2024 [4] → 日本のインナーソース実践企業による事例紹介 → インナーソース推進ソング「共創未来インナーソースマン」 [1] https://innersourcecommons.org/ [2] https://innersourcecommons.org/ja/events/isc-2024/ [3] https://innersourcecommons.connpass.com/ [4] https://gatherings.innersourcecommons.org/tokyo-2024/ 8
インナーソースの解説と導入・推進ガイド • インナーソースで始める組織内オープンソース開発入門 [1] • インナーソースの解説、文化原則・メリット・役割・実践手法など • 参加者全員にまず読んでもらうのに最適な資料 • インナーソースパターンブック [2] • 様々な組織で実績のあるベストプラクティスのパターン集 • 後述する「インナーソースポータル」パターンが存在する • GitHubを使用してInnerSourceプログラムを管理する [3] • Microsoft Learn のモジュール • GitHubに特化した推奨設定、リポジトリ構成のわかりやすい解説 • Managing InnerSource Projects [4] (英語) • 共同開発プラットフォームのインフラ構築や効果測定について論じる [1] https://speakerdeck.com/yuhattor/innersource-learning-path-japanese https://www.youtube.com/watch?v=wL-SkKR1eZg [2] https://innersourcecommons.org/ja/learn/books/innersource-patterns/ [3] https://learn.microsoft.com/ja-jp/training/modules/manage-innersource-program-github/ [4] https://innersourcecommons.org/learn/books/managing-innersource-projects/ 9
DXセクションが推進するプラットフォームエンジニアリング + α • Bandai Namco DX Cloud Studios • DX = Digital Transformation (デジタル変革)、Devloper Experience (開発者体験) • コロナ禍をきっかけに始まった「クラウド上のゲーム開発スタジオ」を構築しようという取り組み • 開発者を顧客とする開発・テスト環境の提供にフォーカス • Bandai Namco EX Cloud Project • EX = Existing (既存)・Extended (拡張)・Expanded (発展) • バンダイナムコグループで眠っている既存のクラウドサービス・サブスクリプションを最大限に活用する取り組み • 社内外のシステム管理者やステークホルダーと協力して DX Cloud Studios を実現する基盤を構築する • インナーソースプラットフォームエンジニアリング • 従業員全員が参加可能なインナーソースのプラットフォームをクラウドネイティブに構築する取り組み 10
DXセクションが推進するプラットフォームエンジニアリング + α • Bandai Namco DX Cloud Studios • DX = Digital Transformation (デジタル変革)、Devloper Experience (開発者体験) • コロナ禍をきっかけに始まった「クラウド上のゲーム開発スタジオ」を構築しようという取り組み • 開発者を顧客とする開発・テスト環境の提供にフォーカス • Bandai Namco EX Cloud Project • EX = Existing (既存)・Extended (拡張)・Expanded (発展) • バンダイナムコグループで眠っている既存のクラウドサービス・サブスクリプションを最大限に活用する取り組み • 社内外のシステム管理者やステークホルダーと協力して DX Cloud Studios を実現する基盤を構築する • インナーソースプラットフォームエンジニアリング • 従業員全員が参加可能なインナーソースのプラットフォームをクラウドネイティブに構築する取り組み 11
Bandai Namco DX Cloud Studios 特徴 • ゲームアプリ開発のためのクラウド開発環境にフォーカス • クラウドPC: クライアントアプリの開発・テストが可能なスペックのWindows仮想デスクトップ • プロジェクトごとに自動ビルドやリポジトリのVMなどが運用可能な仮想ネットワーク空間 • Everything as Code (EaC) の推進 • クラウド開発環境の様々な側面をコード化し、管理自動化、オンボーディング期間短縮、再利用性向上をはかる • Infrastructure as Code (IaC): Terraform, Bicep, etc. • Configuration as Code: Dev Container, WinGet Configuration, etc. • Security as Code, Policy as Code: Azure Policy, etc. • Team as Code: Backstage Catalogs, etc. • セルフサービス基盤の構築 • 開発者がセルフサービスで自由に開発・テスト環境の作成や削除ができる • Async Job App: 自動化されたクラウド開発環境の管理タスクを実行できる汎用のWebアプリを提供 • Microsoft Dev Center: Dev Box や Deployment Environments の相互接続を提供 12
Bandai Namco DX Cloud Studios の構築に Microsoft Azure を選択する理由 • Microsoft 365 E3 サブスクリプション • バンダイナムコグループの従業員ほぼ全員が所有する • Microsoft Entra ID を IDaaS (ID as a Service) として活用できる • Microsoft の DaaS (Desktop as a Service) と Windows 11 Enterprise のライセンスがサブスクリプションに含まれる • 他社の DaaS では OS ライセンスだけで相当なコストとなる上にサーバー OS (Windows Server) しか使用できない • Visual Studio Professional with GitHub Enterprise サブスクリプション (MSDN) • バンダイナムコグループでは500名以上が所有する (主にエンジニア) • Azure の開発・テスト環境で仮想マシンの Windows OS ライセンス料金が免除される • Azure 以外の大手クラウド (Listed Providers [1]) の仮想マシンでは Visual Studio の使用が許可されていない • Azure DevOps および GitHub Enterprise のライセンスがサブスクリプションに含まれる [1] https://aka.ms/listedproviders 13
DX Cloud クラウドPC (開発中の画面) • PC・スマートフォン・タブレットなどのデバイスから接続可能なクラウド上の Windows 11 Enterprise デスクトップ • Microsoft Intune・GlobalProtect VPNによりMS365・Confluence・ファイルサーバなどの既存リソースにアクセス可能 • ゲームクライアントアプリの開発・テストが可能なスペックのGPUと低遅延接続 (Parsec) が利用可能 14
DX Cloud クラウドPC 想定ユースケース (開発中の画面) 一般事務作業環境 Microsoft Edge Microsoft 365 Apps Teams クライアントエンジニア 開発環境 Visual Studio Dev Home Dev Drive サーバーエンジニア 開発環境 WSL2 Docker Desktop ゲームアプリ 開発・テスト・QA環境 GPU搭載VM Parsec Unity Editor Unreal Editor 15
DX Cloud Web App 仮想マシン (開発中の画面) • 開発者が所有するクラウドPCの作成・削除・メンテナンスなどの操作がセルフサービスでできる • 「開発環境のConfiguration-as-Code」「使い捨て可能な開発環境」を実現する 16
DX Cloud Web App 非同期ジョブ (開発中の画面) • 様々な自動化タスクを開発者が実行可能になるセルフサービス基盤を提供 17
DX Cloud Web App コスト (開発中の画面) • 開発者個人が自身のクラウドPC利用実績とWBSに計上されるコストを把握可能 • プロジェクトのクラウド予算コントロール、クラウドコスト削減の効果が期待できる 18
DXセクションが推進するプラットフォームエンジニアリング + α • Bandai Namco DX Cloud Studios • DX = Digital Transformation (デジタル変革)、Devloper Experience (開発者体験) • コロナ禍をきっかけに始まった「クラウド上のゲーム開発スタジオ」を構築しようという取り組み • 開発者を顧客とする開発・テスト環境の提供にフォーカス • Bandai Namco EX Cloud Project • EX = Existing (既存)・Extended (拡張)・Expanded (発展) • バンダイナムコグループで眠っている既存のクラウドサービス・サブスクリプションを最大限に活用する取り組み • 社内外のシステム管理者やステークホルダーと協力して DX Cloud Studios を実現する基盤を構築する • インナーソースプラットフォームエンジニアリング • 従業員全員が参加可能なインナーソースのプラットフォームをクラウドネイティブに構築する取り組み 19
Bandai Namco EX Cloud Project • EX Cloud プロジェクト概要 • EX = Existing (既存)・Extended (拡張)・Expanded (発展) • バンダイナムコグループで眠っている既存のクラウドサービス・サブスクリプションを最大限に活用する取り組み • 例: Microsoft 365 E3 (バンダイナムコグループのほぼすべての従業員が所有) • 例: Visual Studio Professional with GitHub Enterprise (ゲーム開発エンジニアの大半が所有) • 社内外のステークホルダーに協力を要請して基幹ITインフラを更新・最適化しDX Cloud Studiosの基盤を実現する • 主要ステークホルダー • 株式会社バンダイナムコビジネスアーク (BNBA) 情報システム部 → バンダイナムコグループの基幹ITインフラを統括 • 日本ビジネスシステムズ株式会社 (JBS) → バンダイナムコグループへのMicrosoft 365の導入を担当したインテグレーター • 日本マイクロソフト株式会社 (MSFT) → MicrosoftおよびAzure製品の導入支援およびプロモーションの提供 20
EX Cloud バンダイナムコグループ組織構造 (FY2024) • ビジネスユニット・事業会社 各ビジネスユニット・事業ごとに主幹会社 (BNE・BNAM・etc.) と多数の子会社(BNS・BNKEN・BBST・BNO・BNAL・etc.) が存在する バンダイナムコスタジオ (BNS) はエンターテインメントユニット・デジタル事業に属する事業会社のひとつにすぎない • シェアードサービス会社 各事業会社が必要とする総務・人事・経理・財務・ITシステムなどの共通業務を集約 バンダイナムコビジネスアーク (BNBA) 情報システム部が 10,000人以上の従業員が利用する基幹ITインフラを統括する (Active Directory, Microsoft 365, etc.) バンダイナムコ エンターテインメント (BNE) バンダイナムコ アミューズメント (BNAM) バンダイナムコ ビジネスアーク (BNBA) バンダイナムコ スタジオ (BNS) バンダイナムコ オンライン (BNO) バンダイナムコ研究所 (BNKEN) B. B. スタジオ (BBST) バンダイナムコ アミューズメントラボ (BNAL) 21
EX Cloud エンタープライズ (大企業) IT インフラ更新の困難を乗り越える努力 • エンタープライズにありがちなITインフラのアジリティ不足 • バンダイナムコグループのMicrosoft 365はユーザーが1万人を超える巨大な テナントであり保守的になることはやむを得ない • 前例のない機能利用や設定変更の要望を通すことは非常に難しい • ステークホルダーとの対話と根回し • ステークホルダーに対して時間をかけて説明し調整する努力が必要 • 関連部門や上位役職者を巻き込み、事業会社(BNS)としての正式な要望を基 幹ITインフラ統括会社(BNBA)に申し入れしてもらう • クラウドベンダ(MSFT)や導入担当企業(JBS)からも支援を得る • 自分事とする姿勢を見せコラボレーションする • 要望実現までの道のりを他人事とせず、自分でも十分に研究・検証して担 当者にやってもらうべきオペレーションやリスク対処を一緒に考える • Microsoft 365 開発者プログラム [1] 実験用 Microsoft 365 サブスクリプション / Microsoft Entra ID テナント • コラボレーションの成功を通じて信頼関係が確立できれば、 アジリティは除々に向上していく [1] https://developer.microsoft.com/ja-jp/microsoft-365/dev-program 22
EX Cloud プロジェクトの取り組み FY2024 • Microsoft Intune, Windows Autopilot 検証・導入 (2024/04〜2024/09) • Windowsデバイス管理 → WindowsデバイスのオンプレミスADに依存しないクラウドネイティブなセットアップ (Microsoft Entra Join) が実現 → Microsoft DaaS 仮想マシンが社内PCと同等に扱えるようになりDX CloudクラウドPCの基盤となる → 物理PCのセットアップ・管理もクラウド化できるようになる • Microsoft Entra ID アプリ登録と管理者同意ワークフロー整備 (2024/10〜) • Microsoft 365やAzureのリソースをAPIで活用する業務アプリ・自動化システムの開発を推進 • アプリ登録・システムアカウント運用・権限許可に関するバンダイナムコグループ共通ルール策定を目指す 23
DXセクションが推進するプラットフォームエンジニアリング + α • Bandai Namco DX Cloud Studios • DX = Digital Transformation (デジタル変革)、Devloper Experience (開発者体験) • コロナ禍をきっかけに始まった「クラウド上のゲーム開発スタジオ」を構築しようという取り組み • 開発者を顧客とする開発・テスト環境の提供にフォーカス • Bandai Namco EX Cloud Project • EX = Existing (既存)・Extended (拡張)・Expanded (発展) • バンダイナムコグループで眠っている既存のクラウドサービス・サブスクリプションを最大限に活用する取り組み • 社内外のシステム管理者やステークホルダーと協力して DX Cloud Studios を実現する基盤を構築する • インナーソースプラットフォームエンジニアリング • 従業員全員が参加可能なインナーソースのプラットフォームをクラウドネイティブに構築する取り組み 24
インナーソースプラットフォームエンジニアリング • InnerSource Summit 2024: Implementing All-Inclusive InnerSource Platforms for Large Enterprises [1] • コラボレーションプラットフォーム • Git や GitHub をはじめとする開発者プラットフォーム • その他 GitLab, Azure DevOps, Bitbucket, Gitea など • インナーソースはオープンソースの原理をベースにしており、 特定のコラボレーションプラットフォームの利用を前提と している • インナーソースプラットフォームを構築することは、 組織に最適なコラボレーションプラットフォームを構築する ことを含む → インナーソースプラットフォームエンジニアリング [1] https://www.docswell.com/s/yaegashi/582MDY-ISC2024 25
大規模エンタープライズにおけるコラボレーションプラットフォームの課題 • コラボレーションプラットフォームの分断 • 社内でコラボレーションプラットフォームの統一ができない • GitHub, GitLab, Azure DevOps • 有償のプラットフォームにはプロジェクトメンバーだけ、あるいはエンジニアな どの特定職種に限定したライセンスしか用意できない • なぜ分断が起きるのか? • 歴史的な事情やライセンス費用の制限など • 通常SaaSはユーザー数で課金されるので大規模エンタープライズでは負担が重い • 一度始めてしまったプロジェクトを別のプラットフォームに移すことは難しい • なぜ分断は有害なのか? • 分断したプラットフォームがそのまま情報のサイロとなる • 一部のユーザーにしか使われないプラットフォームは利用を敬遠される • インナーソースを成功させるにはできるだけ多くの従業員が参加できることが望 ましい 26
コラボレーションプラットフォーム分断問題の解決・緩和策 • インナーソースプラットフォームの構築 • インナーソースコラボレーションプラットフォーム: 従業員全員がアクセスできるインナーソース専用の GitHub ラ イクなコラボレーションプラットフォームを構築する • インナーソースポータル: インナーソースの情報を集約するポータルサイトを構築する • 大規模エンタープライズ向けの要件 • ユーザー数単位の費用でないこと セルフホストなOSSであることが望ましい • ユニバーサルアクセス エンタープライズ従業員の誰でも利用可能であること • アクセスコントロール ユーザーの所属に応じてアクセス可能な範囲を設定できること 27
バンダイナムコグループにおけるインナーソースプラットフォームエンジニアリング • 使用するコンポーネント • Gitea: インナーソースプラットフォームを構築するためのセルフ ホストOSS • Backstage: インナーソースポータルを構築するためのセルフホス トOSS • Microsoft Entra ID (formerly Azure AD): IDaaSでユーザーの認証や所 属グループの確認を行い、社外ゲストもサポートする • インナーソースプラットフォームのゴールデンパス • InnerSource Platform as a Service の実現 • エンタープライズ内部で特定のアクセススコープを持つインスタ ンスを多数構築できる 28
Gitea によるインナーソースコラボレーションプラットフォームの実装 • Gitea https://about.gitea.com/ • GitHub クローンをセルフホストするための OSS • Go言語で書かれており軽量で管理しやすい • Microsoft Entra ID によるユーザー認証が可能 • Gitリポジトリミラー機能 • 外部のプラットフォームからGitリポジトリをミラー・同期 する機能が標準で備わっている 29
Backstage によるインナーソースポータルの実装 • Backstage https://backstage.io/ • OSSの社内開発者ポータル構築のフレームワーク • Giteaを含む様々なプラットフォームに接続できる Integration • Microsoft Entra ID によるユーザー・グループの認証 • インナーソースポータルの機能を最初から備える • Software Catalogs: catalog-info.yaml によるカタログ追加 • TechDocs: リポジトリ内の MkDocs を自動的にレンダリング 30
Gitea と Backstage で実装するインナーソースプラットフォームの利点 • ライセンスコストがかからず、全従業員にアクセス権限を与えることができる • インナーソースの目的に特化した公開範囲を簡単に設定できる • Backstage Integrations の設定が大幅に簡略化できる • Backstage 管理者は Gitea の Integration だけ設定すればよい • 開発者は Gitea のミラー設定を使って簡単に Backstage への情報記載を制御できる 31
インナーソースプラットフォームエンジニアリング 今後の計画 • 現在: インナーソースプラットフォームエンジニアリングの推進 • Gitea, Backstage, Microsoft Entra ID 各コンポーネントの動作確認 • Infrastructure-as-Code の推進と開発・テスト用インスタンスのデプロイ • 計画: InnerSource Platform as a Service の提供 • バンダイナムコグループ内の特定の組織やプロジェクト専用のインナーソースプラットフォームを構築可能にする • 計画: 上流オープンソースプロジェクトへの貢献 • Gitea: クラウドネイティブでスケーラブル、セキュアな実装を実現する • Backstage: Gitea Integration のディスカバリ機能を実装する 32
まとめ • DXセクションによるバンダイナムコグループ向けの クラウドネイティブなプラットフォームエンジニアリングの取り組みを紹介しました • Bandai Namco DX Cloud Studios • Bandai Namco EX Cloud Project • インナーソースプラットフォームエンジニアリング 33
Thank You!! 34