CloudFlare เปิดตัว Durable Objects รุ่นเบต้า
(blog.cloudflare.com)- 'Unique Durable Objects' สำหรับ Serverless
→ Objects : ตามแนวคิด OOP โดยตรง เป็นอินสแตนซ์ของคลาสและมีทั้งโค้ดกับสถานะรวมอยู่ด้วย
→ Unique : มี UUID หากรู้เพียง ID ก็สามารถส่งข้อความไปยังอ็อบเจ็กต์นั้นได้จาก Worker อื่นทั่วโลก
→ Durable : ต่างจากอ็อบเจ็กต์ทั่วไป ตรงที่สามารถบันทึกสถานะแบบถาวรลงดิสก์ได้ และเข้าถึงใช้งานได้โดยไม่มีเลเทนซี
- ฟีเจอร์หลัก 2 อย่าง
→ Storage : มอบ Transactional Consistency ที่แข็งแกร่ง สามารถแบ่งฐานข้อมูลขนาดใหญ่ออกเป็นหน่วยเล็กหลายส่วนได้ และขยายระบบได้โดยไม่เพิ่มภาระในการดูแลรักษา
→ Coordination : โดยปกติคำขอแบบ serverless มักถูก load balancing แบบสุ่ม จึงเป็นไปไม่ได้ที่ไคลเอนต์สองรายจะเชื่อมต่อกับ worker ตัวเดียวกัน แต่ตอนนี้ทำได้แล้ว
กล่าวคือ สามารถสร้างแชตแบบเรียลไทม์ การแก้ไขเอกสารร่วมกัน การประชุมวิดีโอ คิวข้อความแบบ Pub/Sub เซสชันเกม ฯลฯ บน serverless ได้
หากต้องการใช้ WebSocket ก็จำเป็นต้องมี Coordination ลักษณะนี้ และเมื่อทำได้ผ่าน DO แล้ว Workers ก็เริ่มรองรับ WebSocket ด้วย
- Durable Objects ไม่มีแนวคิดเรื่อง Region แต่รองรับทั่วโลก (Cloudflare จะจัดการส่งไปยังตำแหน่งที่ใกล้ที่สุดและดูแลให้เอง)
การใช้งานที่เหมาะสม
-
แอปเด่นน่าจะเป็นเครื่องมือทำงานร่วมกันสำหรับแก้ไขเอกสารแบบเรียลไทม์ที่มีผู้ใช้จำนวนมาก
-
Atomic Counter : เคาน์เตอร์ที่รองรับการทำงานพร้อมกันโดยไม่มีการสูญเสียของการเพิ่ม/ลด แม้มีหลายไคลเอนต์ร้องขอพร้อมกัน
-
แชต : แม้เป็นห้องสนทนาขนาดใหญ่มากก็ทำได้ด้วยโค้ดเพียงไม่กี่ร้อยบรรทัด และยังทำ rate limit ต่อ IP ได้ด้วย
-
ตะกร้าสินค้า, เกมเซิร์ฟเวอร์, IoT Coordination, โซเชียลฟีด, วิดเจ็ตคอมเมนต์/แชต
อนาคตของ Durable Objects : ฐานข้อมูล Edge อย่างแท้จริง
ขณะนี้ยังต้องได้รับคำเชิญเข้าร่วมเบต้าจึงจะใช้งานได้
ราคายังอยู่ระหว่างการพิจารณา แต่คาดว่าจะถูกกว่า AWS DynamoDB หรือ Google Cloud Firestore (จากคอมเมนต์ของ Greg ซึ่งเป็น PM บน HN)
1 ความคิดเห็น
ที่ผ่านมา serverless มักถูกนำไปใช้กับสิ่งที่ส่วนใหญ่เป็นแบบ stateless เป็นหลัก แต่ตอนนี้ก็กำลังขยายให้ครอบคลุมถึงส่วนที่ต้องมี coordination ด้วยนะครับ
ช่วงนี้ความเคลื่อนไหวของ CloudFlare น่าสนใจมากจริงๆ
CloudFlare, เริ่มเบต้า serverless ของ Workers Unbound https://th.news.hada.io/topic?id=2543
วิธีที่ CloudFlare ทำให้เวลา cold start ของ Workers เป็น 0 https://th.news.hada.io/topic?id=2567
Cloudflare เปิดตัวบริการทีวีถ่ายทอดสดตลอด 24 ชั่วโมงที่ใช้โครงข่ายระดับโลกของตัวเอง https://th.news.hada.io/topic?id=2227