Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2023-10-31-SRE-MIXITECHTALK.pdf
Search
Tomohiro Koike
October 31, 2023
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2023-10-31-SRE-MIXITECHTALK.pdf
Tomohiro Koike
October 31, 2023
More Decks by Tomohiro Koike
See All by Tomohiro Koike
SRE NEXT 2024で得た知見を若手のSREエンジニア育成・採用にどう活かしたか
tmkoikee
1
410
全社横断組織でのAWSコスト最適化への取り組み
tmkoikee
1
780
新規ゲームのリリース(開発)前からのSRE活動
tmkoikee
1
6.9k
モンスターストライクのマスターデータのローカライズ運用について / Operation of Monster-Strike master data localization /
tmkoikee
1
1.2k
delightworks-tech-night-1
tmkoikee
2
1.8k
モンストのマルチクラウドについて / sre-lounge-at-xflag
tmkoikee
1
5.9k
モンスターストライク海外版でのSREの取り組み / xflag-studio-sre-in-global
tmkoikee
2
2.5k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Exploring anti-patterns in Rails
aemeredith
3
500
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
The SEO Collaboration Effect
kristinabergwall1
1
550
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Six Lessons from altMBA
skipperchong
29
4.5k
Become a Pro
speakerdeck
PRO
31
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Code Review Best Practice
trishagee
74
20k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Transcript
©MIXI ©MIXI 複数のスマホゲームアプリのリ リース⽤処理の仕組みを共通化 してプランナーさん向けに作っ た話 2023/10/31 開発本部CTO室SREグループ ⼩池知裕 MIXI
SRE秋祭り 〜 MIXIのもうひとつのSRE 〜
22 ©MIXI ⾃⼰紹介 【名前】 小池 知裕(こいけ ともひろ) 【所属】株式会社 MIXI 開発本部
CTO 室 SRE グループ 【自己紹介】 • 2008年1月株式会社ミクシィ(現 株式会社MIXI)入社。 SNS mixiでのインフラ、システム運用などを経験後、現 在はモンスターストライクをはじめとしたゲームアプリ や注力事業の支援、全社横断的なプロジェクトに幅広く 従事している。また若手エンジニアメンバーの育成にも 力を入れている。
33 ©MIXI ⽬次 • 開発本部 CTO 室 SRE グループの紹介 •
外部の開発会社からの納品からリリースまで • サーバレスでリリース⽤署名をする • 概要説明 • 運⽤でのポイント • まとめ
©MIXI 開発本部 CTO 室 SRE グループの紹介
55 ©MIXI 開発本部 CTO 室 SRE グループの紹介 特定のプロダクト・ サービスに所属するエンジニア 横断的に複数のサービス・
プロジェクトに関わるエンジニア SRE
6 ©MIXI 開発本部 CTO 室 SRE グループの紹介 ミッション • MIXI
Group における注⼒事業‧サービスの価値向上 • MIXI Group のエンジニアの開発⼒‧⽣産性の最⼤化 ⽅針 • 注⼒事業への機動的な配置 • 領域の拡⼤ • 内製化進めていく • エンジニアの教育‧育成を積極的にしていく 業務内容 • 注⼒事業(プロダクト)の⽀援(サポート) • エンジニアのいない領域への⽀援(サポート) • 全社的な横軸での案件サポート
7 ©MIXI 開発本部 CTO 室 SRE グループの紹介 ミッション • MIXI
Group における注⼒事業‧サービスの価値向上 • MIXI Group のエンジニアの開発⼒‧⽣産性の最⼤化 ⽅針 • 注⼒事業への機動的な配置 • 領域の拡⼤ • 内製化進めていく • エンジニアの教育‧育成を積極的にしていく 業務内容 • 注⼒事業(プロダクト)の⽀援(サポート) • エンジニアのいない領域への⽀援(サポート) • 全社的な横軸での案件サポート 今日はこの辺の話
©MIXI 外部の開発会社からの納品からリリースまで
99 ©MIXI 外部の開発会社からの納品からリリースまで • MIXIからリリースしているスマホゲームアプリのうちいくつかのタイトル ◦ パブリッシャーはMIXI ◦ アプリは外部の開発会社様で開発‧納品
10 10 ©MIXI 外部の開発会社からの納品からリリースまで 開発会社 • 開発したiOS/AndroidのアプリをMIXI側へ納品 • 納品形式は様々 MIXI側
• 納品されたアプリの検品(動作確認等) • 各種プラットフォームのストアへ並べるために本番⽤配布証明書で署名する ◦ これを以下では「再署名」と呼びます • 再署名されたiOS/Androidのアプリを各プラットフォームでパブリッシュ
11 11 ©MIXI 外部の開発会社からの納品からリリースまで 「各種プラットフォームのストアへ並べるために本番⽤証明書で署名する」 • プラットフォームの本番で配布するための鍵‧証明書は渡したくない • iOS に関しては鍵‧証明書はパブリッシャーで共通のもの
◦ Apple Developer Center の仕様 ▪ https://developer.apple.com/jp/support/certificates/ ◦ 各所に配置するよりもまとめたい
12 12 ©MIXI 外部の開発会社からの納品からリリースまで 今まで • リリース⽤ iOS / Android
アプリが納品されるたびに再署名を実施 • 社内のビルドマシン(Mac)で実施していた • エンジニアが再署名作業を実施 課題 • 対象のアプリが増えてきた ◦ 依頼をもらって対応するには頻度が増えてきた • 営業時間外での対応もしたい ◦ 対応する⼈はエンジニアとは限らない ◦ プランナーの⽅でもできるように
13 13 ©MIXI 外部の開発会社からの納品からリリースまで 解決するための案 • 対象のアプリが増えてきた • 営業時間外での対応もしたい ⇨
GitHub Actions を利⽤してサーバレス(ビルドマシンレス)で実現
©MIXI サーバレスでリリース⽤署名をする仕組み
15 15 ©MIXI サーバレスでリリース⽤署名をする仕組み 概略図 Google Drive GitHub Actions iOS
アプリ Android アプリ ②アプリA ⽤の再署名 ②アプリB ⽤の再署名 ③Slack への結果通知 ①ダウンロード 再署名システムの流れ概要: ①Google Drive にあるiOS/Android アプリをダウンロード ②GitHub Actions 内で再署名を⾏う ③結果を社内のSlackチャンネルへ通知 ④再署名したアプリをアップロード ④アップロード
©MIXI 仕組みの概説
17 17 ©MIXI 仕組みの概説 ①Google Drive にあるiOS/Android アプリをダウンロード • GitHub
Actions 内で完結させることに拘ったため、CLI で⾏う必要 ◦ いくつかGoogle Driveを操作するツールがありました ▪ gdrive ▪ skicka ▪ Rclone ▪ 等々 • 検討‧検証した結果 RClone (https://rclone.org/) を採⽤しました ◦ 積極的に開発されている ◦ 様々なプラットフォームに対応 ▪ OneDrive ▪ Box ▪ などなど..
18 18 ©MIXI 仕組みの概説 ②GitHub Actions 内で再署名を⾏う • GitHub Actions
内では以下のような処理をしています ◦ 指定のGoogle Drive から対象の iOS/Android アプリをダウンロードしてくる ◦ 環境のセットアップ ▪ 証明書やプロファイルの準備や必要なソフトウェアをインストール • fastlane • Android SDK ◦ iOS なら fastlane を利⽤して再署名 ◦ Android なら apksigner を利⽤して再署名 ◦ 結果をSlack へ通知 ◦ 指定のGoogle Drive へ再署名した iOS/Android アプリをアップロード
19 19 ©MIXI 仕組みの概説 ④再署名したアプリをアップロード • GitHub Actions 内からRcloneを利⽤して指定のGoogle Drive
へアップロードします
©MIXI 運⽤について
21 21 ©MIXI 運⽤について 再署名システムの運⽤について • 仕組みは出来た。次は運⽤だ。 • 運⽤フローは以下で運⽤中 1.
納品されたiOS/Androidアプリを特定のGoogle Drive へアップロード a. プランナーの⽅が⾏うことも b. アップロード先は固定(プロジェクトごとに決まってる) 2. GitHub ActionsをWorkFlow⼿動実⾏ a. プランナーの⽅が⾏うことも 3. 再署名が⾏われ、特定のGoogle Drive へアップロード a. アップロード先は固定(プロジェクトごとに決まってる) 4. 再署名されたiOS/Androidアプリをストアで配布 ここポイント ここポイント
22 22 ©MIXI 運⽤について なぜ固定の共有ドライブ? • 社内向けツールをいくつか作った経験から • この仕組みでの運⽤を考えた時に優先したものは「トラブル対応のスピード」 ◦
原因調査 ◦ ⼀時対応 • 緊急の場合もあるため、再署名処理がサービスのボトルネックにならないように
23 23 ©MIXI 運⽤について トラブル対応のスピードを重視 • Google Drive、GitHubなどのトラブル時には再署名の処理を⼿動で実⾏で復旧 ◦ なるべくシンプルに
• ミスをした場合に問題点の特定をしやすくする ◦ プランナーの⽅の作業⾃由度を制限 ◦ 制限したことで原因を絞り込みやすくする ◦ ファイル指定の際のミスやtypoなどを排除できる • 考えることを少なくしてストレスを低減 • 汎⽤的‧柔軟な対応ができることを⽬指しがちだがそこは我慢
©MIXI まとめ
25 25 ©MIXI まとめ • MIXIでパブリッシャーとしている複数のアプリで利⽤する再署名のシステムを作った ◦ 共通で利⽤している • 社内でのツール開発やそのトラブルでの経験を⽣かす
• 「メンテナンスコストの低減」‧「シンプルな運⽤フロー」を⽬指して運⽤ ◦ あえて制限することで運⽤をシンプルにできる • 複数のサービスに跨ってサービスの価値向上のための⾏動をする
©MIXI