クラウド人事労務ソフト「SmartHR」のインフラアーキテクチャ図
アーキテクチャの工夫ポイント
SmartHRでは、Google Cloudのマネージドサービスを積極的に利用しています。過去、プロダクトによってインフラ構成が異なるなど、運用管理に課題がありました。利用していたDBaaS(Database as a Service)のサービス終了が予期されたことを機にアーキテクチャを見直し、インフラの運用・学習コストが低く、エンジニアがプロダクトの開発に集中できるような構成へと移行しました。
プロダクトごとにインフラは独立していますが、ほぼ同じ構成となっています。Webサーバーにはスパイクアクセスにも耐性があるCloud Runを採用しています。一方非同期処理は、処理が長時間になるものもありCloud Runは不向きなため、AppEngineを併用しています。プロダクトごとにデータを管理していますが、従業員情報などの共通データはSmartHR基本機能で保持しています。
現在のアーキテクチャの課題と今後の改善予定
SmartHRは、人事データベース機能を提供しており、最新の従業員情報の他に変更履歴を保持しています。変更履歴の実現のためBiTemporal Data Model(参考資料)を採用しており、通常よりもレコード増加量が大きくなっています。現在、従業員情報だけで数億レコードがあり、データベースのパフォーマンスやスケーラビリティに課題を抱えています。
この課題に対し、単一データベースで稼働している現在のアーキテクチャから、シャーディングやリードレプリカを導入することで課題解消できないか検討しています。また、Google Cloudが提供するAlloyDB(参考資料)の利用も検討しています。
◆執筆:技術統括本部 労務プロダクト開発本部 三上 拓也(みかみ たくや) @mkmn252
【サービス公式サイト】
https://smarthr.jp/
アーキテクチャを構成するツール
会社情報
株式会社SmartHR
SmartHRは、クラウド人事労務ソフト「SmartHR」を開発しています。労働にまつわる社会課題をなくし、誰もがその人らしく働ける社会の実現を目指し、働くすべての人の生産性向上を後押ししています。