2024年9月2日に開催された「負荷テストいつ向きあう?基礎から実践事例まで」に参加してきました。
本イベントでは、負荷テストの考え方や課題、自尺の負荷テスト改善の事例やおすすめのツールについての発表がありました。
本記事では、イベントで発表があったセッションについての紹介と内容について解説します。
執筆者
[セッション1]
「大規模サービスの負荷試験を改善していった話」
セッション1の内容については、こちらの記事で登壇レポートを書いていますので、ご参照ください。
[セッション2]
セッション2の発表は、株式会社COMPASSの福永さんによる発表です。
「大規模サービスの負荷試験を改善していった話」
セッションでは、株式会社COMPASSでの負荷試験の実例紹介と、負荷試験の歴史、基盤の仕組みの紹介がありました。
負荷試験を始めた当初では、負荷試験は手動で実施していたそうです。
当時利用していたツールとしては、
k6
k6-operator
GKE
実施時の構成としては以下とのことです。
当時の課題感としては
必要な手順が多い
担当者によって手順に差分(そのため、結果にも差分)がある
負荷試験時に確認するダッシュボードが整理されていない
レポートを毎回手動でまとめていた(時間と労力が多くかかる)
パフォーマンス問題が発覚したときに、解消まで時間がかかる
ただ、手動だとはいえ負荷試験を導入したことにより、以下のメリットが得られたとのことです。
リリース前にパフォーマンスの問題を潰せるようになった
一方、デメリットとしては、以下がありました。
実績・分析・記録のコストが高く、運用負荷が高い
以上から、負荷試験の自動化を行うに至ったそうです。
自動化の際の構成としては、以下です。
上記の仕組みを使って、
手動で
平日朝に自動で
ステージング環境の更新時に自動で
のタイミングで、負荷試験が実行され、最終的にslackに結果が通知されるとのことです。
また、以下のようなサマリーダッシュボードを作ることで、分析を楽にしたとのことでした。
実施コストを下げることで、ユーザー体験だけでなく、開発者の負荷軽減やモチベーション向上につながったとのことです。
また、ビジネス的にも次のスライドにあるように、トラブル発生件数の削減に大きく寄与したとのことです。
本セッションでは、手動負荷試験から自動化まで、メリットデメリットや効果がわかりやすく紹介されていました。
[セッション3]
セッション3の発表は、株式会社テックリードのゴリラさんによる発表です。
「Rustで始める負荷試験」
本セッションでは、Rust製の負荷試験フレームワークであるGooseが紹介されていました。
LocustにインスパイアされたRust製の負荷テストフレームワーク
Locustに比べて11倍ほどのトラフィックを生成できる
RustFoundationのメンバーのtag1が開発している
という特徴があり、可搬性、カスタマイズ性、スピード・スケーラビリティ、安心感が十分担保されているツールになります。
Gooseの利用方法については、以下の動画、スライドがわかりやすいのでご参照ください。
Gooseの良い点として、以下の3つの特徴が紹介されていました。
結果のメトリクスがHTMLで見れる
リクエスト/エラーのログを出力できる
負荷のかけかたを指定できる(Test Plan)
Gooseについてもっと詳細をしりたい場合は、こちらのドキュメント(https://book.goose.rs/)が非常に参考になるとのことでした。
本セッションでは、比較的新興のRust製のGooseの紹介がありました。
Gooseのドキュメント自体かなり少なく、日本語の情報もすくないため、かなり貴重なトークでした。