SpringFest2018の「決済システムの内製化への旅 ‒ Spring と PCF で作るクラウドネイティブなシステム開発」聴講メモ
プレゼンター
槙 俊明 Pivotal, Advisory Solutions Architect
Cloud Foundry / Kubernetesの構築・運用支援やその上でSpring Bootを使ったアプリケーション開発支援、Concourseを使ったCI/CD適用支援を行なっている。
鈴木 順也 ソフトバンク・ペイメント・サービス株式会社 シニアアーキテクト
決済システムの開発、運用企画、改善に従事
概略
ソフトバンク・ペイメント・サービス株式会社ではSpringとPivotal Cloud Foundryを使用して、次期決済システムを内製で構築しています。本セッションでは導入の背景や、Spring Boot/Cloudを使用したアーキテクチャの説明、CI/CDやロギング・モニタリングなど取り組み内容のご紹介とあわせて、プラットフォームの導入が開発にどのような効果をもたらすのかをお伝えします。Cloud Foundryを使用した事例となりますが、セッションの内容は他のプラットフォームについても当てはまることが多いため、Spring + クラウドネイティブなプラットフォームの導入を検討をされている方はぜひご参加ください。#sf_h1
聴講メモ
- ソフトバンクペイメントの決済代行に絞った話
内製化に至る道程
- 2016年時点では、サービス開発はベンダに依存
- 2017年導入ツール
- Spring Boot
- Spring Cloud
- Jenkins
- sonarqube
- Nexus
- 2018年決済システム内製化
- スポード感のある開発とリリース
- 継続的な改善サイクル
- 監視が容易で障害に強いシステム
- →PCFとConsourceの導入
PCFを選んだ理由
- PCFのサービス
- Pivotal Container Service
- Kubernetesを利用した環境
- Pivotal Application Service ← 今回利用したのはこれ
- Dockerファイルではなく、BuildPackを書くだけで環境構築ができる
- Pivotal Function Service
- OSSのKnaticeとriffベース技術
- Pivotal Container Service
cf push だけでできること ( 写真挿入 )
- 12Factorに従うと、開発と運用の責任分解点が明確なので、PCFを選択する理由の一つ
- PaaS vs Kubernetes
- どうしてKubernetesが流行っている中で、PaaSなのか
- PaaSの方が、できることが少ない分、責任を減らせる
全体アーキテクチャ ( 写真挿入 )
- Spring Cloud GatewayのProxyExchangeで実装
- スライドで詳細URLあり
- 加盟店で障害が発生した場合は、DeadLetterQueueにキューを追加
PCFを12Factorの対応 ( 写真挿入 )
- CI/CDといえばJenkinsだけど、PCF製のConcourseを利用
- JMeterによる負荷テストの自動化
- JMeterのレポート機能が綺麗なので、通知して毎日開発前に確認
- Concourseはコンテナベースなので、Java8~11全てのテストを自動で実施
- アップデートによる弊害を早期発見
- Zipkinで処理の実行時間を把握しやすくなる
- 特にDB周りはボトルネックになりやすい