Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

決済サービスの監視を支えるElastic Stack

31,043 views

Published on

Elastic{ON} TOUR Tokyo 2017 ユーザ事例紹介 発表資料

"膨大な取引データ、サービス提供状態の可視化やElastic Machine Learningによる異常検知の仕組化など年間取扱額2兆円を超える決済システムを支えるElastic活用事例をお話しします。
またシステムリソース以外のビジネスデータの可視化についても取り上げます。"

Elasticsearch elasticsearch elastic elasticon

Published in: Software
  • Be the first to comment

決済サービスの監視を支えるElastic Stack

  1. 1. 1 2017/12/14 ソフトバンク・ペイメント・サービス株式会社 鈴木順也 @suzukij 決済サービスの 監視を支える Elastic Stack
  2. 2. 2 自己紹介 ソフトバンク・ペイメント・サービス株式会社に在籍 鈴木順也 ( @suzukij) Java, Webシステムなプログラマ Elasticsearch + Kibana は可視化目的で2年ほど 主な業務 • 新規サービスの開発 • 運用の改善 • 業務の効率化
  3. 3. 3 ソフトバンクグループの決済分野における中核事業会社です 会社紹介 – ソフトバンク・ペイメント・サービス SoftBank Group 決済・金融 インターネット コンテンツ その他 海外投資 通信
  4. 4. 4 ソフトバンク携帯ユーザー向けの「ソフト バンクカード」のカード発行・運営をして います。 ソフトバンクカードは、Visa加盟店で利 用できるプリペイドカードです。ご利用 金額に応じてTポイントが貯まります。 カード発行業務 決済代行 EC運営事業者さま向けにオンライン決済事 業を運営しています。豊富な決済手段をまと めてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメ ンバーシップライセンスを保有しており、各ブランド のアクワイアラー(クレジットカード加盟店契約会 社)としての加盟店審査や管理事業、端末決 済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク携帯 ユーザー向けの通話料合算請求「ソフ トバンクまとめて支払い」の開発・運営 をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 決済代行からカード事業まで幅広く展開 事業内容
  5. 5. 5 ソフトバンク携帯ユーザー向けの「ソフト バンクカード」のカード発行・運営をして います。 ソフトバンクカードは、Visa加盟店で利 用できるプリペイドカードです。ご利用 金額に応じてTポイントが貯まります。 カード発行業務 決済代行 EC運営事業者さま向けにオンライン決済事 業を運営しています。豊富な決済手段をまと めてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメ ンバーシップライセンスを保有しており、各ブランド のアクワイアラー(クレジットカード加盟店契約会 社)としての加盟店審査や管理事業、端末決 済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク携帯 ユーザー向けの通話料合算請求「ソフ トバンクまとめて支払い」の開発・運営 をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 決済代行からカード事業まで幅広く展開 事業内容
  6. 6. 6 オンライン決済サービスの監視 • サービス状況を可視化してみた話 • Machine Learningを導入してみた話 1 今日お話しすること ビジネスデータの可視化 • 営業部門の実績やHP閲覧状況を可視化してみた話 2
  7. 7. 7 オンライン決済サービスの監視
  8. 8. 8 オンライン決済サービス 加盟店 決済手段 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化 チケット ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 画面リンク型 API型 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社当社
  9. 9. 9 オンライン決済サービス 加盟店 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 チケット ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 決済手段 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 決済サービス 全て一本化 画面リンク型 API型 当社当社 多彩な決済手段を一括で導入可能 手続きコスト、開発コストを削減
  10. 10. 10 加盟店 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 チケット サービスの規模感 ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 決済手段 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 決済サービス 全て一本化 画面リンク型 API型 当社当社決済手段 40 種以上に対応
  11. 11. 11 決済手段 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 サービスの規模感 加盟店 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 チケット ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 決済サービス 全て一本化 画面リンク型 API型 当社当社導入実績 79,568 店舗 ※2017年度10月
  12. 12. 12 加盟店 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 チケット サービスの規模感 ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 決済手段 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 年間実績 取扱高 2兆1,949億 円 トランザクション件数 2億4,000万 件 ※2016年度 決済サービス 全て一本化 画面リンク型 API型 当社当社
  13. 13. 13 加盟店 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 チケット オンライン決済サービス ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済APIを提供するシステム 決済手段 クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 決済サービス 全て一本化 画面リンク型 API型 当社当社 加盟店システムと決済機関システムをつなぐ 自社だけでは完結しないWebシステム
  14. 14. 14 障害が発生した際に サービスの状況を関係者間で すばやく共有できていなかった システム部門 営業部門 業務部門 障害発生 アラート通知 加盟店 (お客さま) システム運用の現場で困っていたこと
  15. 15. 15 システム運用の現場で困っていたこと 加盟店 システム オンライン決済システム 決済機関 システム 障害発生 原因は?復旧対応は? ・どこのシステム?ウチ?決済機関?加盟店? システム部門
  16. 16. 16 システム運用の現場で困っていたこと 加盟店 システム オンライン決済システム 決済機関 システム 障害発生 原因は?復旧対応は? ・どこのシステム?ウチ?決済機関?加盟店? システム部門 全体の状況はどうなってる? 現時点のユーザ影響は? 社内に周知しないと。
  17. 17. 17 システム運用の現場で困っていたこと いつから?どの程度のユーザ影響? ・どこの決済機関? ・どこの加盟店? 営業部門 業務部門 加盟店 システム オンライン決済システム 決済機関 システム 障害発生
  18. 18. 18 システム運用の現場で困っていたこと いつから?どの程度のユーザ影響? ・どこの決済機関? ・どこの加盟店? 営業部門 業務部門 加盟店 システム オンライン決済システム 決済機関 システム 障害発生 なるべく早く加盟店へ報告したい
  19. 19. 19 システム運用の現場で困っていたこと サービスの状況をリアルタイムでパッと把握したい 加盟店 システム オンライン決済システム 決済機関 システム 障害発生 営業部門 業務部門 システム部門 サービスの状況をリアルタイムでパッと把握したい
  20. 20. 20 サービス全体の状況をリアルタイムで可視化 状況の急変をすばやく把握 ‒いつから?現在の状況は? ‒対象の加盟店は? ‒対象の決済手段は? ‒正常とエラーの比率は? やったこと Kibanaの ダッシュボードで表現
  21. 21. 21 Elasticsearchへのデータ投入 RDB Logstash jdbc-input-plugin 1分間隔でSQLを実行 結果をelasticsearchに投入 オンライン 決済サービス Logstash Elasticsearch Kibana
  22. 22. 22 決済サービスの監視ダッシュボード 意識したこと •だれでも •いつでも •どこでも •かんたんに 確認が可能であること
  23. 23. 23 決済サービスの監視ダッシュボード
  24. 24. 24 決済サービスの監視ダッシュボード 決済手段ごとにエリアグラフを配置 グラフはシンプルに Green: 決済トランザクション OK Red: 決済トランザクション NG クレジットカード クレジットカード 3Dセキュア 携帯キャリアB決済携帯キャリアA決済 携帯キャリアC決済 アカウント連携決済 クレジットカード与信
  25. 25. 25 決済サービスの監視ダッシュボード クレジットカード クレジットカード 3Dセキュア 携帯キャリアB決済携帯キャリアA決済 携帯キャリアC決済 アカウント連携決済 クレジットカード与信 確認したいこと ✔ 各決済手段ごと ✔ OK / NGの比率 ✔ 時系列の推移
  26. 26. 26 決済サービスの監視ダッシュボード 誰でもわかるルール 1. グリーンが急激に少なくなったら要注意 2. レッドが急激に多くなったら要注意
  27. 27. 27 決済サービスの監視ダッシュボード(障害時) 誰でもわかるルール 1. グリーンが急激に少なくなったら要注意 2. レッドが急激に多くなったら要注意
  28. 28. 28 決済サービスの監視ダッシュボード(障害時) 誰でもわかるルール 1. グリーンが急激に少なくなったら要注意 2. レッドが急激に多くなったら要注意
  29. 29. 29 決済方法別、加盟店別トランザクション 加盟店名のタグクラウド 商品名のタグクラウド クレジット 加盟店別
  30. 30. 30 決済方法別、加盟店別トランザクション 加盟店名のタグクラウド 商品名のタグクラウド クレジット 加盟店別 クレジットのトランザクション量の急増 加盟店の特定 商品名の特定
  31. 31. 31 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 クレジットカード与信(不正与信)
  32. 32. 32 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 大量の与信NGを確認 クレジットカード与信(不正与信)
  33. 33. 33 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 クレジットカード与信(不正与信) 加盟店を特定
  34. 34. 34 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 エラーコードの確認 ・カード番号 誤り ・有効期限 誤り ・取扱不可 クレジットカード与信(不正与信)
  35. 35. 35 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 3ユーザから大量の与信 クレジットカード与信(不正与信)
  36. 36. 36 顧客コード カード番号ハッシュ値 結果別 加盟店別 エラーコード別 大量のカード番号 クレジットカード与信(不正与信)
  37. 37. 37 職場のモニターにダッシュボードを常時表示 “なんとなく” で見れる状態 • 思わぬ気付きを得る ‒ 障害、不正利用 • 周囲の関心を引く ‒ 他チームへの展開 ※v6.0 からフルスクリーンモード
  38. 38. 38 アラートが鳴ったらすぐに確認したい Kibanaはスマートフォンに非対応 ⇒ 結局PCでKibanaを開く必要 ⇒ Kibanaのログイン、操作が面倒 (そもそもログインすらしない人も… orz) 職場以外でのダッシュボードの確認
  39. 39. 39 5分間隔Selenium Kibanaダッシュボードの スクリーンショットをSlackに投げる 工夫:ダッシュボード画像をSlack通知
  40. 40. 40 誰でも いつでも どこでも サービスの状況を把握できるように • 障害以外でも加盟店の変化に気付くように(爆売れ、不正利用) • 決済トランザクションデータへの関心が高まった 取り組みの効果
  41. 41. 41 Machine Learning
  42. 42. 42 導入背景 簡単そう、おもしろそう 今年7月にトライアルで導入 対象はオンライン決済サービス
  43. 43. 43 疑問 簡単に使えるの? ちゃんと検知してくれるの? 1 2
  44. 44. 44 実施例 決済トランザクション数 Single Metric
  45. 45. 45 Single Metric 実施例 決済トランザクション数 3周期で学習
  46. 46. 46 Single Metric 実施例 決済トランザクション数 学習した内容をもとに予測
  47. 47. 47 実施例 決済トランザクション数 Single Metric 予測範囲から外れた異常を検出 毎月1日は与信枠が開放されるため決済 サービスの利用が大きく上がる
  48. 48. 48 ジョブ作成 決済トランザクション数 Multi Metric Job
  49. 49. 49 ジョブ作成 決済トランザクション数 Multi Metric Job Fields 決済OK数、NG数の合計を 対象に設定
  50. 50. 50 ジョブ作成 決済トランザクション数 Multi Metric Job Split Data 決済方法で分割
  51. 51. 51 ジョブ作成 決済トランザクション数 Multi Metric Job Key Fields インフルエンサーとして 加盟店や商品名を設定 異常の要因となった値を表示してくれる
  52. 52. 52 ジョブ作成 決済トランザクション数 Multi Metric Job ジョブ作成はこれだけ かんたん
  53. 53. 53 検知 与信結果 NG数の異常
  54. 54. 54 検知 与信結果 NG数の異常
  55. 55. 55 検知 与信結果 NG数の異常 決済手段:クレジットカード
  56. 56. 56 検知 与信結果 NG数の異常 異常の要因となった加盟店
  57. 57. 57 検知 与信結果 NG数の異常 異常の要因となったエラーメッセージ
  58. 58. 58 検知 与信結果 NG数の異常 通常の18倍以上のエラー数
  59. 59. 59 ダッシュボード上での表示内容 加盟店全体 対象加盟店のみ でフィルタ 決済の不正利用であることを確認
  60. 60. 60 ダッシュボード上での表示内容 加盟店全体 対象加盟店のみ でフィルタ 加盟店全体で見ると NGが埋もれてしまっている MLだからこそ発見できた不正利用
  61. 61. 61 検知結果の通知 X-Pack の Watcher を使用して Slack へ通知 Slack Bot(アラートをトリガー) MLダッシュボード画像をPOST
  62. 62. 62 Machine Learning を使用してみて かんたんに使えるの? • 簡単なジョブ登録(異常検知に特化、教師なし機械学習) • Kibanaで可視化しているデータならすぐに導入可能 ちゃんと検知してくれるの? • 障害時にはほぼ検知 • 可視化しても人間では見つけられない埋蔵した異常を検知 1 2
  63. 63. 63 気付き① 母数の少ない決済手段や加盟店の場合、1人のユーザが数 回エラーを起こすだけで異常検知されてしまう。 typial: 0.0425519 actual: 5 ↑More than 100x higher 検知される回数はそれほど多くないため その都度問題がないことを確認する運用
  64. 64. 64 気付き② 同じ周期で不正利用によるリクエストが来た場合3周期目く らいから学習され反応しなくなってしまう MLでは新たな問題を発見することが目的 検出できた問題は別の手段で継続してウォッチする運用
  65. 65. 65 気付き③ Alert通知用 Watcher JSON の設定が難しい つらい アップデート毎に改善 V6.0からGUIで設定可能
  66. 66. 66 今後やりたいこと つなげたいこと 不正利用の検知 もう少し複雑なMLジョブで不正利用を検知 クレジットカードの不正利用を防止 脱しきい値 加盟店ごと、決済方法ごと、たくさんのしきい値 しきい値の属人化を防ぎたい
  67. 67. 67 X-pack Notification X-pack Database Web API Machine Learning Logstash Elasticsearch Kibana Watcher Master Data オンライン決済サービス Elastic Stack構成
  68. 68. 68 X-pack Notification X-pack Database Web API Machine Learning Logstash Elasticsearch Kibana Watcher Master Data オンライン決済サービス Elastic Stack構成 一般的なよくある構成 DataノードとMLノードを分けている点
  69. 69. 69 ビジネスデータの可視化
  70. 70. 70 背景 Elastic Stackによる可視化をシステム部門以外でも活用できないか 営業部門にヒアリング Excel管理のデータをトライアルでElastic Stackで可視化 ・営業の売上データ、契約数 ・HP閲覧状況の分析
  71. 71. 71 ダッシュボード(売上推移 – 2年分) 積み上げ棒グラフ 部署別、案件別
  72. 72. 72 ダッシュボード(営業部門 目標達成率 – 2年分) ヒートマップ 縦軸に人の名前 1マスが月ごとの目標達成率を示す
  73. 73. 73 ダッシュボード(加盟店契約 獲得状況 – 年間) リージョンマップ 加盟店所在地を都道府県別にカウント
  74. 74. 74 ダッシュボード (HPアクセス数の分析 - 週間)
  75. 75. 75 システム部門と営業部門の協力 最初は営業部門の要望を元にシステム部門でダッシュボードを作成して いたが、次第に営業部門が自力でデータ登録からVisualize、 Dashboardの作成までするようになった。
  76. 76. 76 データの取り込み 誰でもデータ登録できるようにクライアントツールを作成 ‒ Excelファイルをクライアントツールにドラッグ&ドロップするだけでデータ登録 ‒ クライアントツールはJavaFXで作成 ‒ Elasticsearchから提供されているClientライブラリを使ってBulk登録 Excelファイルの 1 sheet を 1 index として登録
  77. 77. 77 効果 • Kibanaの表現力、簡単な操作で より詳細な分析が可能に • Excelでは扱えない大きなデータも可視化、share機能で共有可能に • 非エンジニアがデータの投入からダッシュボードの作成までできるように
  78. 78. 78 本日のまとめ
  79. 79. 79 本日のまとめ • 決済サービスの状況をほぼリアルタイムで可視化 ‒ 誰でもいつでもどこでもサービス状況を把握、俯瞰できるように ‒ 既存データの活用、データの価値が高まった • Machine Learningで決済トランザクションの異常検知 ‒ 可視化だけでは埋蔵してしまう変化を新たに発見 ‒ MLが有益な機能であることを確認 ‒ 決済サービスの不正利用検知 ‒ 脱しきい値 • 可視化をビジネスデータに広げる ‒ Kibanaの表現力とかんたんな操作で様々な角度で分析 ‒ Excelでは扱えない大きなデータも可視化、共有可能 ‒ 非エンジニアがデータの投入からダッシュボードの作成まで
  80. 80. 80 Elastic Stackは膨大なデータを簡単に リアルタイム可視化できる非常に強力なプロダクト さいごに
  81. 81. 81 無償で小さく始めることができ、 まわりのニーズを確認しながら徐々に投資、規模の拡大が可能 まずは 可視化 機能追加 スケール アウト 社内 展開 すばやく成果を得る まわりの協力を得る ダッシュボード拡充 サブスクリプション購入 X-Pack ・認証認可 ・アラート ・機械学習 クラスタ構成 (ノード追加)
  82. 82. 82 さいごに Elastic Stackによる監視の可能性を今後もさぐりつつ 加盟店へのサービス品質を向上させたい 堅牢、安全、1件1円間違えない 1分1秒止まらないサービスを提供し続けたい
  83. 83. 83 ご清聴ありがとうございました
  84. 84. 84 弊社はエンジニアを募集しています 興味がある方は @suzukij まで

×