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
決済システムの監視を支えるElastic Stack
Search
suzukij
June 21, 2022
Programming
0
50
決済システムの監視を支えるElastic Stack
Elastic{ON} Tokyo 2017登壇資料
suzukij
June 21, 2022
Tweet
Share
More Decks by suzukij
See All by suzukij
決済システム内製化のその先に ~クラウドネイティブな開発を"スケール"させるために必要だったこと / Beyond in-house production of payment systems
suzukij
5
3.3k
決済システムの内製化への旅- SpringとPCFで作るクラウドネイティブなシステム開発 / A Journey to Developing an In-House Payment System
suzukij
0
190
A Journey to Developing an In-House Payment System / Spring One Platform 2019
suzukij
0
44
決済システムの内製化への旅- SpringとTASで作るクラウドネイティブなシステム開発
suzukij
0
51
CloudNativeな決済サービスの 開発と2年間の歩み
suzukij
0
91
Other Decks in Programming
See All in Programming
Tauriでネイティブアプリを作りたい
tsucchinoko
0
360
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
4
1.1k
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
420
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.3k
EventSourcingの理想と現実
wenas
6
2.3k
subpath importsで始めるモック生活
10tera
0
120
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
3
1.1k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
280
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
560
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.4k
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
780
macOS でできる リアルタイム動画像処理
biacco42
9
2.3k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
520
39k
How GitHub (no longer) Works
holman
310
140k
Unsuck your backbone
ammeep
668
57k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Building Adaptive Systems
keathley
38
2.3k
Faster Mobile Websites
deanohume
305
30k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Optimizing for Happiness
mojombo
376
70k
We Have a Design System, Now What?
morganepeng
50
7.2k
Making Projects Easy
brettharned
115
5.9k
Transcript
決済システムの監視を支える Elastic Stack SBペイメントサービス株式会社 鈴木 順也(@suzukij) 2020/11/26
SBペイメントサービス株式会社 シニアアーキテクト 鈴木順也(@suzukij) 自己紹介 主な業務 ・新規サービスの開発 ・運用の効率化/改善 Javaを中心とした決済システムの開発に従事
ソフトバンクグループの決済分野における中核事業会社 会社紹介 – SBペイメントサービス SoftBank Group 決済・金融 インターネット コンテンツ その他
海外投資 通信
ソフトバンク携帯ユーザー向けの 「ソフトバンクカード」のカード発行・ 運営をしています。 ソフトバンクカードは、 Visa加盟店 で利用できるプリペイドカードです。 ご利用金額に応じて Tポイントが貯 まります。 カード発行業務
決済代行 EC運営事業者さま向けにオンライン決済 事業を運営しています。豊富な決済手段 をまとめてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメン バーシップライセンスを保有しており、各ブラ ンドのアクワイアラー(クレジットカード加盟 店契約会社)としての加盟店審査や管理事 業、端末決済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク 携帯ユーザー向けの通話料合算 請求「ソフトバンクまとめて支払い」 の開発・運営をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 SBペイメントサービスの事業内容 決済代行からカード事業まで幅広く展開
ソフトバンク携帯ユーザー向けの 「ソフトバンクカード」のカード発行・ 運営をしています。 ソフトバンクカードは、 Visa加盟店 で利用できるプリペイドカードです。 ご利用金額に応じて Tポイントが貯 まります。 カード発行業務
決済代行 EC運営事業者さま向けにオンライン決済 事業を運営しています。豊富な決済手段 をまとめてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメン バーシップライセンスを保有しており、各ブラ ンドのアクワイアラー(クレジットカード加盟 店契約会社)としての加盟店審査や管理事 業、端末決済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク 携帯ユーザー向けの通話料合算 請求「ソフトバンクまとめて支払い」 の開発・運営をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 SBペイメントサービスの事業内容 決済代行からカード事業まで幅広く展開
オンライン決済サービスの監視 • サービス状況を可視化してみた話 1 今日お話しすること Elastic Stack 活用の広がり • システム視点:ログ分析ダッシュボードの活用
• サービス視点:ダッシュボードの顧客への共有 2
オンライン決済サービスの監視
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 システム概要 オンライン決済サービス 画面リンク型
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済画面や決済 APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 システム概要 オンライン決済サービス 画面リンク型 多彩な決済手段を一括で導入可能 加盟店の手続きコスト、開発コストを削減
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 画面リンク型 導入実績 約 120,000 店舗 (2019年12月実績) システム概要 オンライン決済サービス
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 画面リンク型 決済手段 40 種以上に対応 システム概要 オンライン決済サービス
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 画面リンク型 取扱高 3兆5,361 億円 (2019年実績) システム概要 オンライン決済サービス
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 画面リンク型 加盟店と決済機関の間に位置する 自社だけでは完結しない Webシステム システム概要 オンライン決済サービス
障害が発生した際に サービスの状況を関係者間で すばやく共有できていなかった システム部門 営業部門 業務部門 アラート通知 加盟店 (お客さま) システム運用の現場で困っていたこと
障害発生
システム運用の現場で困っていたこと 加盟店 システム オンライン 決済システム 決済機関 システム 原因は? ・どこのシステム?ウチ?決済機関?加盟店? 復旧対応は?
システム部門 障害発生
システム運用の現場で困っていたこと システム部門 原因は?復旧対応は? ・どこのシステム?ウチ?決済機関?加盟店? 全体の状況はどうなってる? 現時点のユーザ影響は? 社内に周知しないと。 加盟店 システム オンライン
決済システム 決済機関 システム 障害発生
システム運用の現場で困っていたこと いつから?どの程度のユーザ影響? ・どこの決済機関? ・どこの加盟店? 営業部門 業務部門 加盟店 システム オンライン 決済システム
決済機関 システム 障害発生
システム運用の現場で困っていたこと 営業部門 業務部門 いつから?どの程度のユーザ影響? ・どこの決済機関? ・どこの加盟店? なるべく早く加盟店へ報告したい 加盟店 システム オンライン
決済システム 決済機関 システム 障害発生
システム運用の現場で困っていたこと サービスの状況をリアルタイムでパッと把握 したい 営業部門 業務部門 システム部門 サービスの状況をリアルタイムで ひと目で把握したい 加盟店 システム
オンライン 決済システム 決済機関 システム 障害発生
サービス全体の状況をリアルタイムで可視化 状況の急変をすばやく把握 ‒いつから?現在の状況は? ‒対象の加盟店は? ‒対象の決済手段は? ‒正常とエラーの比率は? やったこと Kibanaの ダッシュボードで表現
決済サービスの監視ダッシュボード 意識したこと •だれでも •いつでも •どこでも •かんたんに 確認できること
決済サービスの監視ダッシュボード
決済サービスの監視ダッシュボード 決済手段ごとにエリアグラフを配置 グラフはシンプルに Green: 決済トランザクション OK Red: 決済トランザクション NG クレジットカード
クレジットカード 3Dセキュア 携帯キャリアB決済 携帯キャリアA決済 携帯キャリアC決済 アカウント連携決済 クレジットカード与信
決済サービスの監視ダッシュボード クレジットカード クレジットカード 3Dセキュア 携帯キャリアB決済 携帯キャリアA決済 携帯キャリアC決済 アカウント連携決済 クレジットカード与信 確認したいこと
✔ 各決済手段 ✔ OK / NGの比率 ✔ 時系列の推移
決済サービスの監視ダッシュボード 誰でもわかるルール 1. グリーンが急激に少なくなったら要注意 2. レッドが急激に多くなったら要注意
決済サービスの監視ダッシュボード(障害時) 誰でもわかるルール 1. グリーンが急激に少なくなったら要注意 2. レッドが急激に多くなったら要注意
決済サービスの監視ダッシュボード(障害時)
決済方法別、加盟店別トランザクション 加盟店名のタグクラウド 商品名のタグクラウド クレジット 加盟店別
決済方法別、加盟店別トランザクション 加盟店名のタグクラウド 商品名のタグクラウド クレジット 加盟店別 クレジットのトランザクション量の急増 加盟店の特定 商品名の特定
加盟店ユーザID カード番号ハッシュ値 結果別 加盟店別 エラーコード別 クレジットカード与信(不正与信)
結果別 加盟店別 エラーコード別 クレジットカード与信(不正与信) カード番号ハッシュ値 加盟店ユーザID NG数が急増を確認
顧客コード 結果別 加盟店別 エラーコード別 クレジットカード与信(不正与信) 加盟店を特定 カード番号ハッシュ値
カード番号ハッシュ値 結果別 加盟店別 エラーコード別 エラーコードの確認 ・カード番号 誤り ・有効期限 誤り ・取扱不可カード
クレジットカード与信(不正与信) 加盟店ユーザID
結果別 加盟店別 エラーコード別 たった3ユーザから大量の与信 クレジットカード与信(不正与信) ECサイト ユーザID別
結果別 加盟店別 エラーコード別 大量のカード番号 クレジットカード与信(不正与信) カード番号ハッシュ値 加盟店ユーザID
Elasticsearchへのデータ投入(DB) RDB Logstash jdbc-input-plugin 1分間隔でSQLを実行 結果をelasticsearchに投入 Logstash Elasticsearch Kibana オンライン
決済サービス
Elasticsearchへのデータ投入(ログ) Beatsで各サーバ上の ログの内容をLogstashに送信 Logstash Elasticsearch Kibana オンライン 決済サービス Beats Beats
Beats Beats RDB Logstashでログを変換し、 Elasticsearchに登録
職場のモニターにダッシュボードを常時表示 “なんとなく” で見れる状態 • 思わぬ気付きを得る ‒ 障害、不正利用 • 周囲の関心を引く ‒
他チームへの展開
• 思わぬ気付きを得る ‒ 障害、不正利用 • 周囲の関心を引く ‒ 他チームへの展開 COVID-19問題 テレワークで職場にいない
職場のモニターにダッシュボードを常時表示 “なんとなく” で見れる状態
障害発生時に自動でKibanaダッシュボードの スクリーンショットをSlackに投稿 障害時にダッシュボード画像をSlack通知 障害検知
障害時にダッシュボード画像をSlack通知 障害検知 アラートのリンクから直接ダッシュボードへ Kibana 7.0 からスマホでもダッシュボードの確認が可能に
誰でも いつでも どこでも サービスの状況を把握できるように • 障害以外でも加盟店の変化に気付くように(爆売れ、不正利用) • 決済トランザクションデータの活用への関心が高まった 取り組みの効果
Elastic Stack 活用の広がり
その後の取り組みや事例を紹介 1. システム視点 ログ分析ダッシュボードの活用 2. サービス視点 ダッシュボードの顧客への共有 先ほど話した内容は3年前の話
システム視点:ログ分析ダッシュボードの活用 これまで データベース上の決済データのみをElastic Stackで可視 化していた。 現在 アプリケーションログやアクセスログもすべてElastic Stackに集約し、可視化されたダッシュボード上で確認を おこなう。 ⇒
開発/運用の調査効率UP、調査時間の削減
アクセスログ
アクセスログ一覧 平均レスポンスタイム アプリ別 アクセス数 ステータスコード別 アクセス数 アクセスログ
アプリケーションログ
アプリケーションログ ログレベル別 ログ出力数 アプリ別 ログ出力数 アプリケーションログ
アプリケーションログ 開発 / 運用の調査効率UP、調査時間の削減 どのようなダッシュボードでどういった監視がしたいかを検討し ながらシステムを開発するようになった
サービス視点:ダッシュボードの加盟店への共有 某チケット販売イベント 当社 システム担当者 チケット 購入者 チケット購入 オンライン 決済サービス
オンライン 決済サービス 当社 システム担当者 加盟店 担当者 数日間のイベント期間中 ダッシュボードをライブ配信 チケット 購入者
チケット購入 サービス視点:ダッシュボードの加盟店への共有 某チケット販売イベント
決済数 取扱高 前日比・傾向 内訳 分類 加盟店イベントの監視 - サービス視点(とあるチケット販売イベント) xx,xxx xxx,xxx
xx,xxx,xxx,xxx x,xxx,xxx,xxx
xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx 決済数 取扱高 前日比・傾向 内訳 分類 加盟店イベントの監視
- サービス視点(とあるチケット販売イベント)
xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx 決済数 取扱高 前日比・傾向 内訳 分類 加盟店イベントの監視
- サービス視点(とあるチケット販売イベント)
xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx 決済数 取扱高 前日比・傾向 内訳 分類 加盟店イベントの監視
- サービス視点(とあるチケット販売イベント)
決済数 取扱高 前日比・傾向 内訳 分類 xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx 加盟店イベントの監視
- サービス視点(とあるチケット販売イベント)
xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx 決済数 取扱高 前日比・傾向 内訳 分類 加盟店イベントの監視
- サービス視点(とあるチケット販売イベント)
加盟店イベントの監視 - サービス視点(とあるチケット販売イベント) XX,XXX X,XXX,XXX,XXX XXX,XXX X,XXX,XXX,XXX
加盟店イベントの監視 - サービス視点(とあるチケット販売イベント) XX,XXX X,XXX,XXX,XXX XXX,XXX X,XXX,XXX,XXX 加盟店の システム障害 加盟店の
システム障害
加盟店イベントの監視 - サービス視点(とあるチケット販売イベント) XX,XXX X,XXX,XXX,XXX XXX,XXX X,XXX,XXX,XXX 加盟店へリアルタイムに状況を共有、 さらには加盟店自身も見落としていた障害を検知
決済サービスの状況をほぼリアルタイムで可視化 誰でもいつでもどこでもサービス状況を把握できるように 既存データを可視化して活用、データの価値が高まった Elastic Stack 活用の広がり システム視点:ログ分析ダッシュボードの活用 サービス視点:ダッシュボードの顧客への共有 本日のまとめ
ご清聴ありがとうございました
弊社はエンジニアを募集しています 興味がある方は @suzukij まで
None