5 Punkte von xguru 2019-12-14 | 1 Kommentare | Auf WhatsApp teilen

Plaid ist ein Dienst, der Kontostandsinformationen von Nutzern bei Banken ausliest und sie extern über eine integrierte Banking-API bereitstellt.

Ohne Parallelisierung betrieb das Unternehmen 4.000 Node-Worker, stellte dann auf parallele Verarbeitung um und sparte dadurch jährlich 300.000 US-Dollar.

Der Artikel fasst die schrittweisen Ansätze gut zusammen, mit denen die Umstellung ohne Fehler umgesetzt wurde.

  • Metriken zu Prometheus hinzugefügt: V8-Heap-Größe, GC, Task-Latenz

  • Ein Grafana-Dashboard erstellt, um den Effekt der Parallelverarbeitung zu messen

  • Mit Feature-Flags von LaunchDarkly die Wirkung der Parallelverarbeitung ohne Redeploy feinjustiert

  • Flamegraphs in der Produktion erzeugt, um die CPU-Zeit zu messen

Nach dem eigentlichen Deployment wurde weiter untersucht und wiederholt nachgebessert.

  • Max Heap Size von Node erhöht

  • S3-Bottleneck beseitigt: maxSockets, das der S3-Client auf 50 begrenzte, auf 20480 erhöht

  • Geschwindigkeit der JSON-Serialisierung verbessert – bfj durch JSONStream ersetzt

  • Die Größe des Semi-Space festgelegt, um die Anzahl der GC-Durchläufe zu verringern

  • Die Logging-Methode mit vielen Regex-Ausdrücken geändert, um die CPU-Zeit zu optimieren

1 Kommentare

 
chusouk 2019-12-17

Oh ho