Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カスタマーサポートの信頼性向上 〜社内ツールにおけるSRE活動〜 - NIFTY Tech Day 2023

カスタマーサポートの信頼性向上 〜社内ツールにおけるSRE活動〜 - NIFTY Tech Day 2023

ニフティ株式会社

November 28, 2023
Tweet

Video


Resources

NIFTY Tech Day 2023

https://techday.nifty.co.jp/2023/

More Decks by ニフティ株式会社

Other Decks in Programming

Transcript

  1. 目次 Copyright © NIFTY Corporation All Rights Reserved. 2 自己紹介

    システム紹介 アクション まとめ 自己紹介、今日の話 登録情報検索ツール(仮称:cweb)について、cwebの課題 SLI/SLO決め、測定 わかったこと、今後の展望、まとめ
  2. 今日の話 Copyright © NIFTY Corporation All Rights Reserved. 4 カスタマーサポートのツールにSLI/SLOを導入した話

    • お客様の登録情報を確認するツール ◦ 仮称:CWEB • 具体的な手法 ◦ SLI/SLOの設計 ◦ ログからメトリクスを作成する 方法 ◦ 使用したツール
  3. システム紹介 Copyright © NIFTY Corporation All Rights Reserved. 5 なぜCWEBを選んだのか?

    お客様のご登録・ ご契約情報の確認 対応履歴・ 次アクションの登録 書面の発送
  4. システム紹介 Copyright © NIFTY Corporation All Rights Reserved. 6 なぜCWEBを選んだのか?

    お客様からの電話問い合わせ対応に必須のツールだから CWEB 起動 本人確認 お客様サポート
  5. システム紹介 Copyright © NIFTY Corporation All Rights Reserved. 8 CWEBの課題

    CWEB • 可観測性が低い ◦ ログはすべてサーバ内 ◦ レイテンシなどは取得していない ◦ サーバー監視のみ ▪ 死活監視 ▪ リソース監視 ◦ 報告ベースでの対応
  6. アクション Copyright © NIFTY Corporation All Rights Reserved. 9 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるサービス評価指標の選定 • サービス評価目標の仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  7. アクション Copyright © NIFTY Corporation All Rights Reserved. 10 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるSLIの選定 • SLOの仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  8. 用語解説 Copyright © NIFTY Corporation All Rights Reserved. 11 (クリティカル)ユーザージャーニーとは

    ユーザージャーニーとは • ユーザーがそのシステムで達成する目的 クリティカルユーザージャーニーとは • ユーザーにとって「一番価値がある」こと (クリティカル)ユーザージャーニーの決め方 • サービス概要書き出し • ユーザージャーニーを洗い出し • 優先度順に並び替える
  9. アクション Copyright © NIFTY Corporation All Rights Reserved. 12 CWEBの(クリティカル)ユーザージャーニーを考える

    CWEBのクリティカルユーザージャーニー • お客様情報の確認 • 契約コースの確認 • オプションの契約状況確認 • 請求明細、決済ステータスを確認
  10. アクション Copyright © NIFTY Corporation All Rights Reserved. 13 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるSLIの選定 • SLOの仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  11. 用語説明 Copyright © NIFTY Corporation All Rights Reserved. 14 SLI/SLOとは

    SLI (Service level indicator) サービスレベルの指標 サービスの信頼を測る物差し ex)レイテンシ、エラー率、可用性 SLO (Service level objective) サービスレベルの目標値 下回ったらインシデント ex)レイテンシ 1.0s以下 90%、1日の正常なレスポンスの割合 99.95%
  12. アクション Copyright © NIFTY Corporation All Rights Reserved. 15 候補となるSLIの選定

    社内ドキュメント SLOの作り方(やさしい) より Service SLI Type Metrics リクエスト主導型サービス 可用性 正常に処理された有効なリクエストの割合 レイテンシ しきい値よりも速く処理された有効なリクエストの割合 品質 サービスの中断なしに処理された有効なリクエストの割合 データ処理サービス 鮮度 しきい値よりも最近更新された有効なデータの割合 カバレッジ 正常に処理された有効なデータの割合 正確性 正しい出力を生成した有効なデータの割合 スループット データ処理率がしきい値よりも速い時間の割合 スケジュールされた実行サービス スキュー 予想開始時刻の許容時間内に開始される実行の割合 実行時間 許容時間内に完了した実行の割合
  13. アクション Copyright © NIFTY Corporation All Rights Reserved. 16 候補となるSLIの選定

    社内ドキュメント SLOの作り方(やさしい) より Service SLI Type Metrics リクエスト主導型サービス 可用性 正常に処理された有効なリクエストの割合 レイテンシ しきい値よりも速く処理された有効なリクエストの割合 品質 サービスの中断なしに処理された有効なリクエストの割合 データ処理サービス 鮮度 しきい値よりも最近更新された有効なデータの割合 カバレッジ 正常に処理された有効なデータの割合 正確性 正しい出力を生成した有効なデータの割合 スループット データ処理率がしきい値よりも速い時間の割合 スケジュールされた実行サービス スキュー 予想開始時刻の許容時間内に開始される実行の割合 実行時間 許容時間内に完了した実行の割合
  14. アクション Copyright © NIFTY Corporation All Rights Reserved. 17 Service

    SLI Type Metrics リクエスト主導型サービス 可用性 正常に処理された有効なリクエストの割合 レイテンシ しきい値よりも速く処理された有効なリクエストの割合 品質 サービスの中断なしに処理された有効なリクエストの割合 候補となるSLIの選定 社内ドキュメント SLOの作り方(やさしい) より クリティカルユーザージャーニー • 契約コースの確認 • オプションの契約状況確認 • 請求明細、決済ステータスを確認 画面ごとでSLOを分離
  15. アクション Copyright © NIFTY Corporation All Rights Reserved. 18 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるSLIの選定 • SLOの仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  16. アクション Copyright © NIFTY Corporation All Rights Reserved. 19 SLOの仮ぎめ

    良いイベント 有効なイベント × 100 [%] 社内ドキュメント SLOの作り方(やさしい) より
  17. アクション Copyright © NIFTY Corporation All Rights Reserved. 20 SLOの仮ぎめ(可用性)

    (総アクセス数-エラー画面表示 数) 総アクセス数 × 100 [%]
  18. アクション Copyright © NIFTY Corporation All Rights Reserved. 21 SLOの仮ぎめ(レイテンシ

    トップビュー) (総アクセス数 -レイテンシ3秒以上のアクセス) 総アクセス数 × 100 [%]
  19. アクション Copyright © NIFTY Corporation All Rights Reserved. 22 SLOの仮ぎめ(レイテンシ

    トップビュー以外) (総アクセス数 -レイテンシ1秒以上のアクセス) 総アクセス数 × 100 [%]
  20. アクション Copyright © NIFTY Corporation All Rights Reserved. 23 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるSLIの選定 • SLOの仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  21. アクション Copyright © NIFTY Corporation All Rights Reserved. 25 Datadogとは

    • 監視のSaaSサービス • 監視対象の幅が広い ◦ ログ、トレース、メトリクス • エージェントを入れるだけで使用可能 • SLOダッシュボードの作成が容易
  22. アクション Copyright © NIFTY Corporation All Rights Reserved. 26 SLI/SLOを決める

    • (クリティカル)ユーザージャーニーの検討 • 候補となるSLIの選定 • SLOの仮ぎめ 外部から観測可能な状態にする • 監視ツールの選定 • 各種設定
  23. アクション Copyright © NIFTY Corporation All Rights Reserved. 27 apacheログ整備

    172.11.11.111 - - [25/May/2023:15:57:51 +0900] processing time: 1158 us "GET /cweb/images/tab.png HTTP/1.0" 200 1824 "http://cweb.nifty.co.jp/cweb/registerinfocsm.php?tk=0&id=testID" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" 172.26.70.139 - - [25/May/2023:15:57:51 +0900] processing time: 290996 us "GET /cweb/result.php?tk=0&id=testID HTTP/1.0" 200 12699 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" { "time": "[25/Oct/2023:16:11:04 +0900]", "forwardedfor": "-", "host": "127.0.0.1", "req": "GET /backend/info?id=testID HTTP/1.1", "status": 200, "method": "GET", "uri": "/backend/info?id=testID", "body_bytes": 5861, "referer": "-", "ua": "-", "reqtime_microsec": 510302, "response_time": 0, "cache": "-", "runtime": "-", "vhost": "127.0.0.1" }
  24. アクション Copyright © NIFTY Corporation All Rights Reserved. 28 ログのメトリクス化(レイテンシ)

    • ログを15秒間隔で区切り、データセットを作成する • 作成したデータセットのP95を求める なぜP95を使うのか? • 極端な外れ値を除外し、より精度の高い統計情報にするため ※P95とは データセットにおいて、以下の条件を満たすしきい値 • 全体の95%のデータがP95以下の値を持つ • 全体の5%のデータがP95以上の値を持つ
  25. アクション Copyright © NIFTY Corporation All Rights Reserved. 29 ログのメトリクス化(レイテンシ)

    • ログを15秒間隔で区切り、データセットを作成する • 作成したデータセットのP95を求める (総アクセス数 -レイテンシ1秒以上のアクセス) 総アクセス数 × 100 [%]
  26. アクション Copyright © NIFTY Corporation All Rights Reserved. 30 ログのメトリクス化(可用性)

    • ログを1分間隔で区切り、データセットを作成 • 各データセットの数(総アクセス数)をカウント • 各データセットの悪いイベントの数(エラー画面数)をカウント (総アクセス数-エラー画面表示 数) 総アクセス数 × 100 [%]
  27. やってみた結果 Copyright © NIFTY Corporation All Rights Reserved. 32 •

    システムの状況が一目でわかるようになった • SLOベースのアラートが上がるようになった 副産物 • システムの目指すべきところが明らかになった
  28. 今後の展望 Copyright © NIFTY Corporation All Rights Reserved. 33 •

    ユーザージャーニーを見直して、システムにSLI/SLOの項目を 追加・見直しする • プロダクトオーナーと相談して、SLOをよりユーザーにそった 形にする • プロダクトのSRE成熟度向上 ◦ オンコール強化 ◦ 障害ロールプレイング
  29. 今後の展望 Copyright © NIFTY Corporation All Rights Reserved. 34 プロダクトのSRE成熟度向上

    評価項目 • オンコール対応 • サービスレベル目標 • トイルの撲滅 • ポストモーテム • 監視(モニタリング) 評価段階 L0.対応していない・考えていない L1.対応はしているが、属人化 ・場当たり的 L2.チームメンバーが反復可能 L3.ベストプラクティスに基づいた反 応
  30. まとめ Copyright © NIFTY Corporation All Rights Reserved. 35 •

    社内ツールにSLI/SLOを導入してみた • ログは構造化しましょう • 社内ツールでもSLI/SLOの設定は有効