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
決済システムの内製化への旅- SpringとPCFで作るクラウドネイティブなシステム開発 / ...
Search
suzukij
June 25, 2022
Programming
0
190
決済システムの内製化への旅- SpringとPCFで作るクラウドネイティブなシステム開発 / A Journey to Developing an In-House Payment System
CloudNative Days Tokyo 2019登壇資料
suzukij
June 25, 2022
Tweet
Share
More Decks by suzukij
See All by suzukij
決済システム内製化のその先に ~クラウドネイティブな開発を"スケール"させるために必要だったこと / Beyond in-house production of payment systems
suzukij
5
3.3k
A Journey to Developing an In-House Payment System / Spring One Platform 2019
suzukij
0
44
決済システムの内製化への旅- SpringとTASで作るクラウドネイティブなシステム開発
suzukij
0
51
決済システムの監視を支えるElastic Stack
suzukij
0
50
CloudNativeな決済サービスの 開発と2年間の歩み
suzukij
0
91
Other Decks in Programming
See All in Programming
距離関数を極める! / SESSIONS 2024
gam0022
0
150
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
640
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
220
Ethereum_.pdf
nekomatu
0
430
受け取る人から提供する人になるということ
little_rubyist
0
210
Content Security Policy入門 セキュリティ設定と 違反レポートのはじめ方 / Introduction to Content Security Policy Getting Started with Security Configuration and Violation Reporting
uskey512
1
490
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
320
初めてDefinitelyTypedにPRを出した話
syumai
0
240
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
320
CSC509 Lecture 12
javiergs
PRO
0
140
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
280
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Agile that works and the tools we love
rasmusluckow
327
21k
Bash Introduction
62gerente
608
210k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Music & Morning Musume
bryan
46
6.2k
Ruby is Unlike a Banana
tanoku
96
11k
YesSQL, Process and Tooling at Scale
rocio
168
14k
Visualization
eitanlees
145
15k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
KATA
mclloyd
29
14k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Transcript
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 CloudNative Days Tokyo 2019 #CNDT2019 July 23
2019 Junya Suzuki (@suzukij), SB Payment Service,
[email protected]
SBペイメントサービス株式会社 シニアアーキテクト 鈴木順也(@suzukij) 自己紹介 主な業務 ・新規サービスの開発 ・運用の効率化/改善 Java, Webシステムの開発に従事 元々は
SIer のプログラマ フリーランスを経て3年前に現在の会社に転職
ソフトバンク携帯ユーザー向けの 「ソフトバンクカード」のカード発行・ 運営をしています。 ソフトバンクカードは、 Visa加盟店 で利用できるプリペイドカードです。 ご利用金額に応じて Tポイントが貯 まります。 カード発行業務
決済代行 EC運営事業者さま向けにオンライン決済 事業を運営しています。豊富な決済手段 をまとめてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメン バーシップライセンスを保有しており、各ブラ ンドのアクワイアラー(クレジットカード加盟 店契約会社)としての加盟店審査や管理事 業、端末決済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク 携帯ユーザー向けの通話料合算 請求「ソフトバンクまとめて支払い」 の開発・運営をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 決済代行からカード事業まで幅広く展開 SBペイメントサービスの事業内容
ソフトバンク携帯ユーザー向けの 「ソフトバンクカード」のカード発行・ 運営をしています。 ソフトバンクカードは、 Visa加盟店 で利用できるプリペイドカードです。 ご利用金額に応じて Tポイントが貯 まります。 カード発行業務
決済代行 EC運営事業者さま向けにオンライン決済 事業を運営しています。豊富な決済手段 をまとめてご提供しています。 カード加盟店業務 Visa、Mastercard、UnionPay(銀聯)のメン バーシップライセンスを保有しており、各ブラ ンドのアクワイアラー(クレジットカード加盟 店契約会社)としての加盟店審査や管理事 業、端末決済サービスを提供しています。 ソフトバンクと共同で、ソフトバンク 携帯ユーザー向けの通話料合算 請求「ソフトバンクまとめて支払い」 の開発・運営をしています。 キャリア決済 EC/ネット店舗 実店舗/訪問販売 決済代行からカード事業まで幅広く展開 SBペイメントサービスの事業内容
今日お話すること • 内製化に至る道のり • Pivotal Cloud Foundry を選んだ理由 • 手に入れた開発/運用のカタチ
◦ アーキテクチャ ◦ CI / CD パイプライン ◦ Observability
内製化に至る道のり
2016年当時... サービス開発は全てベンダに任せており、 コードを書く自社のエンジニアは 0人だった。 当然開発のための環境も整っていない状態だった。
2016年: システム運用の効率化を自分たちで 課題 運用の手作業が多い 手作業ゆえのミス 体制
2016年: システム運用の効率化を自分たちで Spring Boot Selenium / Selenide 課題 支援ツールを内製 導入したもの
運用の手作業が多い 手作業ゆえのミス 運用作業を自動化 開発に必要な環境を整える 体制
2016年: システム運用の効率化を自分たちで 課題 導入したもの 運用の手作業が多い 手作業ゆえのミス Spring Boot Selenium /
Selenide 支援ツールを内製 運用作業を自動化 体制 3名のエンジニアがJoin チームとして改善活動も加速
2017年: ①サービス監視の質を高める サービス状況をすば やく把握、共有ができ ていなかった 課題 体制
2017年: ①サービス監視の質を高める サービス状況をすば やく把握、共有ができ ていなかった 課題 監視用ダッシュボードを作成 導入したもの Elasticsearch Logstash
Kibana 体制
2017年: ②開発プロジェクトの支援を開始 課題 古いアーキテクチャ 開発/リリースが高コスト システム監視が困難 体制
2017年: ②開発プロジェクトの支援を開始 課題 アーキテクチャをSpringベースに 導入したもの モダンな開発 / 運用 Spring Boot
Spring Cloud 古いアーキテクチャ 開発/リリースが高コスト システム監視が困難 CIをきちんと回す支援 体制
2017年: ②開発プロジェクトの支援を開始 課題 導入したもの アーキテクチャをSpringベースに モダンな開発 / 運用 Spring Boot
Spring Cloud 古いアーキテクチャ 開発/リリースが高コスト システム監視が困難 体制 さらに1名のエンジニアがJoin
2016 - 2017年 • エンジニアチームの立ち上げ • 運用業務の改善を通してツールの内製化 • 開発案件にも支援として参加 2018年
いよいよ決済システムの内製がスタート
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 開発対象 オンライン決済サービス
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 導入実績 約 111,742 店舗 (2019年5月実績) ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム 開発対象 オンライン決済サービス 取扱高 2兆9,453 億円 (2018年実績)
加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画 決済サービス 全て一本化
チケット クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 API型 決済手段 40 種以上に対応 ECサイト向けに様々な決済手段を提供 加盟店に決済APIを提供するシステム 開発対象 オンライン決済サービス
開発対象 オンライン決済サービス 加盟店 決済機関 通販サイト ゲーム 教育 不動産 その他 電子書籍/動画
決済サービス 全て一本化 チケット クレジット 携帯キャリア決済 コンビニ支払い プリペイドカード 口座振替 ポイント支払い アカウント連携決済 当社 当社 加盟店システムと決済機関システムの間に位置す る自社だけでは完結しない Webシステム API型
2018年: 決済システムの内製へ 新システムに求めるモノ • スピード感のある開発/リリース • 継続的な改善のサイクル • 監視が容易で障害に強いシステム 今までは…
すべての案件毎に開発ベンダのチカラを借りて構築 (見積もり/契約/要件定義から検収まで長い道のり)
2018年: 決済システムの内製へ 新システムに求めるモノ • スピード感のある開発/リリース • 継続的な改善のサイクル • 監視が容易で障害に強いシステム 今までは…
案件毎に開発ベンダさんのチカラを借りて構築 (見積もり/要件定義から検収まで長い道のり) 開発ベンダに頼りきっていてはスピード感のある開 発、小さな改善のサイクルが作れない。
2018年: 決済システムの内製へ 新システムに求めるモノ • スピード感のある開発/リリース • 継続的な改善のサイクル • 監視が容易で障害に強いシステム 今までは…
案件毎に開発ベンダさんのチカラを借りて構築 (見積もり/要件定義から検収) 内製化によるスピード感のある開発 内製化による継続的な改善
2018年: 決済システムの内製へ チーム体制 内製開発PJ さらに1名のエンジニアがJoin 6名のチーム体制
2018年: 決済システムの内製へ 導入したもの Pivotal Cloud Foundry(PCF)を中心とした クラウドネイティブなプラットフォーム Concourse CI
Pivotal Cloud Foundry (PCF) を選んだ理由
プラットフォームに求めるもの リリースの改善 ・リリース時間の短縮 ・ゼロダウンタイムリリース ・ワンクリックリリース ・人的ミスの撲滅 クラウドのフル活用 ・スケーラブル/オートスケール ・セルフヒーリング コンテナの動的な配置
障害時のコンテナ/アプリ自動再起動
やっぱりKubernetes?? エンジニアとして興味はあるけど… ・学習コスト、メンテナンスコストの高さ ・プラットフォーム構築までの期間 ・数人のチームでは体制的にも厳しそう OR PaaS
やっぱりKubernetes?? エンジニアとして興味はあるけど… ・学習コスト、メンテナンスコストの高さ ・プラットフォーム構築までの期間 ・数人のチームでは体制的にも厳しそう OR PaaS 既に確立されたプラットフォームが欲しい ・業務コードの実装に集中したい ・コードをすぐに実行できる環境が欲しい
やっぱりKubernetes?? OR PaaS ウチはこっち 既に確立されたプラットフォームが欲しい ・業務コードの実装に集中したい ・コードをすぐに実行できる環境が欲しい
PaaS Public PaaS OR Private PaaS 決済サービスのエンタープライズ領域での利用であるた め Public PaaS
はセキュリティ的にも抵抗が強く Private PaaS一択。
PaaS ウチはこっち Public PaaS OR Private PaaS 決済サービスのエンタープライズ領域での利用であるた め Public
PaaS はセキュリティ的にも抵抗が強く Private PaaS一択。
最終的に選んだのは… PaaS • Java/Spring アプリケーションとの親和性 • プラットフォームの導入/運用のサポート • cf push
コマンドによるアプリリリース
最終的に選んだのは… • Java/Spring アプリケーションとの親和性 • プラットフォームの導入/運用のサポート • cf push コマンドによるアプリリリース
Buildpack という仕組みでソースコードからコンテナイメージを作 成してくれる 開発者は Dockerfile を書く必要なし。 cf push と Buildpackにおまかせ。 PaaS
開発プロジェクトのチーム体制と責任分界
開発プロジェクトのチーム体制と責任分界 Networking Storage Servers Virtualization O/S Middleware プラットフォーム運用者 Ops 2名
Runtime
開発プロジェクトのチーム体制と責任分界 Networking Storage Servers Virtualization O/S Middleware Runtime Data Application
アプリケーション開発者 Dev 4名 プラットフォーム運用者 Ops 2名
開発プロジェクトのチーム体制と責任分界 Networking Storage Servers Virtualization O/S Middleware Runtime Data Application
アプリケーション開発者 Dev 4名 プラットフォーム運用者 Ops 2名 プラットフォームの構築 / 管 理 に専念
開発プロジェクトのチーム体制と責任分界 Networking Storage Servers Virtualization O/S Middleware Runtime Data Application
業務の設計 / 実装に集中 プラットフォーム運用者 Ops アプリケーション開発者 Dev 4名
開発プロジェクトのチーム体制と責任分界 Networking Storage Servers Virtualization O/S Middleware Runtime Data Application
12 Factor App AppをPaaSに載せる制約は 12 Factor App のみ ベンダーロックインはなし プラットフォーム運用者 Ops 2名 アプリケーション開発者 Dev 4名
手に入れた開発/運用のカタチ ➢ プラットフォーム / 全体のアーキテクチャ ➢ アーキテクチャ ➢ CI/CD パイプライン
➢ Observability
syslog+TLS Logstash Elasticsearch Kibana cf push Concourse Prometheus Grafana git
push 全体アーキテクチャ cf create-service cf bind-service
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 手に入れた開発/運用のカタチ ➢ プラットフォーム / 全体のアーキテクチャ ➢ アーキテクチャ
➢ CI/CD パイプライン ➢ Observability
アプリケーション構成(同期 加盟店 ➡ 決済機関) 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 オンラインショッピングサイト 通販サイト、ゲーム、電子書籍、 チケット、不動産、その他 アプリケーション構成(同期 加盟店 ➡ 決済機関)
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 決済機関システム クレジット、コンビニ支払い、キャリア決済、 プリペイドカード、その他 アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C Appはマイクロサービスの構成です べてPCF上に配置 アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 A
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C すべてのAppは Java/Spring Boot で実装 アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C API Gateway 決済機関毎のビジネスロジックが実装さ れている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 加盟店や決済機関は当然、コントロール範囲外 アプリケーション構成(同期 加盟店 ➡ 決済機関)
Hystrix API Gateway Service A Service B Service C 加盟店
A 加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C システム間通信には Hystrix という Circuit Breakerを導入 Hystrix Hystrix Hystrix アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C Circuit Breakerがない状態で 決済機関Aで障害が発生した場合… アプリケーション構成(同期 加盟店 ➡ 決済機関)
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 Service A に障害が伝播 処理のブロック、スレッド枯渇
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C API Gateway に障害が伝播 処理のブロック、スレッド枯渇 アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C アプリケーション構成(同期 加盟店 ➡ 決済機関) API Gateway に障害が伝播 処理のブロック、スレッド枯渇
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C 決済機関A起因の障害にも関わらず 関係のない決済機関BCへ影響が出てしまう アプリケーション構成(同期 加盟店 ➡ 決済機関)
API Gateway Service A Service B Service C 加盟店 X
加盟店 Y 加盟店 Z 決済機関 A 決済機関 B 決済機関 C Hystrix Hystrix Hystrix Hystrix アプリケーション構成(同期 加盟店 ➡ 決済機関) 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により耐障害性に優 れたアプリケーションを実現 アプリケーション構成(同期 加盟店 ➡ 決済機関)
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 手に入れた開発/運用のカタチ ➢ プラットフォーム / 全体のアーキテクチャ ➢ アーキテクチャ
➢ CI/CD パイプライン ➢ Observability
CI / CD パイプライン Concourse https://concourse-ci.org/
https://concourse-ci.org/ Concourse CI / CD パイプライン
Concourse - トップ画面
Concourse - パイプライン画面
Concourse 開発から本番リリースまでのパイプライン
テスト環境リリース 本番環境リリース Concourse 開発から本番リリースまでのパイプライン
テスト環境リリース 本番環境リリース CI による開発サイクル ユニットテスト/静的コード解析/カバ レッジ計測 ワンクリックリリースによる CD サービスのゼロダウンタイムリリース Concourse
開発から本番リリースまでのパイプライン
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 手に入れた開発/運用のカタチ ➢ プラットフォーム / 全体のアーキテクチャ ➢ アーキテクチャ
➢ CI/CD パイプライン ➢ Observability
Observability ※Metrics, tracing, and logging https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
Observability ※Metrics, tracing, and logging https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
Observability ※Metrics, tracing, and logging https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
Observability ※Metrics, tracing, and logging https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html
Platformの監視 • 全VMのメトリクス • 全コンテナのメトリクス • Cloud Foundryの各コンポーネントのメトリクス • ミドルウェアのメトリクス
◦ RabbitMQ / MySQL / Concourse / Elastic Stack Applicationの監視 • 全Spring Bootアプリ(Micrometer)のメトリクス Grafanaでの監視対象 Metrics 30種以上のダッシュボード
Grafana(Micrometer) Metrics
今までログから可視化していた情報が Grafanaでいつでも確認可能に ・CPU ・ヒープ(各領域ごと) ・スレッド ・GC(回数、時間) ・クラスローダ 開発者はPrometheusの設定を意識することは なくリリースしたら自動でアプリケーションを監視 する仕組み
Grafana(Micrometer) Metrics
Kibana(アクセスログ) Logging
アクセスログ一覧 レスポンスタイム Percentile アプリ別 アクセス数 ステータスコード別 アクセス数 レスポンスタイム AVG Kibana(アクセスログ)
Logging
Kibana(アプリケーションログ) Logging
ログレベル別 ログ出力数 アプリケーションログ一覧 アプリ別 ログ出力数 Kibana(アプリケーションログ) Logging
開発者は Elastic Stack を意識せず、標準出力にログを出力 するだけで良い。 Kibana(アプリケーションログ) Logging
Zipkin Tracing
アプリログに出力される トレースIDで検索可能 Zipkin Tracing
複数のサーバにまたがる処理でも、 どこの通信やSQLに時間がかかっていたか一目でわ かる Zipkin Tracing
サービス目線のモニタリング 決済手段毎の OK数 / NG数を表示 Biz
決済数 取扱高 前日比・傾向 内訳 分類 xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx サービス目線のモニタリング
Biz
サービス目線のモニタリング 決済数 取扱高 前日比・傾向 内訳 分類 xx,xxx xxx,xxx xx,xxx,xxx,xxx x,xxx,xxx,xxx
アプリをリリースするだけで プラットフォームが自動で監視対象に Metrics Logging Tracing + Biz
本日のまとめ
ここまでの歩み • 開発チームの立ち上げ • 運用業務の改善活動 • PCFを中心としたプラットフォームの導入 / 構築 •
決済システム内製 ◦ 耐障害性に優れたシステム ◦ 監視の容易なシステム ◦ 継続的なビルド/リリース が可能なシステム
内製化に取り組んでみて 外注に頼りきったサービス開発を積み重ねてもプラット フォームは構築できない。 内製という技術の舵取りをおこなうからこそ プラットフォームの構築/運用が可能となる。 そしてその強力な基盤があるおかげで少人数でも サービス開発に注力できその後の安定運用ができた。
さいごに 開発チームの組織を立ち上げ、内製開発をスタートし無事リ リースを迎えたが今後も新たなサービス開発と運用は続いて いく。 さらなるCloudNativeなシステムを目指しつつ加盟店/エンド ユーザの方々に高い品質のサービスを提供したい。 堅牢、安全、1件1円間違えない、 障害に強いシステムを目指して
We are hiring! ご清聴ありがとうございました SBペイメントサービスは エンジニアを募集しています 興味がある方は @suzukij まで
None
SpringFest 2018 登壇資料 決済システムの内製化への旅 SpringとPCFで作るクラウドネイティブなシステム開発 https://www.slideshare.net/makingx/springpcf-jsug-sfh1 関連資料 Pivotal.IO 2019 登壇資料
決済システム内製化に向けた プラットフォーム構築 PCF・BOSHによるオブザーバブルプラットフォーム https://www.slideshare.net/DaichiKimura3/pcfbosh-156082821 アプリケーション開発チーム プラットフォームチーム