UPSIDERのシステムアーキテクチャ

アーキテクチャの工夫ポイント
法人カード「UPSIDER」は、独自のAI与信モデルにより最高10億円の利用枠を提供し、決済データのリアルタイム反映やバーチャルカード発行、会計ソフト連携など、成長企業のニーズに応える機能を搭載。高可用性を実現しつつ、スピーディな決済体験やシームレスな業務効率化を追求し、ユーザーへの提供価値を最大化。事業の成長を支える次世代の法人カードです。
UPSIDERの決済システムは、高いスケーラビリティ、耐障害性、品質、そして開発スピードを両立するために、GKE/Istioを活用してマイクロサービスを採用しています。
決済に関わる処理は多岐にわたり、レイテンシーの許容度が低いオンライン処理から、深夜にバッチで実行する処理まで含まれます。
そこで、マイクロサービスにすることにより、特に安定性や低レイテンシーが求められる部分にリソースを集中させてスケーラビリティを確保したり、障害発生時には影響範囲を最小限に抑えることが可能となっています。また、サービスを分離することで、チームの開発スピードを維持しながら、より重要度の高いサービスの開発やテストにリソースを集中させることで品質も確保しています。
さらに、PCI-DSSというセキュリティ基準に対応するため、システムを2つのクラスタに分割しています。カード番号など高度なセキュリティ管理が求められるデータと処理を担う領域と、それ以外の領域を分離しました。これにより、高いセキュリティ基準を適用してコンプライアンスを確保しつつ、セキュリティ要件に縛られ過ぎずに効率的な開発ができるようになっています。
また、大規模な決済トランザクションにも対応できるよう、Google Cloud Spannerを採用。データの整合性を維持しながら、負荷に応じた柔軟なスケーリングを実現しています。
現在のアーキテクチャの課題と今後の展望
トラフィックとユーザー増加に伴うパフォーマンス課題
ユーザー数と決済トランザクションの増加により、さらなるパフォーマンス最適化が求められています。
非同期化の強化、データベースのアーキテクチャ改善、Kubernetesの設定調整など、複数のアプローチを並行して検討中です。また、決済のパターンやユーザーの利用方法が多様であるため、仕様と技術の両面から最適な設計を模索する必要があります。特に、決済の承認・拒否の判定においては、正確性を高めるほど処理が増え、レイテンシーやエラー率とのバランスを取ることが課題となっています。
オブザーバビリティの強化
マイクロサービス化によるシステムの複雑化に伴い、可観測性(オブザーバビリティ)の重要性が高まっています。
現在は、BigQueryに蓄積したデータでダッシュボードを組んだり、Grafana/Prometheusを用いたリアルタイムモニタリングとアラートの仕組みを構築しています。今後は、OpenTelemetryの導入を進め、分散トレースの可視化やより詳細なメトリクスの収集を強化し、システムの挙動をより深く分析できる環境を整えていきます。これにより、障害発生時の影響範囲を迅速に特定し、運用負荷を軽減しながら、安定した決済処理を実現していきます。
システム内の依存関係の改善
より高い耐障害性を確保し、開発の柔軟性を向上させるため、システム内の依存関係を見直し、リアーキテクチャを進めています。
例えば、不正利用の検知と決済処理を分離して、決済フローの安定性を向上させつつ、不正検知の高度化を独立して進められるように改善しています。
◆執筆:
UPSIDER Card Engineering Manager / Tech Lead Ryoya Sekino @sekino_pii
UPSIDER Card backend engineer 金正朋也 @thiefxx_
アーキテクチャを構成するツール
会社情報

株式会社UPSIDER
UPSIDERは「挑戦者を支える世界的な金融プラットフォームを創る」をミッションに、法人カード「UPSIDER」を始めとする複数事業を提供。累計決済額4,500億円超(2024年9月時点)、ユーザー数60,000社超の成長を支えるほか、シリーズDで154億円を調達し、累計資金調達額は600億円を突破。AIを活用した金融サービスで挑戦者の成功を加速させます。