はじめに
4万社を超える企業が導入し、労務管理クラウド4年連続シェアNo.1を誇るSmartHR。この巨大なHRTechプラットフォームが、2020年からGoogle Cloudへの全面移行を敢行し、同時にフロントエンド技術スタックをNext.jsに刷新する壮大なプロジェクトを実行しました。
「社会の非合理を、ハックする。」というミッションを掲げるSmartHRが、なぜ技術基盤の根本的な変革に踏み切ったのか。そして、React×TypeScriptからNext.js×Google Cloud構成への移行がもたらした技術的・ビジネス的価値とは何だったのか。現場の生々しい判断プロセスと実装の舞台裏を深く掘り下げます。
大規模HRTechサービスが抱えていた構造的課題
成長の代償としての技術的負債
SmartHRの技術的変革の背景には、急速な事業成長がもたらした深刻な課題がありました。2013年の創業から短期間で4万社の導入を達成する過程で、初期の「速度重視」で構築されたアーキテクチャが、サービス規模の拡大によって限界を迎えていたのです。
最も深刻だったのは、内部統制への対応でした。HRTechサービスという性質上、SmartHRは取引先企業の極めてセンシティブな労務情報を扱います。SOC2 Type1を取得するほどのセキュリティ基準を満たしながら、同時に開発速度を維持する必要がありました。しかし、従来のアーキテクチャでは、開発メンバーが意識せずとも管理統制やセキュリティ対策をクリアできる状態の構築が困難でした。
インフラ周りの複雑化も深刻な問題でした。長年の継ぎ足しによって「何が動いているのか、誰が、いつ何を、どういうふうに変更したのかの履歴を追跡するのも難しい状態」に陥っていました。実行環境の構成もまちまちで、開発メンバーのスケールがしにくいという根本的な課題を抱えていたのです。
フロントエンド技術スタックの進化的変遷
SmartHRのフロントエンド技術は、事業の成長段階に応じて段階的に進化してきました。初期はRailsのサーバーサイドレンダリングから始まり、その後Rails APIとReact SPAの組み合わせが主流となりました。この構成は当時としては先進的でしたが、プロダクトの複雑化とチーム規模の拡大により、新たな課題が浮上してきました。
2022年頃から、Next.jsの導入が本格化しました。最初は「配置シミュレーション」と「SmartHR Plus」という新規プロダクトから導入が始まり、徐々に既存プロダクトへの展開が進められました。この背景には、React と TypeScriptを主要技術スタックとして採用しながらも、より統合性の高い開発環境への要求が高まっていたことがありました。
興味深いのは、2024年になってNext.js App Routerの採用という新たな挑戦に踏み出したことです。採用管理機能では、社内初となるApp Routerの採用を決断しました。「短期間でリリースするという目標自体がチャレンジングであるため、社内で採用事例がないApp Routerを使うことに対して最初は割と消極的な気持ちでした」という率直な葛藤がありながらも、React の最新機能を活用するための戦略的判断だったのです。
Google Cloud選択の深い洞察
コンテナ運用における選択肢の豊富さ
SmartHRがGoogle Cloudを選択した最大の理由は、コンテナ運用の選択肢の豊富さでした。「Google Cloud は GKE(Google Kubernetes Engine)から Cloud Run、App Engine まで、幅広く状況に応じたものを選べます」という技術的柔軟性が決定的な要因となりました。
この判断の背景には、SmartHRの複雑なアプリケーション要件がありました。フロントエンド部分は比較的軽量なWebアプリケーションとして動作させたい一方で、従業員情報の取り込みや書類データの作成といった高負荷な非同期処理を長時間実行する必要もありました。単一のコンテナ実行環境では、この両方の要件を最適に満たすことが困難だったのです。
Google Cloudの多様なコンテナ実行環境により、用途に応じた最適化が可能となりました。フロントエンド部分はCloud Runでスパイク耐性と学習コストの低さを重視し、バックエンドの重い処理はApp Engineで長時間実行とREPL(SSH コンソール)アクセスを確保するという、ハイブリッドなアプローチが実現できました。
エコシステムとの統合による運用効率化
技術的な機能だけでなく、エコシステムとの統合効果も大きな選択理由でした。既に社内に導入されていたGoogle Workspaceのアカウントで課題となっていた権限管理や統制を容易かつ安全に行えることは、運用負荷の大幅な軽減を意味していました。
さらに、セールスチームが活用していたBigQueryやLookerとの連携しやすさも、データドリブンな意思決定を重視するSmartHRにとって重要な価値でした。技術選択とビジネス要件が自然に調和する構成を実現できることは、長期的な競争優位性の構築において極めて重要な要素だったのです。
Next.js×Cloud Runの実装戦略
アーキテクチャの最適化による劇的な性能向上
SmartHRのNext.js×Cloud Run構成は、単純な技術的移行を超えた戦略的な最適化を実現しています。最も象徴的な成果は、パフォーマンスの劇的な改善でした。「それまでせいぜい 100 rps だったところが、500 rps は余裕で捌けるようになっています」という5倍の処理能力向上は、技術選択の正しさを明確に示しています。
この性能向上の背景には、Cloud Runのサーバーレス特性とNext.jsの最適化機能の相乗効果があります。Cloud Runの自動スケーリング機能により、トラフィックのスパイクに対して瞬時に対応できるようになった一方で、Next.jsの静的最適化とサーバーサイドレンダリングの組み合わせにより、レスポンス時間の一貫性も確保されました。
Pages RouterからApp Routerへの戦略的移行
SmartHRの技術的挑戦の中で特に注目すべきは、Next.js App Routerの採用プロセスです。採用管理機能での導入では、社内に事例がない中で慎重な判断プロセスを経ました。
最初は消極的だった理由として「社内事例がないのでなにか詰まったとき大変そう」「Pages Routerによる知見が社内に溜まっており、アプリケーションの特徴からもPages Routerで事足りると想像できた」という現実的な懸念がありました。しかし、最終的にApp Routerを選択した理由は、将来性への投資でした。
「Reactの新しい機能が使える」「Next.js的にはApp Routerを推奨しており、今後主流はApp Routerになる」「最初からApp Routerを使っておけば Pages Router から App Router への移行は必要ない」という戦略的判断が、短期的なリスクを上回ったのです。
開発組織における技術的成熟の実現
チーム横断の知見共有体制
SmartHRの技術的成功を支えているのは、個人の技術力だけでなく、組織全体での知見共有体制です。週に一度開催される「フロントエンド MTG」では、チームを横断したフロントエンドエンジニアの情報共有が行われています。
この場では、業務で得た知見の共有、技術的な課題の相談、モブプログラミングなどが実施され、新しいプロダクトや取り組みで得られた知見が既存プロダクトのアップデートに活用される循環が生まれています。技術顧問のkoba04氏による最新技術情報の共有も、組織全体の技術レベル向上に大きく貢献しています。
「フロントエンドこれだけはやっておけリスト」の運用
特に印象的な取り組みが「フロントエンドこれだけはやっておけリスト」と呼ばれるチェックリストの運用です。このリストには、セキュリティ、パフォーマンス、アクセシビリティなど、フロントエンド開発において重要な項目が網羅されており、各プロダクトの対応状況を共有し、定例会でリストの見直しも行われています。
この仕組みにより、プロダクト間での品質のばらつきを防ぎ、SmartHR全体として一定の技術水準を維持することが可能となっています。大規模組織において技術的一貫性を保つための、極めて実践的なアプローチと言えるでしょう。
インフラ構成管理の革新的アプローチ
Terraformの全面導入による運用効率化
SmartHRの技術基盤変革において、特筆すべき成果の一つがTerraformの全面導入です。以前はインフラ構成管理の一部でのみ使用していたTerraformを、Google Cloud移行を機に全面的に導入しました。
この変革により「開発チームがパラメーターを設定するだけで、社内推奨のセキュリティ設定を有効にした環境構築が可能になる」という劇的な運用効率化を実現しました。従来は各チームが個別にセキュリティ設定を行う必要があったものが、標準化されたテンプレートにより自動化されたのです。
この仕組みは、SmartHRが扱うセンシティブな労務情報の保護という観点からも極めて重要です。人的ミスによるセキュリティホールを防ぎながら、開発速度を維持できる基盤が構築されました。
マルチプロダクト戦略を支える技術基盤
SmartHRは「マルチプロダクト戦略を掲げてプロダクトを急速に増やし続けている」企業です。SmartHR本体に加えて、SmartHR Plus アプリケーション群、SmartMeeting、Smart相談室など、多様なプロダクトを展開しています。
このマルチプロダクト戦略を技術的に支えているのが、標準化されたNext.js×Google Cloud構成です。各プロダクトが同一の技術スタックと運用パターンを採用することで、エンジニアの知見が横展開され、新規プロダクトの立ち上げ速度も大幅に向上しています。
技術的課題と現実的な解決アプローチ
React コンポーネントライブラリによる一貫性確保
マルチプロダクト戦略の課題の一つが、プロダクト間でのUIの一貫性確保でした。SmartHRは、この課題に対してプロダクト間共通のReact コンポーネントライブラリ「SmartHR UI」を開発・運用することで対応しています。
興味深いのは、このコンポーネントライブラリに開発専任のエンジニアを置いていない点です。「各フロントエンドエンジニアは自身の担当プロダクトを主軸としながら、時間を作って SmartHR UI の開発に関わっている」という体制により、実際のプロダクト開発の現場感覚を反映したコンポーネント設計を実現しています。
Legacy画面のReact化という現実的課題
大規模サービスならではの課題として、「古くからあるプロダクトでは React ではない画面もありますが、それらを React 化するプロジェクトが動いていて技術的負債の解消にも前向き」という状況があります。
この段階的なモダン化アプローチは、ビジネスを止めることなく技術的改善を進める現実的な戦略です。一気にすべてを刷新するのではなく、ビジネス価値の高い部分から順次React化を進めることで、リスクを最小化しながら技術的負債を解消しています。
セキュリティと開発効率の両立
SOC2 Type1対応という高いセキュリティ基準
HRTechサービスとして、SmartHRは極めて高いセキュリティ基準を求められます。SOC2 Type1の取得は、セキュリティに関わる内部統制のデザインが外部監査人によって評価されたことを意味し、金融機関レベルのセキュリティ対応が必要です。
Next.js×Google Cloud構成は、このセキュリティ要件を満たしながら開発効率を維持するための重要な基盤となっています。Google Cloudの豊富なセキュリティ機能と、Terraformによる設定の標準化により、セキュリティベストプラクティスが自動的に適用される環境を構築できました。
権限管理の複雑性への対応
大規模組織における権限管理は、技術的にも運用的にも複雑な課題です。SmartHRでは、Google Workspaceとの統合により、この課題を効率的に解決しています。
単一のアカウント体系で、Google Cloud リソースへのアクセス制御から社内ツールの利用権限まで一元管理できることで、セキュリティ向上と運用負荷軽減を同時に実現しています。新入社員のオンボーディングや退職時のアクセス権削除など、日常的な運用業務の効率化にも大きく貢献しています。
パフォーマンス最適化の実践的知見
Cloud Runの特性を活かした最適化
Cloud RunでRailsアプリケーション(およびNext.js)を稼働させる際の重要なポイントとして、SmartHRは「高負荷によるコールドスタートを避けるため最小台数に余裕を持たせる」「スケールアウトを見越して最小台数と最大台数に幅を持たせる」という実践的なノウハウを蓄積しています。
これらの設定は、HRTechサービス特有のアクセスパターンに最適化されています。給与計算時期や年末調整時期など、特定の時期に集中する高負荷に対応しつつ、平常時のコスト効率も維持する絶妙なバランスを実現しています。
データベース選択における現実的判断
大規模システムのデータベース選択において、SmartHRは「Cloud Spanner という案もあったが、設計やデータ変更必要がありそうだったので不採用」「シャーディングがない PostgreSQL でも動かせるとわかっていたので Cloud SQL を利用」という現実的な判断を行いました。
この選択は、技術的な先進性よりも移行リスクの最小化を優先した結果です。テナントレベルのデータ分離は「activerecord-multi-tenant」をアプリケーション層に採用することで対処し、データベース層の変更を避けながら必要な機能を実現しています。
今後の技術戦略と発展可能性
Cloud Runの継続的進化への追従
SmartHRの技術戦略において注目すべきは、プラットフォームの進化に対する柔軟性です。「Cloud Run の改善スピードが早いので状況に応じて追従していきたい」という姿勢は、技術的負債を蓄積させない持続可能な開発体制を示しています。
Google Cloudのマネージドサービスを活用することで、インフラ管理の負荷を軽減しながら、常にモダンな機能を活用できる環境を維持しています。これは、限られたエンジニアリソースをビジネス価値の創出により集中させるための重要な戦略です。
データ活用基盤の再構築
今後の展望として、SmartHRは「起業初期に構築したデータ分析基盤についてもそろそろ本格的に手を入れていきたい」と計画しています。HRTechサービスとして蓄積される労務データは、適切に活用することで新たなビジネス価値を創出できる可能性を秘めています。
BigQueryやLookerとの統合を活かし、より高度なデータ分析機能を提供することで、顧客企業の人事戦略により深く貢献できるサービスへの進化が期待されます。
小規模〜中規模開発への応用可能な教訓
段階的技術導入の重要性
SmartHRの事例から学べる最も重要な教訓は、段階的な技術導入の価値です。いきなりすべてを最新技術に置き換えるのではなく、ビジネス価値と技術的リスクのバランスを慎重に判断しながら進める姿勢は、規模を問わず重要です。
Next.jsの導入も、新規プロダクトから始めて徐々に既存プロダクトに展開するアプローチにより、学習コストを分散させながらノウハウを蓄積することができました。App Routerの採用においても、社内事例がない中で慎重に検討し、将来性を重視した判断を行っています。
技術選択における現実主義
「学習コストを抑えつつ、マネージドなコンテナ運用基盤を構築」という方針は、小規模チームでも参考になる現実的なアプローチです。最新技術への憧れと運用の現実性のバランスを取ることで、持続可能な技術基盤を構築できます。
特に、GKEではなくCloud Runを選択した理由「GKE は自由度が高く、できることも増えるのですが、反面、カスタマイズの幅が広く、学習が必要」という判断は、技術選択における重要な視点を示しています。
組織的な技術力向上の仕組み
フロントエンドMTGや「フロントエンドこれだけはやっておけリスト」のような組織的な取り組みは、小規模チームでも実践可能な知見共有の仕組みです。技術力の属人化を防ぎ、チーム全体のレベルアップを図る効果的なアプローチと言えるでしょう。
定期的な技術情報共有や、品質基準の明文化による標準化は、プロジェクトの規模に関わらず重要な投資領域です。短期的には時間を要しますが、長期的な開発効率と品質の向上に大きく貢献します。
小規模〜中規模プロジェクトでのNext.js×Google Cloud導入支援
大規模HRTechで実証された技術パターンを適切なスケールで実装
私たちZetlinkerは、SmartHRのような大規模システムで実証されたNext.js×Google Cloud構成を、小規模から中規模のプロジェクトに最適化して提供する専門開発チームです。大規模エンタープライズシステムの開発は扱っておりませんが、そこで培われた技術的知見とベストプラクティスを活用し、お客様のプロジェクト規模と予算に最適な実装をご提案します。
私たちの専門領域と技術的優位性
SmartHRで実証されたCloud RunとNext.jsの組み合わせによる高性能Webアプリケーション開発を、小規模チームでも運用可能な形で提供します。Terraformによるインフラ標準化や、React TypeScript によるフロントエンド最適化など、大規模システムの知見を適切にスケールダウンした実装を行います。
Google Cloudの豊富なマネージドサービスを活用することで、限られたリソースでも企業レベルのセキュリティとパフォーマンスを実現します。SOC2レベルの高いセキュリティ基準で構築された技術パターンを、お客様の要件に応じて段階的に適用することが可能です。
対応プロジェクト規模と段階的アプローチ
基本構成(100-300万円):Next.js + Cloud Run による企業サイト・Webアプリケーション
標準構成(300-600万円):認証機能・管理画面・API連携を含む業務システム
拡張構成(600-800万円):マルチテナント対応・高度なセキュリティ・パフォーマンス最適化
SmartHRのような大規模システムの開発は行っておりませんが、将来的な拡張性を考慮した設計により、サービス成長に応じた段階的なスケールアップにも対応できるアーキテクチャを提供します。
技術的特徴とサポート体制
Next.js App RouterやCloud Runの最新機能を活用しつつ、運用負荷を最小限に抑えた実装を行います。SmartHRで実践されている「フロントエンドこれだけはやっておけリスト」のような品質管理手法も、プロジェクト規模に応じて適用し、長期的な保守性を確保します。
開発後の運用サポートも含めて、技術的負債の蓄積を避けながら継続的な改善を可能にする基盤づくりを重視しています。大規模システムで培われたノウハウを活かし、小規模チームでも実践可能な運用体制をご提案いたします。
お問い合わせ SmartHRの事例から学んだ最適化技術を活用したNext.js×Google Cloudアプリケーション開発について、お気軽にご相談ください。お客様のビジネス要件と技術的課題に応じた最適なソリューションをご提案いたします。
参考資料