「Bill One」のインフラアーキテクチャ図
アーキテクチャの工夫ポイント
Sansanでは、営業DXサービス「Sansan」や名刺アプリ「Eight」、インボイス管理サービス「Bill One」、契約データベース「Contract One」を国内外で提供しています。本記事では「Bill One」についてご紹介します。
Bill Oneではマイクロサービスアーキテクチャを採用し、業務ドメインごとにサービスを分割しています。各マイクロサービスは一つのチームがフルサイクルで開発を担当することで、コードの規模とコミュニケーションコストを抑えつつ、開発速度と保守性を高めています。
マイクロサービスの実行環境にはGoogle Cloud Runを全面的に利用しています。Cloud Runは自由度の高いコンテナ環境のフルマネージドサービスで、立ち上げ期のコストパフォーマンスと拡大期のスケーラビリティを両立しやすい特徴があります。それにより、トラフィックの変動に関係なく、さまざまなマイクロサービスを一貫した仕組みで運用できます。
マイクロサービス間でデータのやり取りが必要な場合には同期的な通信は避け、Cloud TasksやPub/Subによる非同期メッセージングを採用しています。あるサービスに障害が起きても他のサービスがその影響を受けにくくなります。
現在のアーキテクチャの課題と今後の改善予定
今後の改善予定の一つは、現在のユーザーニーズに合わせたマイクロサービスの再分割です。Bill Oneは4年前のサービスローンチ以来、ユーザー体験の向上を目指して機能の追加・拡張をし続けており、現在は20を越えるマイクロサービスを開発・運用しています。初期に開発したマイクロサービスは機能追加とともにコード規模が肥大化しているため、マイクロサービスを再分割していきます。
もう一つは、マイクロサービスアーキテクチャをより洗練化し、開発のアジリティーをさらに高めることです。これまでBill Oneは業務ドメインごとに独立したマイクロサービスを開発することでアジリティーを持たせてきました。今後は、マイクロサービス群を横断する共通機能を基盤化すること、そしてマイクロサービス間をより疎結合にするために非同期通信のメカニズムを Cloud Tasksから Cloud Pub/Subへ移行することを推進し、より高いアジリティーを目指します。
◆執筆:技術本部 Bill One Engineering Unit Core Businessグループ 柳浦 豊
【サービス公式サイト】
https://bill-one.com/
アーキテクチャを構成するツール
認証基盤
Auth0 by Okta
サーバレス
Cloud Functions
インフラ
Cloud Pub/Sub
インフラ
Cloud Run
データベース
Cloud SQL
インフラ
Cloud Storage
API
Amazon API Gateway
CI/CD
Cloud Build
インフラ
Cloud Logging
監視・オブザーバビリティ
Cloud Monitoring
インフラ
Cloud Tasks
会社情報
Sansan株式会社
従業員規模 1,001〜5,000名
エンジニア組織規模 301名〜500名
Sansan株式会社は「出会いからイノベーションを生み出す」をミッションとして掲げ、働き方を変えるDXサービスを提供しています。主なサービスとして、営業DXサービス「Sansan」や名刺アプリ「Eight」、インボイス管理サービス「Bill One」、契約データベース「Contract One」を国内外で提供しています。
Sansan株式会社の利用ツールレビュー
データ基盤
Sansan株式会社でのdbt導入事例
Sansan株式会社 / Ryo Nakamura
メンバー / データエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名
CDN
サーバレス
Cloudflare導入による、全プロダクトへの高度なセキュリティ機能の展開と運用効率化
Sansan株式会社 / Takeshi Matsuda
チームリーダー / セキュリティエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名
監視・オブザーバビリティ
Splunkの導入により、本番環境で発生する信頼性の問題を簡単に解決できるように
Sansan株式会社 / kotakato
テックリード / テックリード / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名