5 ポイント 投稿者 xguru 2019-12-14 | 1件のコメント | WhatsAppで共有

Plaidは、銀行からユーザーの残高情報を読み取り、統合バンキングAPIとして外部に提供するサービス。

並列化なしで4000台のNodeワーカーを運用していたが、並列処理に切り替えて年間30万ドルを節約。

エラーなく変更を適用するために、段階的に試したアプローチがよく整理されている。

  • Prometheusにメトリクスを追加: V8 Heap Size、GC、Task Latency

  • 並列処理の効果測定用Grafanaダッシュボードを作成

  • LaunchDarklyのフィーチャーフラグを使って、再デプロイなしで並列処理の効果をチューニング

  • CPU時間を測定するため、本番環境でflamegraphを生成

実際のデプロイ後も継続して調査し、修正を繰り返した。

  • NodeのMax Heap Sizeを増加

  • S3のボトルネックを解消: S3クライアントが50まで下げてしまうmaxSocketsを20480に増加

  • JSON Serializationの速度を改善 - bfjをJSONStreamに置き換え

  • semi spaceのサイズを指定してGCの実行回数を削減

  • regexを多用したロギング方式を変更してCPU時間を最適化

1件のコメント

 
chusouk 2019-12-17

おお