5 คะแนน โดย xguru 2019-12-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Plaid เป็นบริการที่อ่านข้อมูลยอดคงเหลือของผู้ใช้จากธนาคาร แล้วนำไปให้บริการภายนอกผ่าน API ธนาคารแบบรวม

จากเดิมที่ใช้งาน Node worker 4,000 เครื่องโดยไม่มีการประมวลผลแบบขนาน เปลี่ยนมาเป็นการประมวลผลแบบขนานและประหยัดค่าใช้จ่ายได้ปีละ $300K

มีการสรุปแนวทางที่ลองทำเป็นขั้นตอนเพื่อให้สามารถนำการเปลี่ยนแปลงไปใช้ได้โดยไม่เกิดข้อผิดพลาดไว้อย่างดี

  • เพิ่มเมตริกใน Prometheus : V8 Heap Size, GC, Task Latency

  • สร้างแดชบอร์ด Grafana สำหรับวัดผลของการประมวลผลแบบขนาน

  • ใช้ฟีเจอร์แฟลกของ LaunchDarkly เพื่อปรับจูนผลของการประมวลผลแบบขนานได้โดยไม่ต้อง redeploy

  • สร้าง flamegraph ในโปรดักชันเพื่อวัดเวลา CPU

หลัง deploy จริง ก็ยังคงตรวจสอบต่อเนื่องและปรับแก้ซ้ำไปเรื่อย ๆ

  • เพิ่ม Max Heap Size ของ Node

  • แก้คอขวดของ S3 : เพิ่ม maxSockets ที่ S3 client ลดไว้เหลือ 50 ขึ้นเป็น 20480

  • เพิ่มความเร็วในการทำ JSON Serialization - เปลี่ยน bfj เป็น JSONStream

  • กำหนดขนาด semi space เพื่อลดจำนวนครั้งของการทำ GC

  • ปรับเปลี่ยนวิธีการล็อกที่มี regex จำนวนมากเพื่อเพิ่มประสิทธิภาพเวลา CPU

1 ความคิดเห็น

 
chusouk 2019-12-17

โอ้โห