5 पॉइंट द्वारा xguru 2019-12-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Plaid एक ऐसी सेवा है जो बैंकों से उपयोगकर्ताओं की balance information पढ़कर उसे unified banking API के जरिए बाहरी सिस्टम्स को उपलब्ध कराती है.

बिना parallelization के यह 4000 Node workers चला रहा था, फिर इसे parallel processing में बदलकर सालाना $300K की बचत की गई.

बिना errors के बदलाव लागू करने के लिए चरणबद्ध तरीके से आज़माए गए approaches को अच्छी तरह व्यवस्थित किया गया है.

  • Prometheus में metrics जोड़े गए: V8 Heap Size, GC, Task Latency

  • parallel processing के प्रभाव को मापने के लिए Grafana dashboard बनाया गया

  • LaunchDarkly के feature flag का उपयोग करके बिना redeploy के parallel processing के प्रभाव को tune किया गया

  • CPU time मापने के लिए production में flamegraph बनाया गया

वास्तविक deploy के बाद भी लगातार जांच और सुधार दोहराए गए

  • Node का Max Heap Size बढ़ाया गया

  • S3 bottleneck हटाया गया: S3 client द्वारा 50 तक घटा दिए जाने वाले maxSockets को 20480 तक बढ़ाया गया

  • JSON serialization की गति बेहतर की गई - bfj को JSONStream से बदला गया

  • semi space size निर्धारित करके GC चलने की संख्या कम की गई

  • logging का वह तरीका बदला गया जिसमें बहुत सारे regex थे, ताकि CPU time optimize किया जा सके

1 टिप्पणियां

 
chusouk 2019-12-17

ओहों