2019年11月27日
SBペイメントサービス株式会社
SBペイメントサービス株式会社(SBPS)は、2019年10月にアメリカのテキサス州オースチンで開催された技術カンファレンス「SpringOne Platform 2019」において、セッション登壇しました。当日のSBPSセッションの様子をご紹介します。
SpringOne Platformは、Pivotal Softwareが主催する国際的な技術カンファレンスです。各社の開発者、オペレーター、リーダーのセッションを聞くことでスケーラブルなアプリケーションの構築に貢献します。世界中の人々と出会い、さまざまなソフトウェアをどのように構築しているかを学ぶイベントで、世界中から3,500名が参加しています。日本からのスピーカーの1社としてSBPSが登壇しました。
SBPSは、SpringとPivotal Platformを使用して次期決済システムを内製しています。変化が激しいキャッシュレス業界において、開発に注力できるプラットフォームとしてPivotal Platformを採用し、システム開発を進めています。セッションでは、導入の背景や、Spring Boot/Cloudを使用したアーキテクチャの説明、CI/CDやロギング・モニタリング、高レジリエンスへの取り組み、運用事例・BizDevOps各目線でのメリットなどを講演しています。
2016年から2017年でエンジニアチームの立ち上げ、運用業務の改善を通してツールの内製化、開発案件の支援などにも参加し、2018年から決済システムの内製がいよいよスタートしました。SBPS決済サービスの導入実績は 約11万店舗、取扱高は年間約3兆円で、提供する決済手段は40種以上と多岐にわたっています。SBPS決済システムに求めるものは「スピード感のある開発とリリース」、「継続的な改善のサイクル」、「監視が容易で障害に強いシステム」です。今まではすべての案件ごとに開発ベンダと構築していましたが、見積依頼から契約、要件定義、検収まで非常に長い道のりでした。開発ベンダに頼り切っていては、スピード感のある開発、小さな改善のサイクルが作れないと感じ、内製化することにより、スピート感のある開発、継続的な改善を実現したいと考えました。
内製化プロジェクトにおいて、プラットフォームに求めるものは大きく2つありました。1つはリリースの改善です。2つ目はクラウドのフル活用です。この2つを満たすためのプラットフォームを検討しました。プラットフォームというと、k8sが非常に流行っていてエンジニアとして興味はあるのですが、学習コストやメンテナンスコストが高いという点やプラットフォーム構築までの期間を要してしまうという点、SBPSのような数人のチームでは体制的にも厳しそうな点がネックになると考えていました。
そして最終的に選んだのは Pivotal Platform の PaaS である Pivotal Application Service です。選んだ理由は、「Java/Springとアプリケーションとの親和性」、「プラットフォームの導入と運用の手厚いサポート」、「cf pushコマンドによるアプリリリース」です。その他にも、Pivotal Platformを選んだ理由は、チーム体制の責任分界が明確になる点です。これによりプラットフォーム運用者は構築、管理作業に専念することができ、アプリ開発者は業務ロジックの設計、実装に集中することができます。アプリケーションをPaaSに載せるための制約は 12 Factor App のみとなっているためベンダーロックインは、ほとんどありません。このような理由からPivotal Platformを選びました。
Pivotal Application Serviceを中心としたSBPSの決済システムの全体構成を紹介します。
上段、中央がPASとなっており、左上が開発に関するミドルウェア、下段がプラットフォームやアプリケーションを監視するためのツールとミドルウェアとなっています。右上がアプリケーションとMQやDBとの接続管理をおこなうための ServiceBroker となります。
※プラットフォームと全体のアーキテクチャやCI/CD パイプライン、Metrics、ログ集約、Tracingなどの詳細は、セッション内容の全てからご参照ください。
プラットフォーム導入した結果、2つの大きな効果を得ることができました。
1つ目はリリースの改善です。リリース時間が45分から5分に大きく短縮された上にメンテナンスなどシステムを停止することなく、リリースが可能となりました。リリースはワンクリックのため、人的ミスは一切発生していません。
2つ目はクラウドのフル活用でした。スケーラブルでオートスケールまで実現し、障害が起こっても影響を受けにくく、安定稼働を保つことができます。また、障害時にはコンテナやアプリの自動再起動が可能なセルフヒーリングを備えたプラットフォームとなりました。
そして決済システムの内製によって得られたことは「自分たちの望むシステムを手に入れることができた」ということです。内製化によっては耐障害性に優れ、監視が容易で、継続的なリリースが可能なシステムとなりました。これはSBPSにとって大きな成果となっています。
セッション内容の全てはこちらをご覧ください。
なお、当日は、世界各国から参加した技術者より積極的な質問が飛び交い、活気のある講演となりました。
(左:木村 大地、右:鈴木 順也)
SBペイメントサービス株式会社
システム本部 システム運用統括部
シニアアーキテクト
鈴木 順也
(決済システムの開発、運用企画、改善に従事)
SpringOne Platformという国際的なカンファレンスに登壇できて非常に嬉しく思います。今後も「クラウドのフル活用」、「障害に強いシステム」というキーワードを軸にCloudNativeなシステム開発をおこない、自社サービスへ貢献していきたいと思っています。
支えてくれたチームの皆とともに、より強固な体制を目指していきたいです。
SBペイメントサービス株式会社
システム本部 システム運用統括部
プラットフォームエンジニア
木村 大地
(決済システムの開発、運用企画、改善に従事)
当日は各国の方に聴講していただき、興味を持ってくださり多くの質問もいただきました。また、発表後にも個別にお声がけいただき情報交換することでとても刺激を受けました。多くの方々から反応をいただき大変嬉しく思います。今後も、決済サービス・プラットフォームの安定稼働・品質向上のために改善を続けていきます。
イベント名 | SpringOne Platform 2019 |
---|---|
Webサイト | https://springoneplatform.io/2019 |
開催日 | 2019年10月8日~10月10日 |
来場者数 | 3,500名(日本からは65名が参加しました) |
会場 | オースチンコンベンションセンター (テキサス州オースチン) |
主催 | Pivotal Software, Inc. |
※サービス名、所属部門、役職名などは2019年11月時点の情報となります。