Slide 1

Slide 1 text

©MIXI アプリケーション開発に⽋かせない CI/CD を横断組織として⽀援している話 開発本部 CTO室 SREグループ 多⽻⽥ 俊

Slide 2

Slide 2 text

©MIXI 目次 ● エンジニアの横断組織:開発本部の紹介 ● SRE グループの紹介 ● アプリの CI/CD ⽀援の話 ○ 事例1:ビルドマシンの貸与⽀援 ○ 事例2:Unity Build Server の保守・運⽤ ○ 事例3:社内 CI サービスの開発・保守・運⽤ ○ 事例4: CI/CD 導⼊⽀援 ○ 事例5:その他の取り組み ● まとめ ● 宣伝:SRE グループの紹介

Slide 3

Slide 3 text

©MIXI 【名前】 多羽田 俊(たばた しゅん) 【所属】株式会社 MIXI 開発本部 CTO 室 SRE グループ 【来歴】 • 前職では主に Web アプリケーションのバックエンド開発を中心に、 フロントや iOS アプリの開発も経験 • 現在は主に会社の基盤システムの設計から開発・保守・運用や、プ ロジェクトへの DevOps 支援などを行なっている • アプリの開発経験から、最近はアプリの CI/CD の導入支援などを行 なっている -好きなこと- 猫(2匹飼ってます)、音楽、 作曲、お酒 - Twitter - @bbq_all_stars 自己紹介

Slide 4

Slide 4 text

©MIXI エンジニアの横断組織 開発本部の紹介

Slide 5

Slide 5 text

©MIXI 特定のプロダクト・ サービスに所属するエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア エンジニア組織について

Slide 6

Slide 6 text

©MIXI SRE グループの紹介

Slide 7

Slide 7 text

©MIXI 特定のプロダクト・ サービスに所属するエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア SRE エンジニア組織について

Slide 8

Slide 8 text

©MIXI SREグループの紹介 <SREグループの⽅針・ミッション> ・注⼒事業におけるサービスの信頼性向上のための⾏動 ・サービス運⽤における効率化と⾃動化、ワークフロー改善 ・破壊と安定を繰り返し、安定運⽤のための⾏動を取り続ける ・各事業横断で、ノウハウを最も持つ組織 ⇒技術でプロダクト・サービスの価値向上(のサポート)をする

Slide 9

Slide 9 text

©MIXI SREグループの紹介 MIXIのSREグループは主に3つの業務を⾏っています 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築 ・サービスのアプリケーション開発 エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など

Slide 10

Slide 10 text

©MIXI SREグループの紹介 MIXIのSREグループは主に3つの業務を⾏っています 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築 ・サービスのアプリケーション開発 エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など

Slide 11

Slide 11 text

©MIXI アプリの CI/CD ⽀援の話

Slide 12

Slide 12 text

©MIXI CI/CD をやりたい! ハイスペック環境 でビルドしたい アプリの署名を したい アプリの配布をし たい CI サービスはどこ を使ったら良いだろ う? 会社ですぐに使え る CI サービスを 知りたい 〇〇という CI サービ スを使いたい

Slide 13

Slide 13 text

©MIXI 何をビルドしますか? iOS App Android App Windows App Flutter App Cocos2d-x Web App Unity Unreal Engine

Slide 14

Slide 14 text

©MIXI 何でビルドしますか? Linux Windows Mac GitHub Actions Unity Build Server Circle CI Bitrise Code Build Cloud Build

Slide 15

Slide 15 text

©MIXI なんでビルドしたいんですか? リリース版のアプリ をビルドしてストア に配信したい 開発版のアプリを ビルドして配布し たい Asset Bundle を作 成したい 外部の開発会社に 対して配布したい In-house で社内向 けアプリの配信を したい テストを実行した い

Slide 16

Slide 16 text

©MIXI それ SRE グループがお⼿伝いします

Slide 17

Slide 17 text

©MIXI 事例1:ビルドマシン貸与⽀援

Slide 18

Slide 18 text

©MIXI 事例1:ビルドマシン貸与支援 ● 社内 IT の部署と協⼒して、ビルドマシン貸与の相談依頼を受付 ● 現場と社内 IT の折衝をすることで、コストとパフォーマンスの 全体最適化を⾏う ● 場合によってはビルドマシンの貸与ではなく、既存の CI サービ スに誘導することも

Slide 19

Slide 19 text

©MIXI 事例2:Unity Build Server の 保守・運⽤

Slide 20

Slide 20 text

©MIXI 事例2:Unity Build Server の保守・運用 ● Unity が提供している CI/CD ソリューション ● 通常のライセンスとは違う、ビルド専⽤のフローティングライセ ンスを使⽤してビルドするもの ○ ビルド時にライセンスを消費する ○ Unity Organization 内でライセンスを融通し合える ○ 値段が通常のライセンスよりもかなり安い ○ ただし、ライセンスを管理するライセンスサーバーが必要 ● ライセンスの発⾏、設定、API の提供、ライセンスサーバーの保 守・運⽤を SRE で担当 ● 利⽤申請フロー等を整備して全体に周知

Slide 21

Slide 21 text

©MIXI 事例2:Unity Build Server の保守・運用 ● ライセンスを共有する Unity Organizationを複数作成し、ライセ ンスを管理しています ● 低めのスペックの EC2 内に Docker コンテナを⽴てて運⽤しています ● ライセンスサーバーの前段の IP を固 定する必要があり、NGINX を挟んで います ● ACM を使⽤したかったため、ALB を挟んでいます ○ 詳細は技術ブログで公開予定

Slide 22

Slide 22 text

©MIXI 事例3:社内 CI サービスの保守・運⽤

Slide 23

Slide 23 text

©MIXI 事例3:社内 CI サービスの保守・運用 ● 任意の環境でアプリをビルドすることができる独⾃の CI サービ ス ● 既存の CI サービスよりも安い環境で使いたいというニーズから SRE グループで開発 ● GitHub App をリポジトリにインストールするだけでビルドを実 ⾏できる

Slide 24

Slide 24 text

©MIXI 事例3:社内ビルド環境の保守・運用 ● Vagrant + Parallels Desktop で 仮想環境を作成し、その中で GitHub self-hosted runner を使 ってビルドを回している ● GitHub self-hosted runner を使 ⽤しているため、既存の GitHub Actions を使⽤することができる ● 詳細はこちらで発表しています ○ 動的に仮想環境を構築して CI/CD を 実⾏する| by BBQ All Stars | MIXI DEVELOPERS ○ CI/CD Conference 2023 前夜祭 (前 夜ではない) - connpass

Slide 25

Slide 25 text

©MIXI 事例4: CI/CD 導⼊⽀援

Slide 26

Slide 26 text

©MIXI 事例4:CI/CD 導入支援 ● プロジェクトでのアプリの CI/CD の導⼊の⽀援を⾏っています ● プロジェクト側で継続的なビルド・配信ができるように、ビルド ワークフローの設計・導⼊をしています ● 例えば以下のような⽀援をしています ○ Git のブランチやタグの運⽤ ○ 配信のワークフロー設計 ■ 各開発環境⽤のバージョンの社内配布 ■ リリース版のストアへの配布 ○ 証明書の発⾏・管理 ○ Apple Pay の ID・証明書管理も ○ ビルド⽀援ツールの開発も⾏ったりしています ■ https://github.com/bbq-all-stars/bitrise-step-google-play-rollout

Slide 27

Slide 27 text

©MIXI 事例5:その他の取り組み

Slide 28

Slide 28 text

©MIXI 事例5:その他の取り組み 開発本部も含めて以下のような取り組みを⾏っています ● GitHub Actions のクレジット管理 ● Circle CI の契約 ● DeployGate の管理 ● etc… ● 運⽤フローの整備と周知 ● 予算は開発本部持ちにすることで、コストとパフォーマンスの全 体最適化を⾏っている

Slide 29

Slide 29 text

©MIXI まとめ

Slide 30

Slide 30 text

©MIXI まとめ ● MIXI には開発本部という横断組織があります ● その中の SRE グループでは、技術でプロダクト・サービスの価 値向上(のサポート)をしています ● その⼀環として、アプリビルドに関する各種⽀援を⾏っています ● このような⽀援を横断組織で⾏うことで、コストとパフォーマン スの全体最適化を⾏っています

Slide 31

Slide 31 text

©MIXI 宣伝:SRE グループの紹介

Slide 32

Slide 32 text

©MIXI 宣伝:SRE グループの紹介 MIXIのSREグループは主に3つの業務を⾏っています(再掲) 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築 ・サービスのアプリケーション開発 エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など

Slide 33

Slide 33 text

©MIXI SREグループの技術領域は多岐に渡ります。 クラウド インフラ管理 オンプレミス ミドルウェア等 コンテナ関連 アプリケーション CI/CD Ruby,Go,Perl,Elixir, Kotlin,Flutter Jenkins,CircleCI, GitHub Actions, Bitrise,Cloud Build nginx,MySQL,memcached,Redis,Fluentd K8s,Docker Terraform, CloudFormation AWS,GCP 物理サーバ, ネットワークスイッチ 宣伝:SRE グループの紹介

Slide 34

Slide 34 text

©MIXI We are hiring!! 採用情報 https://mixigroup-recruit.mixi.co.jp/ MIXI 採用 SRE \ 積極採用中! /

Slide 35

Slide 35 text

©MIXI