Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2023-10-31-SRE-MIXITECHTALK.pdf

Tomohiro Koike
October 31, 2023
330

 2023-10-31-SRE-MIXITECHTALK.pdf

Tomohiro Koike

October 31, 2023
Tweet

Transcript

  1. 22 ©MIXI ⾃⼰紹介 【名前】 小池 知裕(こいけ ともひろ) 【所属】株式会社 MIXI 開発本部

    CTO 室 SRE グループ 【自己紹介】 • 2008年1月株式会社ミクシィ(現 株式会社MIXI)入社。 SNS mixiでのインフラ、システム運用などを経験後、現 在はモンスターストライクをはじめとしたゲームアプリ や注力事業の支援、全社横断的なプロジェクトに幅広く 従事している。また若手エンジニアメンバーの育成にも 力を入れている。
  2. 33 ©MIXI ⽬次 • 開発本部 CTO 室 SRE グループの紹介 •

    外部の開発会社からの納品からリリースまで • サーバレスでリリース⽤署名をする • 概要説明 • 運⽤でのポイント • まとめ
  3. 6 ©MIXI 開発本部 CTO 室 SRE グループの紹介 ミッション • MIXI

    Group における注⼒事業‧サービスの価値向上 • MIXI Group のエンジニアの開発⼒‧⽣産性の最⼤化 ⽅針 • 注⼒事業への機動的な配置 • 領域の拡⼤ • 内製化進めていく • エンジニアの教育‧育成を積極的にしていく 業務内容 • 注⼒事業(プロダクト)の⽀援(サポート) • エンジニアのいない領域への⽀援(サポート) • 全社的な横軸での案件サポート
  4. 7 ©MIXI 開発本部 CTO 室 SRE グループの紹介 ミッション • MIXI

    Group における注⼒事業‧サービスの価値向上 • MIXI Group のエンジニアの開発⼒‧⽣産性の最⼤化 ⽅針 • 注⼒事業への機動的な配置 • 領域の拡⼤ • 内製化進めていく • エンジニアの教育‧育成を積極的にしていく 業務内容 • 注⼒事業(プロダクト)の⽀援(サポート) • エンジニアのいない領域への⽀援(サポート) • 全社的な横軸での案件サポート 今日はこの辺の話
  5. 10 10 ©MIXI 外部の開発会社からの納品からリリースまで 開発会社 • 開発したiOS/AndroidのアプリをMIXI側へ納品 • 納品形式は様々 MIXI側

    • 納品されたアプリの検品(動作確認等) • 各種プラットフォームのストアへ並べるために本番⽤配布証明書で署名する ◦ これを以下では「再署名」と呼びます • 再署名されたiOS/Androidのアプリを各プラットフォームでパブリッシュ
  6. 12 12 ©MIXI 外部の開発会社からの納品からリリースまで 今まで • リリース⽤ iOS / Android

    アプリが納品されるたびに再署名を実施 • 社内のビルドマシン(Mac)で実施していた • エンジニアが再署名作業を実施 課題 • 対象のアプリが増えてきた ◦ 依頼をもらって対応するには頻度が増えてきた • 営業時間外での対応もしたい ◦ 対応する⼈はエンジニアとは限らない ◦ プランナーの⽅でもできるように
  7. 15 15 ©MIXI サーバレスでリリース⽤署名をする仕組み 概略図 Google Drive GitHub Actions iOS

    アプリ Android アプリ ②アプリA ⽤の再署名 ②アプリB ⽤の再署名 ③Slack への結果通知 ①ダウンロード 再署名システムの流れ概要: ①Google Drive にあるiOS/Android アプリをダウンロード ②GitHub Actions 内で再署名を⾏う ③結果を社内のSlackチャンネルへ通知 ④再署名したアプリをアップロード ④アップロード
  8. 17 17 ©MIXI 仕組みの概説 ①Google Drive にあるiOS/Android アプリをダウンロード • GitHub

    Actions 内で完結させることに拘ったため、CLI で⾏う必要 ◦ いくつかGoogle Driveを操作するツールがありました ▪ gdrive ▪ skicka ▪ Rclone ▪ 等々 • 検討‧検証した結果 RClone (https://rclone.org/) を採⽤しました ◦ 積極的に開発されている ◦ 様々なプラットフォームに対応 ▪ OneDrive ▪ Box ▪ などなど..
  9. 18 18 ©MIXI 仕組みの概説 ②GitHub Actions 内で再署名を⾏う • GitHub Actions

    内では以下のような処理をしています ◦ 指定のGoogle Drive から対象の iOS/Android アプリをダウンロードしてくる ◦ 環境のセットアップ ▪ 証明書やプロファイルの準備や必要なソフトウェアをインストール • fastlane • Android SDK ◦ iOS なら fastlane を利⽤して再署名 ◦ Android なら apksigner を利⽤して再署名 ◦ 結果をSlack へ通知 ◦ 指定のGoogle Drive へ再署名した iOS/Android アプリをアップロード
  10. 21 21 ©MIXI 運⽤について 再署名システムの運⽤について • 仕組みは出来た。次は運⽤だ。 • 運⽤フローは以下で運⽤中 1.

    納品されたiOS/Androidアプリを特定のGoogle Drive へアップロード a. プランナーの⽅が⾏うことも b. アップロード先は固定(プロジェクトごとに決まってる) 2. GitHub ActionsをWorkFlow⼿動実⾏ a. プランナーの⽅が⾏うことも 3. 再署名が⾏われ、特定のGoogle Drive へアップロード a. アップロード先は固定(プロジェクトごとに決まってる) 4. 再署名されたiOS/Androidアプリをストアで配布 ここポイント ここポイント
  11. 23 23 ©MIXI 運⽤について トラブル対応のスピードを重視 • Google Drive、GitHubなどのトラブル時には再署名の処理を⼿動で実⾏で復旧 ◦ なるべくシンプルに

    • ミスをした場合に問題点の特定をしやすくする ◦ プランナーの⽅の作業⾃由度を制限 ◦ 制限したことで原因を絞り込みやすくする ◦ ファイル指定の際のミスやtypoなどを排除できる • 考えることを少なくしてストレスを低減 • 汎⽤的‧柔軟な対応ができることを⽬指しがちだがそこは我慢
  12. 25 25 ©MIXI まとめ • MIXIでパブリッシャーとしている複数のアプリで利⽤する再署名のシステムを作った ◦ 共通で利⽤している • 社内でのツール開発やそのトラブルでの経験を⽣かす

    • 「メンテナンスコストの低減」‧「シンプルな運⽤フロー」を⽬指して運⽤ ◦ あえて制限することで運⽤をシンプルにできる • 複数のサービスに跨ってサービスの価値向上のための⾏動をする