Slide 1

Slide 1 text

毎晩 負荷試験自動実行による効果 SRE NEXT 2025

Slide 2

Slide 2 text

自己紹介 Ayana Murakami 2023年 入社 『ホットペッパービューティー』 バックエンド開発 2

Slide 3

Slide 3 text

『ホットペッパービューティー』 国内最大級 ヘアサロン・リラク &ビューティサロン 検索・予約サイト ※ 2025年6月時点 https://beauty.hotpepper.jp/doc/guide/saishindata.html 3 ● 2007年 ヘアサロン 検索予約サイト として誕生 ● ヘア、リラクゼーション、エステ、 ネイル、アイビューティーまで幅広く提供 ● モバイルアプリ( iOS / Android ) Web(PC・スマートフォン) にて展開 ● 年間 およそ1.9億予約 ※

Slide 4

Slide 4 text

お伝えしたいこと 負荷試験ツールを毎晩自動実行 することにより 負荷試験 準備・実施にかかる工数を削減した 事例 紹介 4

Slide 5

Slide 5 text

背景|今回 対象システム ご紹介 モバイルアプリ用 BFF※・Backendサーバー 合計100本以上 エンドポイントが存在 5 ※ BFF:Backend For Frontend ref.) ホットペッパービューティーにおけるモバイルアプリ向け API BFF/Backend分割, JJUG 2019

Slide 6

Slide 6 text

背景|今回 対象システム ご紹介 モバイルアプリ用 BFF※・Backendサーバー 合計100本以上 エンドポイントが存在 6 ※ BFF:Backend For Frontend ref.) ホットペッパービューティーにおけるモバイルアプリ向け API BFF/Backend分割, JJUG 2019 リリース前に負荷試験を実施し 事前に性能に問題がないことを検証したい

Slide 7

Slide 7 text

課題|工数が大きい負荷試験 主に作業負荷が大きかった作業 1. 負荷試験環境 準備・手動実行 2. 負荷試験シナリオ メンテナンス 7

Slide 8

Slide 8 text

課題 主に作業負荷が大きかった作業 1. 負荷試験環境 準備・手動実行 2. 負荷試験シナリオ メンテナンス 8

Slide 9

Slide 9 text

課題|負荷試験環境 準備手動実行 9 Before ● 負荷試験実行 手順が多く アプリケーション ビルド待ちが発生 ● ビルド完了を待ってからEC2にsshして 負荷試験ツール Gatling でシナリオ実行

Slide 10

Slide 10 text

打ち手|負荷試験環境 準備・実行 自動化 10 Before After

Slide 11

Slide 11 text

打ち手|負荷試験環境 準備・実行 自動化 11 After ● 開発者 GitHub Actions ワークフローを 実行する み ● アプリケーション ビルドやデプロイから Gatling シナリオ実行まで一気通貫

Slide 12

Slide 12 text

課題 主に作業負荷が大きかった作業 1. 負荷試験環境 準備・手動実行 2. 負荷試験シナリオ メンテナンス 12

Slide 13

Slide 13 text

課題|負荷試験シナリオ メンテナンス 13 負荷試験 月に数回 み 実施 日々 機能改修にシナリオが追従できず 試験前に都度修正作業が発生 また試験がエラーになった... どの機能改修が原因だ...? ● 原因機能 特定が大変 ● 修正規模が大きくなりがち

Slide 14

Slide 14 text

打ち手|シナリオ変更が必要な状態をすぐに検知 14 リリース前 メインブランチ に対して定期的に負荷がけ

Slide 15

Slide 15 text

打ち手|シナリオ変更が必要な状態をすぐに検知 15 リリース前 メインブランチ に対して定期的に負荷がけ 負荷試験シナリオが正常に動かなくなった タイミングや原因が明らかな で保守がしやすい ※ 負荷試験1回あたり 所要時間がかかるためコミットフックよりも定期実行がちょうどいい

Slide 16

Slide 16 text

毎晩 負荷試験実行で 失敗 早期検知 と 修正範囲 最小化 GitHub Actionsによる負荷試験 一連手順 自動化 今回 課題と対応 16 1. 負荷試験環境 準備・手動実行 2. 負荷試験シナリオ メンテナンス

Slide 17

Slide 17 text

実際どうなった?|時間 17 負荷試験で取られる時間 約3割を削減 ※ 性能が論点になる機能改修 場合

Slide 18

Slide 18 text

新規機能 負荷試験シナリオ作成も楽に 実際どうなった?|開発者から 声 18 現状 シナリオが正しく動くことが保証されているため 負荷試験が必要な新規機能改修が発生しても 自分 担当分にフォーカスする みでいい

Slide 19

Slide 19 text

負荷試験 シナリオ 動くも だという心理的な安心感 副次的な効果 19 試してみないと 動くかわからない 「できれ 負荷試験を避けたい」 きっと動くはず 「実施しておくか」 Before After

Slide 20

Slide 20 text

まとめ 20 ● GitHub Actionsを用いて負荷試験手順を自動化 ● 毎晩負荷試験を実行しシナリオをメンテしやすい仕組みに 負荷試験 準備・実施にかかる工数を削減