Cloudflare รายงานถึงโครงการ Pingora พรอกซี่เซิร์ฟเวอร์ภายในของ Cloudflare เองที่พัฒนาขึ้นเพื่อทดแทน NGINX ที่ทาง Cloudflare พบข้อจำกัดหลายอย่างทำให้ไม่สามารถรีดประสิทธิภาพออกมาได้เต็มที่
ข้อจำกัดสำคัญของ NGINX ที่ Cloudflare พบคือระบบการกระจายโหลดของ NGINX นั้นใช้รูปแบบ worker ที่เป็นโปรเซสในระบบปฎิบัติการ กระจายโหลดระหว่าง worker แต่ละตัวไม่เท่ากัน และไม่สามารถแชร์ connection pool ข้าม worker ได้ ทำให้มี connection ไปยังเซิร์ฟเวอร์ต้นทางมากเกินความจำเป็น รวมถึงการเขียนฟีเจอร์เพิ่มเติมให้กับ NGINX นั้นทำได้ยาก หากไม่เขียนในภาษา C ที่ผิดพลาดได้ง่ายก็ต้องเขียนในภาษา Lua ที่ประสิทธิภาพไม่ดีนักและภาษา Lua ไม่ใช่ static type ทำให้จัดการโค้ดที่ซับซ้อนสูงได้ลำบาก
ทาง Cloudflare เลือกจะพัฒนาพรอกซี่ขึ้นมาใหม่ด้วยภาษา Rust เพราะมีประสิทธิภาพที่ดี และการพัฒนาโครงการเองทำให้ยืดหยุ่นต่อการใช้งานนอกมาตรฐาน เช่น พรอกซี่บางตัวไม่รองรับ HTTP status ที่สูงกว่า 599 แม้ว่าจะมีคนใช้งานนอกมาตรฐานอยู่บ้างก็ตาม
ตอนนี้ Pingora ถูกใช้งานใน request แทบทั้งหมดที่ต้องขอข้อมูลจากต้นทาง (origin server) ระยะเวลาหน่วงก่อนได้รับไบต์แรก (time to first byte - TTFB) ลดลงที่ค่ามัธยฐาน 5ms เพราะสามารถแชร์ connection pool ร่วมกันได้ทั้งเซิร์ฟเวอร์ ทำให้ไม่เสียเวลาเชื่อมต่อใหม่ อัตราการใช้ซีพียูลดลง 70% และใช้หน่วยความจำลดลง 67% เพราะย้ายโค้ดจาก Lua ใน NGINX มาสู่ Rust
ที่มา - Cloudflare