ข่าวไอที Blognone » Cloudflare เลิกใช้ NGINX หันไปพัฒนาเว็บเซิร์ฟเซอร์เองด้วยภาษา Rust

Cloudflare เลิกใช้ NGINX หันไปพัฒนาเว็บเซิร์ฟเซอร์เองด้วยภาษา Rust

14 กันยายน 2022
12   0

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

ที่มา - NGINX

[source: https://www.blognone.com/node/130408]