การลดความหน่วง (Latency) ด้วย Edge Computing
ปุ่มชำระเงินทำงานได้ปกติ แต่ความล่าช้าทำให้ธุรกิจต้องเสียลูกค้าไป
ระบบมีความเสถียร API ทำงานได้ และ Backend ก็รองรับการขยายตัวได้
แต่ผู้ใช้งานก็ยังจากไป เพราะแอปพลิเคชันทำงานช้า ในเว็บแอปสมัยใหม่ ความช้าเท่ากับระบบพัง
Latency คือความล่าช้าระหว่างการกระทำของผู้ใช้และการตอบสนองของระบบ ความล่าช้าเพียง 100ms ก็รู้สึกได้แล้ว ผู้ใช้คาดหวังการตอบสนองที่ทันทีทันใด
แพลตฟอร์มอีคอมเมิร์ซแห่งหนึ่งพบปัญหานี้ด้วยตัวเอง พวกเขาเปิดตัวฟีเจอร์ใหม่ ทุกอย่างทำงานได้ดี แต่ผู้ใช้ที่อยู่ไกลจากเซิร์ฟเวอร์กลางกลับพบความล่าช้าในระหว่างการชำระเงิน
อัตราการละทิ้งตะกร้าสินค้า (Cart abandonment) เพิ่มสูงขึ้น ปัญหาก็คือระยะห่างระหว่างผู้ใช้และเซิร์ฟเวอร์
Edge computing เข้ามาแก้ปัญหานี้ โดยการประมวลผลข้อมูลใกล้กับผู้ใช้แทนที่จะเป็นคลาวด์ส่วนกลาง
ขั้นตอนแบบมาตรฐาน: ผู้ใช้ -> เซิร์ฟเวอร์คลาวด์ -> การตอบสนอง
ขั้นตอนแบบ Edge: ผู้ใช้ -> Edge Node -> การตอบสนอง
ระยะทางที่น้อยลงหมายถึงความเร็วที่มากขึ้น
วิธีลด Latency ด้วย Edge computing:
- ย้าย Logic ไปไว้ที่ Edge: ทำการตรวจสอบสิทธิ์ (Authentication) ใกล้กับผู้ใช้
- การทำ Caching อย่างชาญฉลาด: เก็บ Static assets ไว้ที่ Edge เพื่อหลีกเลี่ยงการส่งคำขอไปยัง Origin server
- ใช้ CDN: กระจายเนื้อหาไปยังตำแหน่งต่างๆ ทั่วโลกเพื่อให้โหลดหน้าเว็บได้เร็วขึ้น
- บีบอัดข้อมูล: การตอบกลับด้วย JSON ที่มีขนาดเล็กลงจะเคลื่อนที่ได้เร็วกว่า
ระบบที่ดีที่สุดจะใช้ทั้งสองอย่าง:
- Edge สำหรับการประมวลผลแบบ Real-time
- Cloud สำหรับการคำนวณที่หนักหน่วง
ประมวลผลข้อมูลล่วงหน้า (Precompute) ที่ตำแหน่ง Edge และส่งคำขอไปยัง Node ที่ใกล้ที่สุด
อุตสาหกรรมที่ใช้งานสิ่งนี้อยู่ในปัจจุบัน:
- ยานยนต์ไร้คนขับ
- อีคอมเมิร์ซ
- เกมออนไลน์
- การดูแลสุขภาพ
- สตรีมมิ่ง
ข้อผิดพลาดที่พบบ่อยคือการส่งทุกคำขอไปยังเซิร์ฟเวอร์คลาวด์ส่วนกลาง
กฎนั้นง่ายมาก: ยิ่งการประมวลผลอยู่ใกล้ผู้ใช้มากเท่าไหร่ ประสบการณ์การใช้งานก็จะยิ่งเร็วขึ้นเท่านั้น
Latency คือปัญหาด้านประสบการณ์ผู้ใช้ (User Experience) การลดความล่าช้าจะช่วยรักษาความสนใจของผู้ใช้ไว้ได้
อะไรที่มีผลต่อ Latency ในแอปของคุณมากที่สุด? ระยะทางเครือข่าย, ประสิทธิภาพของเซิร์ฟเวอร์, การออกแบบ API หรือขนาดของข้อมูล?