Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
継続的な負荷検証を目指して
Search
Kazuhiko Yamashita
May 13, 2026
Programming
1.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
継続的な負荷検証を目指して
クラウドネイティブ会議2026でお話ししました
Kazuhiko Yamashita
May 13, 2026
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2.7k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
840
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.7k
Managing Database Migrations in Go Backend Systems
pyama86
0
610
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.6k
事業を差別化する技術を生み出す技術
pyama86
4
2.4k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
11k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
2.2k
Tuning GraphQL on Rails
pyama86
2
2.9k
Other Decks in Programming
See All in Programming
ChromeでローカルLLM
ryu1013
0
160
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
Event is what happens
moro
2
1.2k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
200
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
190
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
160
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
sbt 2.0: takeoff
eed3si9n
0
170
ジョジョの世界をXRで再現する
mofurune
0
180
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Code Reviewing Like a Champion
maltzj
529
40k
Git: the NoSQL Database
bkeepers
PRO
433
67k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
© GO Inc. 継続的な負荷検証を目指して クラウドネイティブ会議 2026 P山
© GO Inc. 2 @pyama86 GO株式会社 バックエンド開発部 / pyama86 2014年よりGMOペパボ株式会社でホスティング事業や
技術部で主にプラットフォームエンジニアリングに従事。 2025年よりGO株式会社においてバックエンド開発。 趣味は旅行、キャンプ、ハードワーク
© GO Inc. 3 某日 未明
© GO Inc. DBコネクションがスタックし、接続不可になり、 連鎖してAPIがダウン DB対応後、トラフィック・シェーピングすることで復旧 メインAPIが応答不可状態になった タクシー需要のピークに発生
© GO Inc. 1. プライマリサーバに SELECTしてるものが かなりあった 2. トランザクションの中で外部 APIをコールしているものがあった
障害の原因 DBの基礎を我々は何もわかっていなかった トランザクションが長期化し、 Wait系のメトリクスが上昇し、 DBが破滅
© GO Inc. 1. クエリチューニング &DBリファクタリング 2. パフォーマンスの悪いコードのリライト 3. 負荷検証
年末に向けて備えていたこと 自信を持って望んだ年末、 失った自信
© GO Inc. 1. 基本形の配車シナリオを実装 2. 並列度もコントロール可能で、本番以上に負荷をかけられる 3. 障害発生時以上の負荷をかけて確認していた 負荷検証
Goで実装されたスクラッチの負荷ソフトウェア
© GO Inc. 『GO』アプリでは、周囲のタクシーが少ない場合にのみ発生する エンドポイントがあり、そのエンドポイントが特に負荷が高かった しかし、負荷シナリオにそのエンドポイントは 含まれていなかった 何が不足していたのか? 負荷検証の網羅性 「やっていた」
と「必要なパターンをカバーしていた」 の間には 大きな差がある
© GO Inc. 1. 可観測性の向上 2. レプリカDBを利用するようアプリを書き換え 3. トランザクション実行時間の削減 4.
縮退モードの開発 5. 継続的な負荷検証の実現 再発防止のためにやったこと 必要なことは全部やる
© GO Inc. 10 継続的な負荷検証を 目指して
© GO Inc. 1. 新しいエンドポイントは日々増え続ける 2. 本番リリース後、特定ユーザーだけ負荷が高いということがある 3. 新規開発でそれどころではない 継続的な負荷検証の何が難しいか
常にサービスは 成長する
© GO Inc. 12 そうだ、 AIにしよう
© GO Inc. 1. 負荷シナリオの妥当性をレビューする必要がある 2. AIが生成したものを何かしらの手段で動作確認する必要がある 3. そもそも精度高くテストデータを作り込むのが難しい AIで自動生成する場合の課題
厳密には人の課題でもある
© GO Inc. YAMLでテストシナリオを定義できるシナリオワークフローエンジン シナリオの可視化 k1LoW/runn 1. YAMLで宣言的にテストの内容を定義 AIとの協業がやりやすい 2.
負荷検証以外に、 E2Eテストとしても流用できる 3. Goからライブラリ的に実行できる 4. 作者とメンテナ (@katzchum)が知人
© GO Inc. k1LoW/runn desc: 検索→詳細取得フロー steps: login: include: setup_user.yml
# 認証などの共通処理をinclude search: req: /v1/items/search: get: headers: Authorization: "Bearer {{ steps.login.token }}" params: query: "{{ vars.keyword }}" test: current.res.status == 200 wait_for_ready: loop: count: 5 interval: 3s until: current.res.body.status == "ready" req: /v1/items/{{ steps.search.res.body.id }}: Goのテンプレート埋め込みに対応 includeで共有資産化 debugもしやすい仕組み
© GO Inc. AIが生成したものを何かしらの手段で動作確認する必要がある runnをAIにコールさせる 「3回連続でパスするまで直し続けてください」 しかし、普通にやると 難しい
© GO Inc. シナリオの作成から実行まで さも人であるかの様に振る舞うために claude code dev api server
runn production dev 1.ログを分析し、シナリオ作成 2. シナリオ実行 3.ログ出力 4.ログを閲覧、デバッグ YAML
© GO Inc. 開発?した Agent Skills extract-scenariosスキル - ログを読んでシナリオを書く run-stressスキル
- dev環境で実際に実行して確認する
© GO Inc. extract-scenariosスキル AIにGrafana LokiへのアクセスをMCP経由で与えている。 AIは本番環境のLokiに直接クエリを投げて実際のアクセスログを取 得し、ユーザーやドライバーがどのAPIをどんな順番 で 呼んでいるかを分析する。
発見したパターンをもとにrunbook YAMLを生成し、既存 シナリオとの重複チェックも行って、新規性のあるシナリオ 候補のみを人間に提案する。
© GO Inc. run-stressスキル このスキルでは、AIがdev環境で実際にシナリオを動かす 。 内部的にはrunnをGoライブラリとして組み込んだ CLIを使い、実行す る。 さらに、dev環境のLokiにもクエリを投げて
、リクエストがAPIサーバ に実際に届いているか、想定したルートを通っているか、うまく行かな い時の調査を行う。
© GO Inc. この仕組みの面白いところ 1. 人がシナリオを作る時のサイクルそのもの をAIに移植した 2. ピークタイムのログをAIに解析させたり、特定の時間にしか起きな いパターンなどを検知できる様になった
3. runnがドキュメントとしての側面 があることの発見
© GO Inc. 他に工夫しているところ 1. 負荷検証用のDBのデータは大量の本番相当の レコードを使う 2. 外部通信は全てMockする 3.
テストに使うユーザーやドライバーは紐づくレコードの 多いものを自動決定する 4. runnのhttpクライアントの取り回し 5. 負荷クライアントのワーカー化 6. Grafana MCPの認証・認可
© GO Inc. いまは人がやっていること 1. この仕組みの実行、負荷検証の実施 主にコスト面から自動実行はしていない 2. AIが作ったシナリオの妥当性の検証 3.
負荷検証の結果の評価
© GO Inc. 今日話したこと 1. 負荷検証のシナリオを継続的に開発するための手段 2. AIに人が扱っている様な情報を与えることで、 サイクルを回す 3.
人間とAIが協業するために、既存の手段を組み合わせる
© GO Inc. オンラインイベントを来週やります !!1
文章・画像等の内容の無断転載及び複製等の行為はご遠慮ください。 © GO Inc.