毎晩の 負荷試験自動実行による効果
by
Recruit
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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を用いて負荷試験手順を自動化 ● 毎晩負荷試験を実行しシナリオをメンテしやすい仕組みに 負荷試験 準備・実施にかかる工数を削減