Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
継続的な負荷検証を目指して
Search
Kazuhiko Yamashita
May 13, 2026
Programming
1.7k
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.3k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
690
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.5k
Managing Database Migrations in Go Backend Systems
pyama86
0
540
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.5k
事業を差別化する技術を生み出す技術
pyama86
4
2.3k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
11k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
2.1k
Tuning GraphQL on Rails
pyama86
2
2.8k
Other Decks in Programming
See All in Programming
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
310
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
210
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
940
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
160
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
160
5分で問診!Composer セキュリティ健康診断
codmoninc
0
770
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
380
Music & Morning Musume
bryan
47
7.3k
Amusing Abliteration
ianozsvald
1
240
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Are puppies a ranking factor?
jonoalderson
1
3.7k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
41k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Fireside Chat
paigeccino
42
4k
Accessibility Awareness
sabderemane
1
170
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
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.