Framework⚡ パフォーマンス・速度
LinkedIn、モバイルバックエンドをRuby on RailsからNode.jsへ刷新
Ruby on RailsNode.js
モバイルアプリの高速化を目指したLinkedInが、Railsで構築していたモバイル向けバックエンドをNode.jsで再構築し、必要サーバー台数を大幅に削減した。
課題
Railsで構築したモバイルバックエンドがトラフィック増でスケール課題に直面
アプローチ
フロント/バックエンド双方をJavaScriptで書けるNode.jsで再構築、チーム統合も実施
効果
同等トラフィックの処理に必要なサーバー台数を大幅削減、レイテンシも改善
背景
LinkedInはモバイルアプリのバックエンドを当初Ruby on Railsで構築していたが、モバイルアプリの利用拡大に伴いパフォーマンスとスケーラビリティの向上が課題となった。2011年頃からNode.jsでの再構築に着手し、フロントエンドとバックエンドの両方をJavaScriptで書けるようにすることで、モバイルチームとフロントエンドチームを組織的に統合できるという狙いもあった。
移行のプロセス
移行はモバイルエンジニアリングディレクターのKiran Prasad氏らが主導し、Railsで構築されていたモバイル向けバックエンドをNode.jsベースの新しいアーキテクチャへ置き換えていく形で進められた。技術的な再構築にとどまらず、JavaScriptという共通言語を軸にフロントエンドとモバイルのエンジニアリング組織を近づける狙いも含まれていた。
移行前後の変化
| 指標 | Before | After | |
|---|---|---|---|
| 必要サーバー台数 | 多数(Rails時代) | 大幅減(Node.js化後) |
結果
移行の結果、同等のトラフィックを処理するために必要なサーバー台数を大幅に削減でき、レイテンシも改善したと報告されている。この事例はLinkedInのエンジニアによってACM Queue誌の技術記事として公開された。
2012-10-01
他の事例も見る