テクノロジースタック
ClassicStack
当社のコアな業務システムの構成です。バックエンドはRailsでフロントはVueで記述されています。この構成をClassicStackと読んでいます。
データベース
Postgresqlをメインで利用しています。キューやキャッシュの管理にRedisを使用しています。
Webアーキテクチャ課題
当社のシステムの複雑さは業務の複雑さに起因します。これまではRailsの良さを活かして少数精鋭のメンバーが多様な業務を効率良く開発することが出来ました。今後新規参入のメンバー増えていく中で、全体の影響度を見据えながら高いスループットで開発するのは難しくなる傾向があります。
そのため新アーキテクチャ化を進行しています。留意しているのは下記点です。
- 新規に開発する部分については既存のものと影響範囲が切り分けやすくしたい
- 個別のメンバーに負荷が固まらずリソースの流動性を高くしたい
- 言語が分散するのは避けたい
- Webフロントとバックエンドは同じ言語にしたい
Template Based Microservice
特徴
- 認証機能やClassicStackとの通信、共通UI部品をライブラリとして含めたテンプレートプロジェクト
- フロントはVue3、バックエンドはNestJSベース
- モノリポ構成(リファクタ、サービス間のバージョンを考慮したデプロイ容易性)
アプリアーキテクチャ
歴史的にはiOS(Swift)、Android(Kotlin)で別々に開発されていましたが、2022年5月〜7月にFlutter版を開発しワンソースとなりました。今後も新規にアプリを開発する際はFlutterをファーストチョイスとする予定です。
CI/CD
- CodeMagicによってビルドを自動化しています。
ソフトウェアテスト
ソフトウェアテスト会社と社内が連携して検証を行っています。
データ分析基盤
業務システムのPostgresqlのデータや解析ツールのデータを匿名化した上で、BigQueryに投入しています。高度な解析についてはJupyterNotebook上で行います。