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

More Decks by ニフティ株式会社

Other Decks in Programming

Transcript

  1. Copyright ©NIFTY Corporation All Rights Reserved.
    カスタマーサポートの信頼性向上
    〜社内ツールにおけるSRE活動〜
    インフラシステムグループ 情報システムチーム
    仲上 浩豪

    View full-size slide

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

    View full-size slide

  3. 仲上 浩豪(ナカガミ ヒロトシ)
    入社:2021年4月 新卒入社(3年目)
    所属:インフラシステムグループ 情報システムチーム
    担当:カスタマーサポート向けツールの開発・保守/運用
    趣味:筋トレ・ドライブ
    自己紹介
    Copyright © NIFTY Corporation All Rights Reserved. 3

    View full-size slide

  4. 今日の話
    Copyright © NIFTY Corporation All Rights Reserved. 4
    カスタマーサポートのツールにSLI/SLOを導入した話
    ● お客様の登録情報を確認するツール
    ○ 仮称:CWEB
    ● 具体的な手法
    ○ SLI/SLOの設計
    ○ ログからメトリクスを作成する
    方法
    ○ 使用したツール

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. システム紹介
    Copyright © NIFTY Corporation All Rights Reserved. 7
    お客様登録情報確認ツール(仮称:CWEB)

    View full-size slide

  8. システム紹介
    Copyright © NIFTY Corporation All Rights Reserved. 8
    CWEBの課題
    CWEB
    ● 可観測性が低い
    ○ ログはすべてサーバ内
    ○ レイテンシなどは取得していない
    ○ サーバー監視のみ
    ■ 死活監視
    ■ リソース監視
    ○ 報告ベースでの対応

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. アクション
    Copyright © NIFTY Corporation All Rights Reserved. 12
    CWEBの(クリティカル)ユーザージャーニーを考える
    CWEBのクリティカルユーザージャーニー
    ● お客様情報の確認
    ● 契約コースの確認
    ● オプションの契約状況確認
    ● 請求明細、決済ステータスを確認

    View full-size slide

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

    View full-size slide

  14. 用語説明
    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%

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. アクション
    Copyright © NIFTY Corporation All Rights Reserved. 24
    監視ツールの選

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  27. アクション
    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"
    }

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. アクション
    Copyright © NIFTY Corporation All Rights Reserved. 30
    ログのメトリクス化(可用性)
    ● ログを1分間隔で区切り、データセットを作成
    ● 各データセットの数(総アクセス数)をカウント
    ● 各データセットの悪いイベントの数(エラー画面数)をカウント
    (総アクセス数-エラー画面表示
    数)
    総アクセス数
    × 100 [%]

    View full-size slide

  31. アクション
    Copyright © NIFTY Corporation All Rights Reserved. 31
    ダッシュボードの整備

    View full-size slide

  32. やってみた結果
    Copyright © NIFTY Corporation All Rights Reserved. 32
    ● システムの状況が一目でわかるようになった
    ● SLOベースのアラートが上がるようになった
    副産物
    ● システムの目指すべきところが明らかになった

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  35. まとめ
    Copyright © NIFTY Corporation All Rights Reserved. 35
    ● 社内ツールにSLI/SLOを導入してみた
    ● ログは構造化しましょう
    ● 社内ツールでもSLI/SLOの設定は有効

    View full-size slide