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
2023-10-31-SRE-MIXITECHTALK.pdf
Search
Tomohiro Koike
October 31, 2023
460
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
370
全社横断組織でのAWSコスト最適化への取り組み
tmkoikee
1
770
新規ゲームのリリース(開発)前からのSRE活動
tmkoikee
1
6.9k
モンスターストライクのマスターデータのローカライズ運用について / Operation of Monster-Strike master data localization /
tmkoikee
1
1.2k
delightworks-tech-night-1
tmkoikee
2
1.7k
モンストのマルチクラウドについて / sre-lounge-at-xflag
tmkoikee
1
5.8k
モンスターストライク海外版でのSREの取り組み / xflag-studio-sre-in-global
tmkoikee
2
2.5k
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
830
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
Deep Space Network (abreviated)
tonyrice
0
170
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
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