SlideShare a Scribd company logo
1 of 152
Download to read offline
な決済サービスの
開発と 年間の歩み
ペイメントサービス株式会社
シニアアーキテクト
鈴木順也
自己紹介
主な業務
・新規サービスの開発
・運用の効率化 改善
システムの開発に従事
元々は のプログラマ
フリーランスを経て 年前に現在の会社に転職
ソフトバンク携帯ユーザー向けの
「ソフトバンクカード」のカード発行・
運営をしています。
ソフトバンクカードは、 Visa加盟店
で利用できるプリペイドカード機能
を有しております。
ご利用金額に応じて Tポイントが貯
まります。
カード発行業務
決済代行
EC運営事業者さま向けにオンライン決済
事業を運営しています。豊富な決済手段
をまとめてご提供しています。
カード加盟店業務
Visa、Mastercard、UnionPay(銀聯)のメン
バーシップライセンスを保有しており、各ブラ
ンドのアクワイアラー(クレジットカード加盟
店契約会社)としての加盟店審査や管理事
業、端末決済サービスを提供しています。
ソフトバンクと共同で、ソフトバンク
携帯ユーザー向けの通話料合算
請求「ソフトバンクまとめて支払い」
の開発・運営をしています。
キャリア決済
EC/ネット店舗
実店舗/訪問販売
決済代行からカード事業まで幅広く展開
ペイメントサービスの事業内容
ソフトバンク携帯ユーザー向けの
「ソフトバンクカード」のカード発行・
運営をしています。
ソフトバンクカードは、 Visa加盟店
で利用できるプリペイドカード機能
を有しております。
ご利用金額に応じて Tポイントが貯
まります。
カード発行業務
決済代行
EC運営事業者さま向けにオンライン決済
事業を運営しています。豊富な決済手段
をまとめてご提供しています。
カード加盟店業務
Visa、Mastercard、UnionPay(銀聯)のメン
バーシップライセンスを保有しており、各ブラ
ンドのアクワイアラー(クレジットカード加盟
店契約会社)としての加盟店審査や管理事
業、端末決済サービスを提供しています。
ソフトバンクと共同で、ソフトバンク
携帯ユーザー向けの通話料合算
請求「ソフトバンクまとめて支払い」
の開発・運営をしています。
キャリア決済
EC/ネット店舗
実店舗/訪問販売
決済代行からカード事業まで幅広く展開
ペイメントサービスの事業内容
今日お話すること
● 決済サービス システム概要
● 安定した開発 運用を支える取り組み
○ プラットフォーム 全体のアーキテクチャ
○ アーキテクチャ
○ パイプライン
○
● これまでの歩み
SpringFest 2018 登壇資料
決済システムの内製化への旅
SpringとPCFで作るクラウドネイティブなシステム開発
https://www.slideshare.net/makingx/springpcf-jsug-sfh1
関連資料
Pivotal.IO 2019 登壇資料
決済システム内製化に向けた プラットフォーム構築
PCF・BOSHによるオブザーバブルプラットフォーム
https://www.slideshare.net/DaichiKimura3/pcfbosh-156082821
アプリケーション開発チーム プラットフォームチーム
今日お話すること
● 決済サービス システム概要
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
システム概要
オンライン決済サービス
決済サービス
全て一本化
当社当社
API型
決済サービス
全て一本化
当社当社
API型
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済画面や決済 APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
システム概要
オンライン決済サービス
多彩な決済手段を一括で導入可能
加盟店の手続きコスト、開発コストを削減
決済サービス
全て一本化
当社当社
API型
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
導入実績 約 120,000 店舗
(2019年12月実績)
システム概要
オンライン決済サービス
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
当社
システム概要
オンライン決済サービス
決済サービス
全て一本化
当社当社
API型
決済手段 40 種以上に対応
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
取扱高 3兆5,361 億円
(2019年実績)
システム概要
オンライン決済サービス
決済サービス
全て一本化
当社当社
API型
加盟店 決済機関
通販サイト
ゲーム
教育
不動産
その他
電子書籍/動画
決済サービス
全て一本化
チケット
ECサイト向けに様々な決済手段を提供
加盟店に決済APIを提供するシステム
クレジット
携帯キャリア決済
コンビニ支払い
プリペイドカード
口座振替
ポイント支払い
アカウント連携決済
当社当社
API型
加盟店と決済機関の間に位置する
自社だけでは完結しない Webシステム
システム概要
オンライン決済サービス
● 安定した開発 運用を支える取り組み
➢ プラットフォーム 全体のアーキテクチャ
➢ アーキテクチャ
➢ パイプライン
➢
syslog+TLS
Logstash
Elasticsearch
Kibana
cf push
Concourse
PrometheusGrafana
git push
全体のアーキテクチャ
cf create-service
cf bind-service
Tanzu
Application Service
決済システムの内製化への旅 と で作るクラウドネイティブなシステム開発
● 安定した開発 運用を支える取り組み
➢ プラットフォーム 全体のアーキテクチャ
➢ アーキテクチャ
➢ パイプライン
➢
アプリケーション構成(同期 加盟店 ➡ 決済機関)
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
オンラインショッピングサイト
通販サイト、ゲーム、電子書籍、
チケット、不動産、その他
アプリケーション構成(同期 加盟店 ➡ 決済機関)
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
当社 決済システム
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
決済機関システム
クレジット、コンビニ支払い、キャリア決済、
プリペイドカード、その他
アプリケーション構成(同期 加盟店 ➡ 決済機関)
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Appはマイクロサービスの構成です
べてTAS上に配置
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
すべてのAppは
Java/Spring Boot で実装
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
決済機関毎のビジネスロジックが実装さ
れている へルーティング
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
加盟店や決済機関は当然、コントロール範囲外
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Hystrix
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
Hystrix
Hystrix
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
システム間通信には Hystrix という
Circuit Breakerを導入
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
Circuit Breakerがない状態で
決済機関Aで障害が発生した場合…
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
レスポンス遅延、タイムアウト
アプリケーション構成(同期 加盟店 ➡ 決済機関)
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
Service A に障害が伝播
処理のブロック、スレッド枯渇
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application ServiceAPI Gateway に障害が伝播
処理のブロック、スレッド枯渇
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application ServiceAPI Gateway に障害が伝播
処理のブロック、スレッド枯渇
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
決済機関A起因の障害にも関わらず
関係のない決済機関BCへ影響が出てしまう
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
Hystrix
Hystrix
Hystrix
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
Circuit Breaker があれば
特定の決済機関で障害が発生しても
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
Hystrix
Hystrix
障害の伝播を防いでくれるため
他の決済機関へ影響を及ぼす心配がない
アプリケーション構成(同期 加盟店 ➡ 決済機関)
API
Gateway
Service A
Service B
Service C
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
Hystrix
Hystrix
Circuit Brakerにより耐障害性に優
れたアプリケーションを実現
アプリケーション構成(同期 加盟店 ➡ 決済機関)
Tanzu
Application Service
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
非同期を実現するために
RabbitMQ + Spring Cloud Stream を使用
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
特定の加盟店で障害が発生した場合
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Dead Letter Queue と呼ばれるキューに
退避して、後に再送
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Circuit Breakerにより、他の加盟店に影響を
及ぼさない
Hystrix
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
2年間の運用後
年に数回DLQ行きが発生
対象メッセージのケース毎に何をしなければいけないか
運用を固めていなかったため対応が煩雑に。
頻度が低いとはいえ再送の自動化対応等を事前にして
おけばよかったと反省…
アプリケーション構成(非同期 決済機関 ➡ 加盟店)
Notification
Gateway
Receiver A
Receiver B
Receiver C
Hystrix
Hystrix
Hystrix
Tanzu
Application Service
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Hystrix
RabbitMQの運用は初だったが2年間トラブルゼロ
ノードダウンやメッセージパブリッシュの停止等は全く発生せず安定して
稼働している。
2年間の運用後
ライブラリの移行について
2018/11から
maintenance mode
Resilience4JHystrix
● CircuitBreaker
● Bulkhead
● RateLimiter
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
CircuitBreaker
決済機関のシステムエラー率が100%の
状態で2分継続したらサーキットオープン
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
エラーしきい値がデフォルト50%だが弊社
は100%に設定
どうしてエラー率50%でサーキットオープンではダメなのか?
※サーキットオープンになりにくい設定
たとえば以下のエラー率が60%の状態の場合
◆決済完了 ◆決済機関システムエラー
決済機関障害発生
どうしてエラー率50%でサーキットオープンではダメなのか?
※サーキットオープンになりにくい設定
たとえば以下のエラー率が60%の状態の場合
◆決済完了 ◆決済機関システムエラー 
◆サーキットオープンによるトランザクションエラー
決済機関障害発生
サーキットオープン
サーキットオープンによる
機会損失が発生
決済サービスでは1件でも正常に取引されているトランザクションがある限りサーキッ
トオープンにはしたくない
◆決済完了 ◆決済機関システムエラー
決済機関障害発生
決済サービスでは1件でも正常に取引されているトランザクションがある場合はサー
キットオープンしたくないとはいえ最悪の状態(100%システムエラー、レスポンスタイムアウト)では当社へ
の障害の伝播を防ぎたい
決済機関障害発生
◆決済完了 ◆決済機関システムエラー 
タイムアウトやレスポンス遅延に
よる障害伝播の恐れ
決済サービスでは1件でも正常に取引されているトランザクションがある場合はサー
キットオープンしたくないとはいえ最悪の状態(100%システムエラー、レスポンスタイムアウト)では当社へ
の障害の伝播を防ぎたい
◆決済完了 ◆決済機関システムエラー 
◆サーキットオープンによるトランザクションエラー
決済機関障害発生
サーキットオープンにより即エラーを
返すことで障害伝播を防ぐ
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
Bulkhead(並列処理数の制限)
同時接続数が設定値を超過したらリジェクト
API
Gateway
Service A
Service B
Service C
加盟店 A
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
決済機関 C
Tanzu
Application Service
Bulkhead
同時接続数が設定値を超過したらリジェクト
Tanzu
Application Service
Service A 決済機関 A
1
2
3
4
5
Tanzu
Application Service
Service A 決済機関 A
1
2
3
4
5
ウチのシステムは負荷に弱いので
同時接続数 5 でお願いします
Tanzu
Application Service
Service A 決済機関 A
Bulkhead
Bulkheadの並列実行数に5を設定した場合、
決済機関Aへの同時接続数 5本が上限となる
同時接続数が5以上はリジェクトとして扱われる
1
2
3
4
5
Tanzu
Application Service
Service A 決済機関 A
1
2
3
4
5
Bulkheadの設定を導入し
決済機関に限界以上の負荷を与えないように
追加開発の新規アプリケーションから
WebClientで実装、リリース済
RestTemplateのJavadoc
「メンテナンスモードのためWebClientの使
用を検討してください」
※RestTemplateはまだ非推奨とはなっていない
移行で発生した問題1
● 接続タイムアウト、Read/Writeタイムアウトの設定
○ reactor-nettyのTcpClientにそれぞれタイムアウトを設定
移行で発生した問題2
● レスポンスのサイズが256KBを超過すると例外が発生
○ codecsのmaxInMemorySizeを設定
org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer
移行で発生した問題3
● ファイルディスクリプタのリークが発生
○ Spring Boot v2.2.8 / v2.3.1の問題(Reactor Netty v0.9.8の不具合)
⇒ Spring Bootのv2.2.9 / v2.3.2のアップデートで解消
https://github.com/spring-projects/spring-boot/issues/21923
Caused by: io.netty.channel.ChannelException: io.netty.channel.unix.Errors$NativeIoException:
newSocketStream(..) failed: Too many open files
2.3.2 2.3.1
WebFluxは一切使用しておらずWebClientはブロッキングして使
用しているものの RestTemplate と同等のパフォーマンスが出て
いることが確認できたため移行した。
2020/8から現在まで本番環境で稼働しているが
問題は一切発生していない状態。
Spring MVCを使っている場合、並行リクエストが多用されていな
いのであれば移行の恩恵はあまりないためRestTemplateが非推
奨にならない限りは急ぐ必要はない印象。
開発体制
API
Gateway
Service A
Service B
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
Tanzu
Application Service
新規機能は方式検討から
実装、テストまで内製
開発体制
API
Gateway
Service A
Service B
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
Tanzu
Application Service
Service C 決済機関 C
開発体制
API
Gateway
Service A
Service B
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
Tanzu
Application Service
Service C 決済機関 C
似た機能の展開は
外部ベンダさんに依頼
開発体制
API
Gateway
Service A
Service B
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
Tanzu
Application Service
Service C 決済機関 C
似た機能の展開は
外部ベンダさんに依頼
Service D 決済機関 D
開発体制
API
Gateway
Service A
Service B
加盟店 X
加盟店 Y
加盟店 Z
決済機関 A
決済機関 B
Tanzu
Application Service
Service C 決済機関 C
Service D 決済機関 D
外部ベンダさんの協力を得ながらサービスを横展開す
ることができた。
自分達は新規技術や新方式を採用したアプリケーショ
ンの検証/開発に注力することができた。
決済システムの内製化への旅 と で作るクラウドネイティブなシステム開発
● 安定した開発 運用を支える取り組み
➢ プラットフォーム 全体のアーキテクチャ
➢ アーキテクチャ
➢ パイプライン
➢
パイプライン
Concourse
https://concourse-ci.org/
https://concourse-ci.org/
Concourse
パイプライン
ジョブ一覧画面
パイプライン画面
パイプライン全体のジョブ構成
ジョブ設定は YAMLファイル で管理
パイプライン画面
- task: mvn-test
config:
platform: linux
image_resource:
type: registry-image
source:
repository: maven
tag: 3-jdk-11
inputs:
- name: repo
caches:
- path: repo/m2
run:
path: bash
args:
- -c
- |
set -e
cd repo
rm -rf ~/.m2
ln -fs $(pwd)/m2 ~/.m2
mvn test
リポジトリの更新がトリガ
パイプライン画面
パイプライン画面
パイプライン画面
開発から本番リリースまでのパイプライン
テスト環境
開発環境
本番環境
開発から本番リリースまでのパイプライン
テスト環境
開発環境
本番環境
各種ブランチへの更新がトリガ
開発から本番リリースまでのパイプライン
テスト環境
開発環境
本番環境
Javaの各種バージョンでテスト
アップデートの弊害を早めに検知
開発から本番リリースまでのパイプライン
テスト環境
開発環境
本番環境
SonarQubeによるコード解析
コードの品質をいつでも確認できるようにしておく
開発から本番リリースまでのパイプライン
開発環境
本番環境
テスト環境
開発から本番リリースまでのパイプライン
開発環境
本番環境
テスト環境
開発から本番リリースまでのパイプライン
開発環境
本番環境
テスト環境
CIによる開発サイクル
開発から本番リリースまでのパイプライン
開発環境
本番環境
テスト環境
masterブランチへのマージで
Nexus RELEASEリポジトリへデプロイ
本番環境リリースへの準備が完了
開発から本番リリースまでのパイプライン
本番環境
ワンクリックリリースによるCD
Nexusのリリースリポジトリの成果物が本番環境に適用される
Blue-Green Deployによってサービスへの影響なくリリースが可能
開発から本番リリースまでのパイプライン
本番環境
トラブル時の切り戻しの際も数クリックのみの対応
※幸いにも まだやったことないです
開発から本番リリースまでのパイプライン
本番環境
リリースや切り戻し手順がシンプルなため
テレワークで自宅からもリリースが可能
によるパフォーマンステスト
API
Gateway
Service A
Service B
Service C
決済機関 B
Mock
決済機関 A
Mock
決済機関 C
Mock
Tanzu
Application Service
●
●
によるパフォーマンステスト
想定の 倍のスループットを目標
問題 原因
スレッドプールが枯渇 スレッドプール数の設定ミス
HTTP送信時にスループットが上がらない
の
のプール数の設定漏れ
の実行時のスループットが上がらない コネクションプールの設定ミス
Circuit Breakerの想定外のサーキットオープン のチューニングミス
のメッセージキューイングが停止 のメモリ枯渇(スケールアップ対応)
の のスループットが上がらない のワーカースレッド数が不足
アプリケーション全体の負荷限界 アプリケーションインスタンス数の不足
※ というか のおかげで のチューニングは不要だった
 (いつも必ず対応するやつ)
週間 時間
開発期間中にはJMeterによるロードテストとE2Eテストを毎日自動で実行
し、結果のスクリーンショットをSlackで通知
Report html
cf push
パフォーマンステストは開発期間中に何度も繰り
返し実行して改善を続けることが大事
決済システムの内製化への旅 と で作るクラウドネイティブなシステム開発
● 安定した開発 運用を支える取り組み
➢ プラットフォーム 全体のアーキテクチャ
➢ アーキテクチャ
➢ パイプライン
➢
※Metrics, tracing, and logging 
https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
※Metrics, tracing, and logging 
https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
※Metrics, tracing, and logging 
https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
※Metrics, tracing, and logging 
https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
の監視
● 全 のメトリクス
● 全コンテナのメトリクス
● の各コンポーネントのメトリクス
● ミドルウェアのメトリクス
○
の監視
● 全 アプリ のメトリクス
での監視対象
30種以上のダッシュボード
Micrometer
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
開発者はPrometheusの設定を意識することは
なくリリースしたら自動でアプリケーションを監視
する仕組み
今までログから可視化していた情報が
Grafanaでいつでも確認可能に
・CPU
・ヒープ(各領域ごと)
・スレッド
・GC(回数、時間)
・クラスローダ
・DBコネクションプール
(アクセスログ)
アクセスログ一覧
レスポンスタイム
Percentile
アプリ別
アクセス数
ステータスコード別
アクセス数
レスポンスタイム
AVG
(アクセスログ)
(アプリケーションログ)
ログレベル別
ログ出力数
アプリケーションログ一覧
アプリ別
ログ出力数
(アプリケーションログ)
開発者は Elastic Stack
を意識せず、標準出力にログを出力
するだけで良い。
(アプリケーションログ)
( ロギングの活用)
( )で
アプリケーションログのフォーマットを統一 構造化
は で管理しやすいログの定義 仕様のこと
アプリの場合、依存を追加するだけでアプリケーション
ログをいい感じに構造化した フォーマットのログにしてくれ
る。
あとはそのままログを に突っ込むだけ。
※ECS Logging Java Reference 
https://www.elastic.co/guide/en/ecs-logging/java/current/index.html
( ロギングの活用)
( )で
アプリケーションログのフォーマットを統一 構造化
は で管理しやすいログの定義 仕様のこと
アプリの場合、依存を追加するだけでアプリケーション
ログをいい感じに構造化された フォーマットのログにしてくれ
る。
あとはそのままログを に突っ込むだけ。
※ECS Logging Java Reference 
https://www.elastic.co/guide/en/ecs-logging/java/current/index.html
ecs-logging-java
<dependency>
<groupId>co.elastic.logging</groupId>
<artifactId>log4j2-ecs-layout</artifactId>
<version>${ecs-logging-java.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
( ロギングの活用)
ecs-logging-java
<dependency>
<groupId>co.elastic.logging</groupId>
<artifactId>log4j2-ecs-layout</artifactId>
<version>${ecs-logging-java.version}</version>
</dependency>
※実装がLogback, Log4j2, Log4j, JUL, JBoss Log Manager から選択できるがLog4j2だと構造化ロギングに対
応してるので良さそう。
( ロギングの活用)
例外情報もきちんと構造化
タイムスタンプ
ホスト名
ログレベル
ログメッセージ
スレッド名
例外クラス
例外メッセージ
スタックトレース
( ロギングの活用)
ログレベル別
ログ出力数
ログレベル別
( ロギングの活用)
アプリケーション別
ログ出力数
アプリケーション別
( ロギングの活用)
Exceptionクラス別
ログ出力数
Exceptionクラス別
開発中のDB failoverテスト
( ロギングの活用)
WARNレベル/ERRORレベルのロ
グ出力数が増加
一時的に例外が発生
その後、自動的に復旧
その後、例外の発生なし
開発中のDB failoverテスト
( ロギングの活用)
( ロギングの活用)
決済結果別 HTTPステータス別
決済手段別 加盟店別
ユーザエージェント別 API別リモートIP別
処理時間エラーコード別
( ロギングの活用)
リッチなダッシュボードを実現
求めるダッシュボードから逆算してロギン
グ設計をする
Spring Cloud Sleuthによって
アプリログに出力される
トレースIDで検索可能
複数のサーバにまたがる処理でも、
どこの通信やSQLに時間がかかっていたか一目でわ
かる
Zipkin, Spring Cloud Sleuth
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
※Spring Boot v2.4.0以降は spring-cloud-sleuth-zipkin
spring.sleuth.sampler.probability: 1.0
Zipkin, Spring Cloud Sleuth
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
※Spring Boot v2.4.0以降は spring-cloud-sleuth-zipkin
spring.sleuth.sampler.probability: 1.0
Zipkinにトレースを送信する割合
本番環境でも 1.0 (100%) を指定している
Zipkinのデータストアに
Elasticsearchを指定してKibanaで
独自ダッシュボードを作成
処理時間がかかっているリクエストを特定
特定したリクエストのトレースIDをクリックすると
Zipkinへジャンプ
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
内部システムがAPI-Gatewayを呼び出して応
答されるまでの時間が長い(6.98秒)
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
API-GatewayがServiceAを呼び出して応答さ
れるまでの時間が長い(6.56秒)
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
ServiceAが決済機関を呼び出して応答を待つ
時間が長い(6.53秒)
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
原因は決済機関のレスポンス待ち
全体の処理時間 6.98秒に対して6.53秒を要
していたことが視覚的に把握できる
APIGateway
ServiceA
決
済
機
関
内
部
シ
ス
テ
ム
Zipkinのおかげで分散してしまっている各アプリケー
ションのログからトレースを追わずに済み、効率良く調
査ができるようになった
サービス目線のモニタリング
決済手段毎の
OK数 / NG数を表示
サービス目線のモニタリング
決済手段毎の
OK数 / NG数を表示
サービス目線のモニタリング
決済数
取扱高
前日比・傾向
内訳
分類
サービス目線のモニタリング
決済数
取扱高
前日比・傾向
内訳
分類
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
加盟店へリアルタイムに状況を共有、
さらには加盟店自身も見落としていた障害を検知
サービス目線のモニタリング
サービス目線のモニタリング
決済数
取扱高
前日比・傾向
内訳
分類
アプリをリリースするだけで
プラットフォームが自動で監視対象に
Metrics
Logging
Tracing
+ Biz
● これまでの歩み
プラットフォーム導入の効果
Before After
Release リリース作業 手作業 ワンクリック
リリース品質 人為的なミスの可能性あり 自動化によりミスなし
リリース時間 45分 5分
Observability ログ調査 ログファイルから調査 Kibanaダッシュボード
サーバメトリクス調査 ログファイルから調査 Grafanaダッシュボード
トレース調査 なし Zipkinダッシュボード
Resilience 障害時の自動復旧 なし 自動再起動
スケールアウト 手作業 管理画面から数クリック
アーキテクチャのアップデート
サービス開始時 2年経った現在
PaaS Platform
Java Java 8 Java 11
Spring Boot v2.1.2 v2.3.5
Spring Cloud Greenwich.
RELEASE
Hoxton.SR8
ライブラリ Http Client RestTemplate WebClient
ライブラリ CircuitBreaker Hystrix Resilience4J
サービスの広がり
サービス開始時 2年経った現在
システム数
1システム 3システム ⤴
App数
12アプリケーション 22アプリケーション ⤴
Appインスタンス数
45インスタンス 57インスタンス ⤴
プラットフォーム運用者数
2名 3名 ➝
アプリケーション開発者数
4名 15名(開発ベンダ2社 6名含む) ⤴
このシステムの障害件数 -
0件
本日のまとめ
技術的なアップデートをしながらサービスの拡張や機能追加がで
きている。
まとめ
自分たちのシステムをプラットフォームから構築しサービスの運
用開始から 年間、大きな障害もなく運用することができた。
リリース作業やログ調査も非常に効率良く運用できている。
さいごに
サービス開始から2年間、大きな障害もなく運用することができ
ましたが、歩みを止めることなく加盟店/エンドユーザの方々に
高い品質のサービスを提供したい。
堅牢、安全、1件1円間違えのない、
障害に強いシステムを目指して
ご清聴ありがとうございました
SBペイメントサービスは
エンジニアを募集しています
興味がある方は   @suzukijまで
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4

More Related Content

What's hot

PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本kazuki kumagai
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方Recruit Lifestyle Co., Ltd.
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のりRecruit Lifestyle Co., Ltd.
 

What's hot (20)

PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
 

Similar to CloudNativeな決済サービスの開発と2年間の歩み #sf_A4

決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynoteJunya Suzuki
 
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライドKeisuke Kishida
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点についてdcubeio
 
210303 jp stripes connect deep-dive
210303 jp stripes   connect deep-dive210303 jp stripes   connect deep-dive
210303 jp stripes connect deep-diveNoz Sasaoka
 
オープン API と Authlete のソリューション
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューションTatsuo Kudo
 
マネーフォワード クラウド経費サービス資料
マネーフォワード クラウド経費サービス資料マネーフォワード クラウド経費サービス資料
マネーフォワード クラウド経費サービス資料Money Forward, Inc.
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月VirtualTech Japan Inc.
 
PayPalとセキュリティの関係について
PayPalとセキュリティの関係についてPayPalとセキュリティの関係について
PayPalとセキュリティの関係についてJunichi Okamura
 
Payment flow0.7a
Payment flow0.7aPayment flow0.7a
Payment flow0.7aguest56b72f
 
DXをささえる銀行API - OpenID BizDay #13
DXをささえる銀行API - OpenID BizDay #13DXをささえる銀行API - OpenID BizDay #13
DXをささえる銀行API - OpenID BizDay #13OpenID Foundation Japan
 
20170324 html5j web_paltform_study
20170324 html5j web_paltform_study20170324 html5j web_paltform_study
20170324 html5j web_paltform_studyJunichi Okamura
 
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!API Meetup
 
Api meet up online#6 session1 ginco
Api meet up online#6 session1 gincoApi meet up online#6 session1 ginco
Api meet up online#6 session1 gincoNihei Tsukasa
 
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明株式会社ダブルスタンダード
 
Achabo septeni crossgate
Achabo septeni crossgateAchabo septeni crossgate
Achabo septeni crossgatessuser7c32e5
 
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~decode2016
 
20220419_Webinar.pdf
20220419_Webinar.pdf20220419_Webinar.pdf
20220419_Webinar.pdfKanako2
 
IT部門の企業価値を高める7つのアプローチ手法
IT部門の企業価値を高める7つのアプローチ手法IT部門の企業価値を高める7つのアプローチ手法
IT部門の企業価値を高める7つのアプローチ手法UNIRITA Incorporated
 

Similar to CloudNativeな決済サービスの開発と2年間の歩み #sf_A4 (20)

決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #cndt2019 #osdt2019 #keynote
 
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド
『第10回 豊洲の港から presents グローバルオープンイノベーションコンテスト』 東京予選ピッチスライド
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
 
210303 jp stripes connect deep-dive
210303 jp stripes   connect deep-dive210303 jp stripes   connect deep-dive
210303 jp stripes connect deep-dive
 
rease_sales.pdf
rease_sales.pdfrease_sales.pdf
rease_sales.pdf
 
オープン API と Authlete のソリューション
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューション
 
マネーフォワード クラウド経費サービス資料
マネーフォワード クラウド経費サービス資料マネーフォワード クラウド経費サービス資料
マネーフォワード クラウド経費サービス資料
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
 
PayPalとセキュリティの関係について
PayPalとセキュリティの関係についてPayPalとセキュリティの関係について
PayPalとセキュリティの関係について
 
Payment flow0.7a
Payment flow0.7aPayment flow0.7a
Payment flow0.7a
 
DXをささえる銀行API - OpenID BizDay #13
DXをささえる銀行API - OpenID BizDay #13DXをささえる銀行API - OpenID BizDay #13
DXをささえる銀行API - OpenID BizDay #13
 
20170324 html5j web_paltform_study
20170324 html5j web_paltform_study20170324 html5j web_paltform_study
20170324 html5j web_paltform_study
 
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
煩雑な本人確認(eKYC)/当人認証を銀行子会社に実施させるAPI!
 
Api meet up online#6 session1 ginco
Api meet up online#6 session1 gincoApi meet up online#6 session1 ginco
Api meet up online#6 session1 ginco
 
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明
株式会社ダブルスタンダードの各種サービスに関するOCR処理技術基盤説明
 
Achabo ver1.1
Achabo ver1.1Achabo ver1.1
Achabo ver1.1
 
Achabo septeni crossgate
Achabo septeni crossgateAchabo septeni crossgate
Achabo septeni crossgate
 
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~
DEV-015_実践! App Service 徹底活用 ~一貫したビジネスロジックの実現~
 
20220419_Webinar.pdf
20220419_Webinar.pdf20220419_Webinar.pdf
20220419_Webinar.pdf
 
IT部門の企業価値を高める7つのアプローチ手法
IT部門の企業価値を高める7つのアプローチ手法IT部門の企業価値を高める7つのアプローチ手法
IT部門の企業価値を高める7つのアプローチ手法
 

CloudNativeな決済サービスの開発と2年間の歩み #sf_A4