“Unkey ลาออกจาก Serverless” — เมื่อความเร็วและความเรียบง่ายสำคัญกว่าแนวคิดไร้เซิร์ฟเวอร์
หลังจากใช้ Cloudflare Workers มานานกว่า 2 ปี Unkey ตัดสินใจย้ายระบบ API authentication ทั้งหมดไปใช้ Go servers แบบ stateful โดยให้เหตุผลว่า serverless แม้จะดูดีในแง่การกระจายโหลดและต้นทุน แต่กลับสร้าง “ภาษีความซับซ้อน” ที่ทำให้ทีมต้องสร้าง workaround มากมายเพื่อให้ระบบทำงานได้เร็วและเสถียร
ปัญหาหลักคือ latency ที่ไม่สามารถลดต่ำกว่า 30ms ได้ แม้จะใช้ cache หลายชั้น รวมถึงการต้องพึ่งพา SaaS หลายตัวเพื่อแก้ปัญหาที่ serverless สร้างขึ้น เช่น Redis, Queues, Durable Objects และ Logstreams ซึ่งเพิ่มทั้งความซับซ้อนและจุดล้มเหลว
เมื่อย้ายมาใช้ Go servers ทีมสามารถลด latency ได้ถึง 6 เท่า และตัดทิ้งระบบ pipeline ที่ซับซ้อน เช่น chproxy และ logdrain workers โดยใช้การ batch ข้อมูลใน memory แบบง่าย ๆ แทน
นอกจากนี้ยังได้ประโยชน์ด้าน self-hosting, การพัฒนาในเครื่อง, และการหลุดพ้นจากข้อจำกัดของ Cloudflare runtime โดยยังคงใช้ AWS Global Accelerator และ Fargate เพื่อรักษาความสามารถในการกระจายโหลดและ autoscaling
ข้อมูลในข่าว
Unkey ย้ายจาก Cloudflare Workers ไปใช้ Go servers แบบ stateful
ลด latency ได้ถึง 6 เท่า จากเดิมที่ติดอยู่ที่ 30ms+
ปัญหาหลักคือการ cache ที่ต้องพึ่ง network request เสมอ
ใช้ cache แบบ SWR หลายชั้นแต่ยังไม่เร็วพอ
ต้องใช้ SaaS หลายตัวเพื่อแก้ปัญหา serverless เช่น Redis, Queues, Durable Objects
pipeline สำหรับ analytics และ logs มีความซับซ้อนสูง
ใช้ chproxy เพื่อ buffer event ก่อนส่งเข้า ClickHouse
ใช้ logdrain worker เพื่อจัดการ metrics และ logs ก่อนส่งเข้า Axiom
เมื่อย้ายมา Go servers สามารถ batch ข้อมูลใน memory ได้โดยตรง
ลดความซับซ้อนของระบบจาก distributed system เหลือแค่ application เดียว
รองรับ self-hosting ด้วยคำสั่งง่าย ๆ เช่น docker run -p 8080:8080 unkey/api
พัฒนาและ debug ในเครื่องได้ง่ายขึ้น
หลุดพ้นจากข้อจำกัดของ Cloudflare runtime
ใช้ AWS Global Accelerator และ Fargate เพื่อรักษาความสามารถในการกระจายโหลด
เตรียมเปิดตัว “Unkey Deploy” แพลตฟอร์มสำหรับรัน Unkey ได้ทุกที่
https://www.unkey.com/blog/serverless-exit 🚪 “Unkey ลาออกจาก Serverless” — เมื่อความเร็วและความเรียบง่ายสำคัญกว่าแนวคิดไร้เซิร์ฟเวอร์
หลังจากใช้ Cloudflare Workers มานานกว่า 2 ปี Unkey ตัดสินใจย้ายระบบ API authentication ทั้งหมดไปใช้ Go servers แบบ stateful โดยให้เหตุผลว่า serverless แม้จะดูดีในแง่การกระจายโหลดและต้นทุน แต่กลับสร้าง “ภาษีความซับซ้อน” ที่ทำให้ทีมต้องสร้าง workaround มากมายเพื่อให้ระบบทำงานได้เร็วและเสถียร
ปัญหาหลักคือ latency ที่ไม่สามารถลดต่ำกว่า 30ms ได้ แม้จะใช้ cache หลายชั้น รวมถึงการต้องพึ่งพา SaaS หลายตัวเพื่อแก้ปัญหาที่ serverless สร้างขึ้น เช่น Redis, Queues, Durable Objects และ Logstreams ซึ่งเพิ่มทั้งความซับซ้อนและจุดล้มเหลว
เมื่อย้ายมาใช้ Go servers ทีมสามารถลด latency ได้ถึง 6 เท่า และตัดทิ้งระบบ pipeline ที่ซับซ้อน เช่น chproxy และ logdrain workers โดยใช้การ batch ข้อมูลใน memory แบบง่าย ๆ แทน
นอกจากนี้ยังได้ประโยชน์ด้าน self-hosting, การพัฒนาในเครื่อง, และการหลุดพ้นจากข้อจำกัดของ Cloudflare runtime โดยยังคงใช้ AWS Global Accelerator และ Fargate เพื่อรักษาความสามารถในการกระจายโหลดและ autoscaling
✅ ข้อมูลในข่าว
➡️ Unkey ย้ายจาก Cloudflare Workers ไปใช้ Go servers แบบ stateful
➡️ ลด latency ได้ถึง 6 เท่า จากเดิมที่ติดอยู่ที่ 30ms+
➡️ ปัญหาหลักคือการ cache ที่ต้องพึ่ง network request เสมอ
➡️ ใช้ cache แบบ SWR หลายชั้นแต่ยังไม่เร็วพอ
➡️ ต้องใช้ SaaS หลายตัวเพื่อแก้ปัญหา serverless เช่น Redis, Queues, Durable Objects
➡️ pipeline สำหรับ analytics และ logs มีความซับซ้อนสูง
➡️ ใช้ chproxy เพื่อ buffer event ก่อนส่งเข้า ClickHouse
➡️ ใช้ logdrain worker เพื่อจัดการ metrics และ logs ก่อนส่งเข้า Axiom
➡️ เมื่อย้ายมา Go servers สามารถ batch ข้อมูลใน memory ได้โดยตรง
➡️ ลดความซับซ้อนของระบบจาก distributed system เหลือแค่ application เดียว
➡️ รองรับ self-hosting ด้วยคำสั่งง่าย ๆ เช่น docker run -p 8080:8080 unkey/api
➡️ พัฒนาและ debug ในเครื่องได้ง่ายขึ้น
➡️ หลุดพ้นจากข้อจำกัดของ Cloudflare runtime
➡️ ใช้ AWS Global Accelerator และ Fargate เพื่อรักษาความสามารถในการกระจายโหลด
➡️ เตรียมเปิดตัว “Unkey Deploy” แพลตฟอร์มสำหรับรัน Unkey ได้ทุกที่
https://www.unkey.com/blog/serverless-exit