วันนี้ทำงาน

Cloudflare Workers และ Cloudflare Pages คืออะไร ทำไม host เว็บได้ฟรีแบบเทพขนาดนี้

Cloudflare Workers และ Cloudflare Pages คืออะไร ทำไม host เว็บได้ฟรีแบบเทพขนาดนี้

เมื่อก่อนถ้าใครจะทำเว็บสักตัว ภาพในหัวคือต้องไปเช่า server ที่ไหนสักที่ ต้องตั้งค่า ต้องดูแลเรื่อง traffic เยอะแล้ว server ล่ม แต่พอมาเจอ Cloudflare Workers ครั้งแรก ผมยอมรับว่าอึ้งไปพักหนึ่ง เพราะมันคือ platform ที่ให้เราเอาเว็บหรือแอปไป host แล้ววิ่งอยู่บนเครือข่ายทั่วโลกของ Cloudflare ได้เลย ฟรี

Cloudflare คือใคร แล้ว Workers คืออะไร

Cloudflare เป็นบริษัทที่คนส่วนใหญ่รู้จักในฐานะผู้ให้บริการ CDN (ระบบที่ช่วยให้เว็บโหลดเร็วขึ้นโดยเก็บสำเนาไฟล์ไว้ตามศูนย์ข้อมูลทั่วโลก) และป้องกันการโจมตีเว็บไซต์ แต่ที่หลายคนอาจไม่รู้คือ Cloudflare มีเครือข่ายศูนย์ข้อมูลกว่า 300 จุดทั่วโลก แล้วเขาเปิดให้นักพัฒนาเอาโค้ดของตัวเองไปรันบนเครือข่ายนั้นได้เลย นี่แหละคือ Workers

พูดง่ายๆ Workers คือที่ให้เราเอาโค้ด JavaScript ไปวางแล้วมันจะรันอยู่ใกล้ๆ ผู้ใช้ทุกคนทั่วโลกพร้อมกัน คนไทยเข้าเว็บก็วิ่งจากศูนย์ข้อมูลแถวเอเชีย คนอเมริกาเข้าก็วิ่งจากศูนย์ข้อมูลแถวอเมริกา โดยที่เราไม่ต้องไปตั้งค่า server หลายตัวเอง Cloudflare จัดการให้หมด

แล้วมัน host เว็บหรือ webapp ได้จริงเหรอ

ได้จริงครับ แล้วนี่คือจุดที่ผมมองว่า wow ที่สุด เมื่อก่อน Workers ทำได้แค่รัน logic เบื้องหลัง เช่น API หรือเช็คสิทธิ์ผู้ใช้ ส่วนไฟล์หน้าเว็บอย่าง HTML, CSS, รูปภาพ ต้องไปฝากไว้ที่อื่น แต่ตอนนี้ Workers รองรับการ host ไฟล์พวกนี้ได้ในตัวเองเลย นั่นแปลว่าเว็บ React, เว็บ WordPress แบบ headless (WordPress ที่ทำหน้าที่แค่เก็บข้อมูล ส่วนหน้าเว็บที่คนเห็นสร้างด้วย framework อื่น) หรือแอปที่เขียนด้วย Astro, Next.js สามารถเอาไป deploy อยู่บน Cloudflare ได้ทั้งก้อนเดียว ทั้งหน้าเว็บและ backend logic

ที่ผมเคยทำเองก็คือเอาเว็บ affiliate ที่ build ด้วย Astro ไป host บน Cloudflare ตรงๆ โหลดเร็วมากเพราะไฟล์ถูกกระจายอยู่ใกล้ผู้ใช้ทุกที่ในโลก ไม่ต้องรอโหลดจาก server ที่เดียว

ทำไมมันฟรีได้ขนาดนี้

จุดสำคัญคือ Workers ไม่ได้ใช้เทคโนโลยีแบบ server หรือ container เหมือนที่อื่น แต่ใช้สิ่งที่เรียกว่า V8 isolate (สภาพแวดล้อมขนาดจิ๋วที่ใช้ engine ตัวเดียวกับที่ขับเคลื่อน Google Chrome) ทำให้โค้ดของเราเริ่มทำงานได้แทบจะทันทีเวลามีคนเข้าเว็บ ไม่ต้องเสียเวลา “ปลุกเครื่อง” เหมือน server ทั่วไป เพราะมันเบามาก Cloudflare เลยแจกฟรีให้ทดลองใช้ได้เยอะพอสมควรโดยยังไม่ต้องเสียตังค์

ไฟล์หน้าเว็บที่เป็น static (ไฟล์ที่ไม่ต้องประมวลผลอะไร แค่ส่งให้ผู้ใช้ตรงๆ อย่างรูปภาพหรือ CSS) แทบไม่มีค่าใช้จ่ายเลย ส่วนที่เริ่มมีเพดานฟรีคือ logic ที่ต้องประมวลผลจริงๆ เช่น การเช็คข้อมูลจาก database หรือ generate หน้าเว็บแบบ dynamic ซึ่งเรื่องนี้ผมจะแยกไปเขียนอีกบทความให้ละเอียดอีกที

แล้วมันเหมาะกับใคร

ถ้าใครกำลังทำเว็บส่วนตัว, portfolio, เว็บ affiliate, หรือแม้แต่ webapp เล็กๆ ที่ยังไม่มี traffic เยอะ ผมมองว่า Cloudflare เป็นตัวเลือกที่คุ้มมากสำหรับเริ่มต้น เพราะไม่ต้องมีความรู้เรื่อง server เลยก็ตั้งได้ ต่อ GitHub เข้าไป push code แล้วเว็บก็ขึ้นบน edge ทั่วโลกให้เลย

ใครเคยลองเอาเว็บไป host บน Cloudflare Workers แล้วบ้างครับ รู้สึกยังไงกับความเร็วที่ได้บ้าง