MIXI DEVELOPERS NOTE
🐙

モンスターストライクの開発には GitHub Enterprise Cloud を活用しています

2024/06/17に公開

MIXI でモンストサーバチームとセキュリティ室を兼務している、atponsです。

私が所属するモンストサーバチームでは、モンスターストライクモンスターストライク スタジアムの開発や運用を行っています。

モンストの普段の開発や運用に関するやりとりは GitHub 上で行っています。MIXI 社では部署ごとに技術スタックやツールの選択を柔軟に行うことができるため、GitHub も各部署で契約したものを利用していました。

その中で、MIXI では 2023 年より全社的に GitHub Enterprise Cloud の導入を進めることになりました。GitHub Enteprise Cloud には、GitHub Copilot Enterprise の導入が可能になる他、様々なメリットが存在するので、今回は特に活用している機能を紹介します。

SAML SSO によるユーザー管理性向上

GitHub Enterprise Cloud では SAML SSO が利用可能で、MIXI のシングルサインオン基盤と連携させています。
モンスターストライクでは、サーバーやクライアントコードの他に、マスターデータなどのゲームの進行に必要なデータも GitHub で管理しています。そのため、エンジニアだけでなく、ゲームプランナーやデザイナー、QAなども GitHub に参加していることで、規模の大きい Organization になっています。
SAML SSO の導入によるセキュアな GitHub 運用はユーザーの棚卸しや、セキュアに運用していくという観点で管理性に大きく貢献しています。

Announcements 機能

Announcements 機能というものがあり、Organization もしくは Enterprise 内で周知したい内容を書くことができます。書いた内容は GitHub 内の各ページに期限付きなどで必ず目に入る形で周知することができ、Slack などでのコミュニケーションと組み合わせることでコミュニケーションのロスを減らせるため、GitHub 上で何か変更を加えたいときなどに便利に活用しています。

GitHub Pages の Private 公開

GitHub Pages は GitHub で管理しているリポジトリを静的サイトとして公開する機能です。この内、組織内のユーザーにのみ公開することができる機能が存在しますが、それを利用するには GitHub Enterprise Cloud が必要です。

これまでモンストでは部署内でゼロトラストプロキシを開発・運用してきていますが、静的サイトのホストについては Kubernetes クラスタ内でのサーブ、もしくは S3 や Cloud Storage の活用が必要であったところから、より気軽に公開するといったニーズに応えることができました。

GitHub Actions の Deployment Environments

GitHub Actions で利用可能な Deployment 内の Environments 機能を使うことで GitHub Actions へ承認フローを組み込むことができますが、承認フローを利用するためには GitHub Enterprise Cloud が必要です。

モンスターストライク スタジアムではAmazon ECS Fargateを利用していて
その中でデプロイやデータベースマイグレーションに GitHub Actions を活用していますが Environments 機能を利用した承認フローを採用していて、ガバナンスを実現しています。

おわりに

これ以外にも、マージキューが実装されているほか、GitHub Enterprise Cloud では、GitHub をより便利に使うための機能が備わっており、GitHub のコラボレーション機能をより強化して開発生産性が上がる(エンジニアのテンションが上がる)機能がたくさん備わっていて、今後も活用していきたいと考えています。

GitHub Enterprise Cloud への移行は、既存の Organization を Enterprise Cloud に所属させる形で実現しました。その過程で、ボットユーザーの GitHub Apps 移行の推進や SAML SSO による個人の SSH キー制限の周知など、技術的な面の他にもコミュニケーションが必要な部分がいくつかありましたが、それらを乗り越えて GitHub Enterprise Cloud を導入することで、多くのメリットを実感しています。これからも GitHub を利用して開発生産性を向上させていきたいと思います。

MIXI DEVELOPERS NOTE
MIXI DEVELOPERS NOTE

Discussion