金融を“サービス”として再発明するための技術スタック

Koushi Kawamoto
The Finatext Tech Blog
Jun 30, 2020

こんにちは。Finatextでエンジニアのマネジメントをしている河本です。

当社は「金融を“サービス”として再発明する」をミッションとして掲げ、ビジネスの成長とともに技術領域も拡大させてきました。

エンジニアチームは今、私たちが「BaaS (Brokerage as a Service)」と呼んでいる証券サービスのためのシステム基盤と、そのBaaS上のサービス開発に力を注いでいます。

今回は、そんな当社の技術スタックについて紹介したいと思います。

開発環境・CI/CD

  • GitHub
  • Swagger
  • SonarCloud
  • Postman
  • Terraform
  • AWS CodeBuild
  • AWS CodePipeline

コードはGitHubで管理され、API 仕様管理には Swagger が使われています。SonarCloud を用いてソースコードの健全性やテストカバレッジの可視化を行っています。API開発の効率化のため、Postmanを使っています。

Infrastracture as Codeは、Terraformを使っています。
CI/CDは AWS CodeBuild、AWS CodePipeline、GitHub Actionsをユースケース毎に組み合わせて利用しています。

開発言語/フレームワーク

  • Go/echo
  • Ruby/Ruby on Rails
  • Kotlin/Spring

BaaS自体はGoを使い、echoフレームワークをベースに開発されています。

一方、BaaS上で動くサービスについては、BaaSとAPIでやりとりできればよいので、開発言語もフレームワークも縛りはありません。
各サービスの設計思想に基づいて技術選定をしており、実際Go以外にもRuby on Rails製のサービスがありますし、Kotlinで Springフレームワークを使い開発中のプロジェクトも進行しています。

クラウド基盤

主に金融アプリを開発・提供していた頃から現在に至るまで、我々はシステムの多くをAWS上に築いてきました。今後ほかのクラウド基盤を使う可能性が無いわけではないですが、現状はAWS無しに当社サービスを語ることはできません。

当社におけるAWSの代表的な使い方を、BaaS 上でサービスを展開しているつみたて投資サービス「セゾンポケット」を例に見てみましょう。

お客様はCloudFrontなどのEdgeサービスを経由しAPIにアクセスします。

  • Route53
  • CloudFront
  • WAF

証券取引に関わるロジックをBaaSに任せることにより、サービス側は非常にシンプルな構成になります。基本的にECSを使いコンテナ上に構築されています。インフラの構成をコードで管理し、アプリケーションのように構築・変更のレビューを行っています。これにより、アプリケーションエンジニアやインフラエンジニアといった役割を明確に区別せず、サービスの改善に必要な作業を1人のエンジニアが完結させられるようにしています。

データベースにはマネージド・サービスのRDSでAurora MySQLを使っています。

  • ECS
  • RDS (Aurora MySQL)

一方、BaaS側には証券取引に関わる多くの機能が実装されています。そのうち認証認可の機能では Cognitoを使っています。

証券取引という性格上、多種多様なデータを扱います。そのためデータベースは更新頻度やトランザクション量を考慮し、RDS だけでなくDynamoDBも使い分けています。

  • Cognito
  • DynamoDB

実際の証券取引に関わる通信は、DirectConnect を経由しています。また、ここでは FIX(Financial-Information-eXchange)という仕様のプロトコルが使われているのも特徴的です。

モニタリングと通知

  • Datadog
  • Sentry
  • Opsgenie

死活監視や各種メトリクスの計測にはDatadogを使い、エラーログの監視にはSentry を使っています。サービスのインシデントはOpsgenieを使いエンジニアにエスカレーションする体制を構築し、障害時に備えています。

最後に

金融のシステムと聞くと、多くの時間とコストかけて設計・構築された壮大なものをイメージしませんか?
ざっと見て頂いた通り、当社はマネージドサービス・SaaSを積極的に活用することで、開発から運用まで少ないコスト・人数でカバーし、柔軟で可用性の高いシステムの実現を通して証券事業への参入障壁を下げています。クレディセゾン様と共同開発した「セゾンポケット」は、まさにこの事例です。

ですが、そんな我々のビジネスも技術もまだまだ発展途上で、チャレンジできることがたくさんあります。

私たちと一緒に、既存の金融システムをモダンな技術で刷新することに興味がある方、まずはカジュアルにお話ししませんか?ご連絡をお待ちしています!

採用サイトはこちら
※カジュアル面談は、社員インタビューの最後にある「話を聞いてみたい」ボタンからご応募ください。

--

--

No responses yet