5 puan yazan xguru 2019-12-14 | 1 yorum | WhatsApp'ta paylaş

Plaid, bankalardan kullanıcıların bakiye bilgilerini okuyup bunu birleşik bankacılık API’si üzerinden dışarıya sunan bir hizmet.

Paralelleştirme olmadan 4000 Node worker çalıştırırken, paralel işlemeye geçip yıllık 300 bin dolar tasarruf etti.

Değişikliği hatasız uygulamak için adım adım denedikleri yaklaşımlar iyi özetlenmiş.

  • Prometheus’a metrik ekleme: V8 Heap Size, GC, Task Latency

  • Paralel işlemenin etkisini ölçmek için Grafana dashboard oluşturma

  • LaunchDarkly feature flag’leriyle yeniden deploy etmeden paralel işlemenin etkisini ayarlama

  • CPU süresini ölçmek için production’da flamegraph oluşturma

Gerçek deploy sonrasında da araştırmaya devam edip düzeltmeleri tekrarladılar.

  • Node’un Max Heap Size değerini artırma

  • S3 darboğazını giderme: S3 client’ın 50’ye düşürdüğü maxSockets değerini 20480’e çıkarma

  • JSON serialization hızını artırma - bfj yerine JSONStream kullanma

  • Semi-space boyutunu belirleyerek GC çalışma sayısını azaltma

  • Çok sayıda regex içeren logging yöntemini değiştirerek CPU süresini optimize etme

1 yorum

 
chusouk 2019-12-17

Vay be