Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アプリケーション開発に欠かせない CI/CD を横断組織として支援している話 - MIXI ...
Search
Shun
March 01, 2023
Technology
1
1.4k
アプリケーション開発に欠かせない CI/CD を横断組織として支援している話 - MIXI TECH CONFERENCE 2023
MIXI TECH CONFERENCE 2023 Day1 で発表したセッションのスライドです。
https://techcon.mixi.co.jp/d1-9
Shun
March 01, 2023
Tweet
Share
More Decks by Shun
See All by Shun
徹底的な自動化とトイルの撲滅で実現する効率的なSREの実践例 - SRE NEXT 2024
bbqallstars
7
3.2k
限られた人数で MIXI のあらゆる公式サイト群を保守・運用する ノウハウとその体制 | MIXI SRE秋祭り 〜 MIXIのもうひとつのSRE 〜
bbqallstars
6
5.1k
GitHub self-hosted runner を利用した独自の CI プラットフォームの開発と運用 | CI/CD Conference 2023 by CloudNative Days 前夜祭
bbqallstars
3
630
Other Decks in Technology
See All in Technology
Figma Dev Modeで進化するデザインとエンジニアリングの協働 / figma-with-engineering
cyberagentdevelopers
PRO
1
430
独自ツール開発でスタジオ撮影をDX!「VLS(Virtual LED Studio)」 / dx-studio-vls
cyberagentdevelopers
PRO
1
180
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
100
10分でわかるfreee エンジニア向け会社説明資料
freee
18
520k
Gradle: The Build System That Loves To Hate You
aurimas
2
150
バクラクにおける可観測性向上の取り組み
yuu26
3
420
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
Automated Promptingを目指すその前に / Before we can aim for Automated Prompting
rkaga
0
110
使えそうで使われないCloudHSM
maikamibayashi
0
170
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
260
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
1
570
コンテンツを支える 若手ゲームクリエイターの アートディレクションの事例紹介 / cagamefi-game
cyberagentdevelopers
PRO
1
130
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
66
9.9k
Designing Experiences People Love
moore
138
23k
Music & Morning Musume
bryan
46
6.1k
Adopting Sorbet at Scale
ufuk
73
9k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
A designer walks into a library…
pauljervisheath
202
24k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
Thoughts on Productivity
jonyablonski
67
4.3k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
©MIXI アプリケーション開発に⽋かせない CI/CD を横断組織として⽀援している話 開発本部 CTO室 SREグループ 多⽻⽥ 俊
©MIXI 目次 • エンジニアの横断組織:開発本部の紹介 • SRE グループの紹介 • アプリの CI/CD
⽀援の話 ◦ 事例1:ビルドマシンの貸与⽀援 ◦ 事例2:Unity Build Server の保守・運⽤ ◦ 事例3:社内 CI サービスの開発・保守・運⽤ ◦ 事例4: CI/CD 導⼊⽀援 ◦ 事例5:その他の取り組み • まとめ • 宣伝:SRE グループの紹介
©MIXI 【名前】 多羽田 俊(たばた しゅん) 【所属】株式会社 MIXI 開発本部 CTO 室
SRE グループ 【来歴】 • 前職では主に Web アプリケーションのバックエンド開発を中心に、 フロントや iOS アプリの開発も経験 • 現在は主に会社の基盤システムの設計から開発・保守・運用や、プ ロジェクトへの DevOps 支援などを行なっている • アプリの開発経験から、最近はアプリの CI/CD の導入支援などを行 なっている -好きなこと- 猫(2匹飼ってます)、音楽、 作曲、お酒 - Twitter - @bbq_all_stars 自己紹介
©MIXI エンジニアの横断組織 開発本部の紹介
©MIXI 特定のプロダクト・ サービスに所属するエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア エンジニア組織について
©MIXI SRE グループの紹介
©MIXI 特定のプロダクト・ サービスに所属するエンジニア 横断的に複数のサービス・ プロジェクトに関わるエンジニア SRE エンジニア組織について
©MIXI SREグループの紹介 <SREグループの⽅針・ミッション> ・注⼒事業におけるサービスの信頼性向上のための⾏動 ・サービス運⽤における効率化と⾃動化、ワークフロー改善 ・破壊と安定を繰り返し、安定運⽤のための⾏動を取り続ける ・各事業横断で、ノウハウを最も持つ組織 ⇒技術でプロダクト・サービスの価値向上(のサポート)をする
©MIXI SREグループの紹介 MIXIのSREグループは主に3つの業務を⾏っています 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築 ・サービスのアプリケーション開発
エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など
©MIXI SREグループの紹介 MIXIのSREグループは主に3つの業務を⾏っています 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築 ・サービスのアプリケーション開発
エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など
©MIXI アプリの CI/CD ⽀援の話
©MIXI CI/CD をやりたい! ハイスペック環境 でビルドしたい アプリの署名を したい アプリの配布をし たい CI
サービスはどこ を使ったら良いだろ う? 会社ですぐに使え る CI サービスを 知りたい 〇〇という CI サービ スを使いたい
©MIXI 何をビルドしますか? iOS App Android App Windows App Flutter App
Cocos2d-x Web App Unity Unreal Engine
©MIXI 何でビルドしますか? Linux Windows Mac GitHub Actions Unity Build Server
Circle CI Bitrise Code Build Cloud Build
©MIXI なんでビルドしたいんですか? リリース版のアプリ をビルドしてストア に配信したい 開発版のアプリを ビルドして配布し たい Asset Bundle
を作 成したい 外部の開発会社に 対して配布したい In-house で社内向 けアプリの配信を したい テストを実行した い
©MIXI それ SRE グループがお⼿伝いします
©MIXI 事例1:ビルドマシン貸与⽀援
©MIXI 事例1:ビルドマシン貸与支援 • 社内 IT の部署と協⼒して、ビルドマシン貸与の相談依頼を受付 • 現場と社内 IT の折衝をすることで、コストとパフォーマンスの
全体最適化を⾏う • 場合によってはビルドマシンの貸与ではなく、既存の CI サービ スに誘導することも
©MIXI 事例2:Unity Build Server の 保守・運⽤
©MIXI 事例2:Unity Build Server の保守・運用 • Unity が提供している CI/CD ソリューション
• 通常のライセンスとは違う、ビルド専⽤のフローティングライセ ンスを使⽤してビルドするもの ◦ ビルド時にライセンスを消費する ◦ Unity Organization 内でライセンスを融通し合える ◦ 値段が通常のライセンスよりもかなり安い ◦ ただし、ライセンスを管理するライセンスサーバーが必要 • ライセンスの発⾏、設定、API の提供、ライセンスサーバーの保 守・運⽤を SRE で担当 • 利⽤申請フロー等を整備して全体に周知
©MIXI 事例2:Unity Build Server の保守・運用 • ライセンスを共有する Unity Organizationを複数作成し、ライセ ンスを管理しています
• 低めのスペックの EC2 内に Docker コンテナを⽴てて運⽤しています • ライセンスサーバーの前段の IP を固 定する必要があり、NGINX を挟んで います • ACM を使⽤したかったため、ALB を挟んでいます ◦ 詳細は技術ブログで公開予定
©MIXI 事例3:社内 CI サービスの保守・運⽤
©MIXI 事例3:社内 CI サービスの保守・運用 • 任意の環境でアプリをビルドすることができる独⾃の CI サービ ス •
既存の CI サービスよりも安い環境で使いたいというニーズから SRE グループで開発 • GitHub App をリポジトリにインストールするだけでビルドを実 ⾏できる
©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
©MIXI 事例4: CI/CD 導⼊⽀援
©MIXI 事例4:CI/CD 導入支援 • プロジェクトでのアプリの CI/CD の導⼊の⽀援を⾏っています • プロジェクト側で継続的なビルド・配信ができるように、ビルド ワークフローの設計・導⼊をしています
• 例えば以下のような⽀援をしています ◦ Git のブランチやタグの運⽤ ◦ 配信のワークフロー設計 ▪ 各開発環境⽤のバージョンの社内配布 ▪ リリース版のストアへの配布 ◦ 証明書の発⾏・管理 ◦ Apple Pay の ID・証明書管理も ◦ ビルド⽀援ツールの開発も⾏ったりしています ▪ https://github.com/bbq-all-stars/bitrise-step-google-play-rollout
©MIXI 事例5:その他の取り組み
©MIXI 事例5:その他の取り組み 開発本部も含めて以下のような取り組みを⾏っています • GitHub Actions のクレジット管理 • Circle CI
の契約 • DeployGate の管理 • etc… • 運⽤フローの整備と周知 • 予算は開発本部持ちにすることで、コストとパフォーマンスの全 体最適化を⾏っている
©MIXI まとめ
©MIXI まとめ • MIXI には開発本部という横断組織があります • その中の SRE グループでは、技術でプロダクト・サービスの価 値向上(のサポート)をしています
• その⼀環として、アプリビルドに関する各種⽀援を⾏っています • このような⽀援を横断組織で⾏うことで、コストとパフォーマン スの全体最適化を⾏っています
©MIXI 宣伝:SRE グループの紹介
©MIXI 宣伝:SRE グループの紹介 MIXIのSREグループは主に3つの業務を⾏っています(再掲) 注力事業の支援 ・サービスを支える基盤の構築や運用 ・パフォーマンス向上 ・イベントやキャンペーンを乗り越えるための 対策の検討/実施 ・新規サービス(アプリ)の構築
・サービスのアプリケーション開発 エンジニアのいない領域への支援 ・運用主管のなくなったサイトのメンテナンス ・eスポーツの円滑化/安定化支援 ・社内報やコーポレートサイトの構築運用支援 ・新卒向け技術教育のコンテンツ/講師など 全社的な横軸での案件サポート ・社内ツール 運用 ・ゲーム基盤システム の運用 ・新規ゲームのためのガイドブックなどの ドキュメント/ルール整備など
©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 グループの紹介
©MIXI We are hiring!! 採用情報 https://mixigroup-recruit.mixi.co.jp/ MIXI 採用 SRE \
積極採用中! /
©MIXI