Cloudflare Workers
มันคืออะไร
ลองนึกภาพเครือร้านกาแฟที่ใช้สูตรเดียวกันทุกสาขาในทุกเมือง ไม่ว่าคุณจะอยู่ที่ไหน คุณก็รับออร์เดอร์จากร้านที่ใกล้ที่สุดได้เสมอ Cloudflare Workers ทำงานแบบเดียวกัน คือให้คุณรัน JavaScript, TypeScript หรือ WebAssembly บนเครือข่ายทั่วโลกของ Cloudflare — กว่า 300 เมือง — แทนที่จะรันอยู่ในภูมิภาคเดียว แต่ละคำขอ (request) จะรันอยู่ในสภาพแวดล้อมย่อยขนาดจิ๋วที่แยกจากกันเรียกว่า V8 isolate ซึ่งเริ่มทำงานได้ในเวลาต่ำกว่าหนึ่งมิลลิวินาที จึงแทบไม่มี cold start (การอุ่นเครื่องช้าๆ ในคำขอแรก) เลย คุณเขียนตัวจัดการ fetch (fetch handler) แล้วดีพลอยด้วยคำสั่งเดียว โค้ดของคุณก็จะไปรันอยู่ใกล้ผู้ใช้ทุกคนโดยอัตโนมัติ
จุดแข็ง
- แทบไม่มี cold start เลย เพราะใช้ V8 isolate แทนที่จะเป็นคอนเทนเนอร์เต็มรูปแบบ
- กระจายทั่วโลกโดยค่าเริ่มต้น — โค้ดของคุณถูกดีพลอยไปทุกจุดของ Cloudflare พร้อมกัน
- แผนฟรีให้ใช้เยอะ จ่ายตามจำนวนคำขอและเวลา CPU ที่ใช้จริง ไม่ใช่ตามเวลาที่เครื่องว่าง
- มี bindings (การเชื่อมต่อสำเร็จรูป) ระดับเฟิร์สคลาสไปยัง D1 (ฐานข้อมูล ), R2 (ที่เก็บไฟล์), KV (ที่เก็บข้อมูลแบบคีย์-ค่า เหมือนพจนานุกรมขนาดใหญ่ที่จับคู่ label กับ value), Queues, Durable Objects และ Workers AI
- มี (เครื่องมือบรรทัดคำสั่งที่คุณพิมพ์คำสั่งเข้าไป) ตัวเดียวคือ
wranglerที่จัดการทั้งการพัฒนา การเก็บความลับ (secrets) และการดีพลอย
ข้อแลกเปลี่ยน
- รันไทม์ไม่ใช่ Node.js — แพ็กเกจ npm หลายตัวที่พึ่งพาโค้ด native หรือระบบไฟล์จะใช้ไม่ได้ แม้ว่าความเข้ากันได้กับ Node จะพัฒนาขึ้นเรื่อยๆ
- เวลา CPU และหน่วยความจำต่อคำขอถูกจำกัดไว้ ดังนั้นงานคำนวณหนักๆ จะไม่เหมาะ
- ไม่มีดิสก์ในเครื่องหรือสถานะ (state) ที่คงอยู่ในโพรเซสระยะยาว คุณต้องใช้ bindings แทน
- การรันแบบกระจายตัวทำให้การดีบักแบบ step-through ข้ามภูมิภาคทำได้ยากขึ้น
เมื่อไหร่ควรใช้
เลือกใช้ Workers เมื่อคุณต้องการ (Application Programming Interface — ชุดของ ที่ซอฟต์แวร์อื่นเรียกเพื่อคุยกับแอปของคุณ) ที่เร็วและกระจายทั่วโลก, middleware, การตรวจสอบสิทธิ์ (auth checks), การรีไดเรกต์, ตัวจัดการ หรือแบ็กเอนด์แบบฟูลสแตกที่พึ่งพาที่เก็บข้อมูลและ AI bindings ของ Cloudflare
เหมาะกับ vibe coding แค่ไหน
Workers เป็นหนึ่งในเป้าหมายการดีพลอยที่เป็นมิตรที่สุดสำหรับการเขียนโค้ดโดย AI สั่งการ เพราะโปรเจกต์ประกอบด้วยไฟล์คอนฟิกเดียวบวกกับตัวจัดการหนึ่งตัว และเอเจนต์สามารถสร้างโครงร่าง ผูกบริการ (bind services) และดีพลอยได้ครบวงจร บอกเอเจนต์ไว้ล่วงหน้าว่าคุณกำลังเล็งเป้าไปที่ Workers (ไม่ใช่ Node) เพื่อให้มันเคารพข้อจำกัดของรันไทม์และใช้ bindings แทนที่จะใช้ เช่น fs ตัวอย่างด้านล่างเชื่อมต่อ Worker เข้ากับ KV namespace
# wrangler.toml
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2026-06-01"
[[kv_namespaces]]
binding = "CACHE"
id = "your-kv-namespace-id"
npx wrangler dev # local edge runtime
npx wrangler deploy # ship to the global network