Slide 1

Slide 1 text

© LY Corporation LINEヤフー株式会社 コーポレートIT統括本部 桶谷 直樹 Grafana k6ではじめる 負荷テスト 2025-06-05 【OSUG*OJEC合同開催】OutSystems Users Meetup in Fukuoka

Slide 2

Slide 2 text

© LY Corporation 桶谷 直樹 Oketani Naoki LINEヤフー株式会社 CIO管掌 コーポレートIT統括本部(中略)Low-code Platformチーム 2 2011 ヤフー株式会社 新卒入社 2020 セキュリティ x Kubernetes 業務やコミュニティ活動 2022 現所属に異動 OSUG・OJECで複数回の登壇 © LY Corporation

Slide 3

Slide 3 text

© LY Corporation Point 2 導入の容易さ Point 1 目的・効果 Point 3 継続的な実施 3 Grafana k6ではじめる負荷テスト 本セッションの内容

Slide 4

Slide 4 text

© LY Corporation OutSystems 11 CloudまたはODCで負荷テストを実行するには、 テストごとに開始日の5営業日以上前にOutSystemsによる認可をリクエストする必要があります。 サポートケースを開き、以下の情報を提供する必要があります。 1. 連絡先情報 2. スキャン用のIPアドレス(ソース) 3. 環境 4. テストの日時とタイムゾーン 4 注意事項 https://success.outsystems.com/ja-jp/support/security/load_and_penetration_tests_on_outsystems_cloud/

Slide 5

Slide 5 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 5 Grafana k6ではじめる負荷テスト Agenda

Slide 6

Slide 6 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 6 Grafana k6ではじめる負荷テスト Agenda

Slide 7

Slide 7 text

ミッション 「WOW」な ライフプラットフォームを創り、 日常に「!」を届ける。 めざめてから、眠りにつくその瞬間まで。 さらには非日常のひとときや、いざという非常時も。 進んでゆくあなたの毎日に、驚きと感動を提供しつづけます。 7

Slide 8

Slide 8 text

ユーザー数1 業績2 サービス提供国・地域3 従業員数4 グループ会社数5 1. Yahoo! JAPAN月間ログインユーザーID数、LINE月間アクティブユーザー数(MAU)、PayPay登録ユーザー数、ZOZOTOWN事業 年間購入者数(Yahoo!ショッピング含まず)の合算(全て2024年3月末時点) 2. 2024年3月期 数字で見るLINEヤフー グループ延べ利用者数 3.2億超 Yahoo! JAPAN 5,558万 月間ログインユーザーID数 LINE 1.95億 月間アクティブユーザー数 売上収益 1兆 8,146億円 調整後EBITDA 4,149億円 連結 約 28,000人 単独 11,000人以上 115社 3. 2023年8月時点 4. 2024年3月時点 5. グループ会社数 2024年3月時点 約 230ヶ国・地域 8

Slide 9

Slide 9 text

© LY Corporation OutSystems 11 プライベートクラウド 9 OutSystems利用状況 従業員向け社内システム 100+ 開発期間:1-3ヶ月 中小規模のアプリが大半 LINEヤフー LINEヤフーコミュニケーションズ 共同利用

Slide 10

Slide 10 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 10 Grafana k6ではじめる負荷テスト Agenda

Slide 11

Slide 11 text

© LY Corporation 11 (360°評価) 多面評価システム導入を計画 対象者 評価 評価 評価 上司 部下 同僚 業務で関わりのある社員

Slide 12

Slide 12 text

© LY Corporation FY24H1 LINEヤフーコミュニケーションズ(従業員数 1,650名)に導入した 12 多面評価システム導入 FY25H1 LINEヤフー(従業員数 11,000人以上)に展開する

Slide 13

Slide 13 text

© LY Corporation OutSystemsで、想定負荷を処理できるのか 13 負荷テストを意思決定に活用 代替案の検討は必要か どこにボトルネックがあるのか

Slide 14

Slide 14 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 14 Grafana k6ではじめる負荷テスト Agenda

Slide 15

Slide 15 text

© LY Corporation • サーバに負荷をかける前に、クライアントが悲鳴をあげないこと • インフラの負荷テストを容易に実施できること • アプリケーションの負荷テストを容易に実施できること • E2Eテスト相当のシナリオを記述できること(現在はE2Eテストを書いていないが、将来を見越して) • Playwrightと親和性が高いこと 15 負荷テストツールの選定 Grafana k6を採用

Slide 16

Slide 16 text

© LY Corporation 16 OutSystems 11 on プライベートクラウド システム構成 Load Balancer Reverse Proxy*2 OutSystems*2 単純なREST APIを作成

Slide 17

Slide 17 text

© LY Corporation 17 OutSystems 11 on プライベートクラウド 負荷テストの実施 Load Balancer Reverse Proxy*2 OutSystems*2 単純なREST APIを作成 Grafana k6

Slide 18

Slide 18 text

© LY Corporation 18 サンプルコード 1並列で30秒間、負荷をかける

Slide 19

Slide 19 text

© LY Corporation --vus 並列数 • 1 • 10 • 100 • 1,000 • 10,000 --duration 持続時間 • 10s • 30s 19 実行オプション

Slide 20

Slide 20 text

© LY Corporation 20 負荷テストの実施結果 Load Balancer Reverse Proxy*2 OutSystems*2 現時点の構成で、200-300rpsは処理できる 構成変更により、1,000rps程度まで改善できそう

Slide 21

Slide 21 text

© LY Corporation OutSystemsで、想定負荷を処理できるのか 21 多面評価システムの開発をOutSystemsで進める 負荷テストを意思決定に活用 代替案の検討は必要か どこにボトルネックがあるのか Reverse Proxy 不要 インフラ観点では可能

Slide 22

Slide 22 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 22 Grafana k6ではじめる負荷テスト Agenda

Slide 23

Slide 23 text

© LY Corporation 評価者を選定する 23 負荷テスト対象とする機能の例 社員名・部署名 社員名 部署名 user001 A部 Bチーム user002 A部 Cチーム 保存

Slide 24

Slide 24 text

© LY Corporation 24 ブラウザの開発ツールを利用して リクエストを再現した

Slide 25

Slide 25 text

© LY Corporation 25 後続処理で使用する

Slide 26

Slide 26 text

© LY Corporation 26 該当のAction/Aggregateを 修正するたびに変わる 必須項目を特定するには アプリの実装を調べる

Slide 27

Slide 27 text

© LY Corporation 27 --vus 100 --duration 60 実行オプション リクエスト Sleep 1s 100並列 60s

Slide 28

Slide 28 text

© LY Corporation 28 負荷テストの実施結果 社員名・部署名 社員名 部署名 user001 A部 Bチーム user002 A部 Cチーム 保存 中央値: 2s 90%ile: 30s

Slide 29

Slide 29 text

© LY Corporation OutSystemsで、想定負荷を処理できるのか 29 多面評価システムの開発をOutSystemsで進める 負荷テストを意思決定に活用 代替案の検討は必要か どこにボトルネックがあるのか • 一部のロジック • Reverse Proxy 不要 社員検索は要改善

Slide 30

Slide 30 text

© LY Corporation 会社概要 負荷テスト導入の背景・目的 負荷テストの実施 ~ インフラ編 ~ 負荷テストの実施 ~ アプリ編 ~ まとめ 1 3 2 4 5 30 Grafana k6ではじめる負荷テスト Agenda

Slide 31

Slide 31 text

© LY Corporation 導入の容易さ インフラは容易 アプリは手間 目的・効果 数値ベースの 意思決定 継続的な実施 課題あり 31 Grafana k6ではじめる負荷テスト まとめ

Slide 32

Slide 32 text

© LY Corporation • サーバ増強時 • DBのインデックス作成・削除時 場面 32 Grafana k6ではじめる負荷テスト 継続的な実施に向けて • PlaywrightでE2Eテスト → Grafana k6のテストシナリオに変換する • テスト対象をREST APIにする 解決アプローチ 課題 • Screenに依存するテストは壊れやすく、再利用性が低い

Slide 33

Slide 33 text

© LY Corporation References Grafana k6 ‒ https://grafana.com/docs/k6/latest/ Playwright ‒ https://playwright.dev/ 負荷試験を Playwright と k6 で刷新した話 ‒ https://zenn.dev/atamaplus/articles/ce227abc2b17dd OutSystems Cloudでの負荷テストとペネトレーションテスト ‒ https://success.outsystems.com/ja-jp/support/security/load_and_penetration_tests_on_outsystems_cloud/

Slide 34

Slide 34 text

© LY Corporation