บันทึก

Cloudflare กำลังเปลี่ยนวิธีคิดเรื่อง Infrastructure

💻 Development

เราเขียน Code แล้วเชื่อมต่อกับบริการต่าง ๆ โดยไม่จำเป็นต้องเริ่มจากการสร้างและดูแล Server เอง

ช่วงหลังผมใช้เวลากับ Cloudflare มากขึ้น จากเดิมที่รู้จักในฐานะผู้ให้บริการ DNS, CDN และระบบป้องกันเว็บไซต์ ตอนนี้มันกลายเป็น Platform ที่มีบริการแทบจะครบวงจรสำหรับการพัฒนา Software ตั้งแต่ Compute, Database, Storage, Queue ไปจนถึง Security และ Network

ถ้าเทียบกับ AWS, Google Cloud หรือ Azure ซึ่งเปิดโอกาสให้เราเลือกประกอบ Infrastructure ได้อย่างอิสระ Cloudflare ดูเหมือนจะเลือกอีกแนวทางหนึ่ง คือเตรียม Building Blocks สำหรับการสร้าง Application มาให้พร้อมใช้ เราเขียน Code แล้วเชื่อมต่อกับบริการต่าง ๆ โดยไม่จำเป็นต้องเริ่มจากการสร้างและดูแล Server เอง

Workers เป็นตัวอย่างที่ชัดเจน เราไม่จำเป็นต้องสร้าง VM หรือติดตั้ง Runtime เอง ไม่ต้องคอยเพิ่มจำนวน Instance เมื่อมีผู้ใช้งานเพิ่มขึ้น

ส่วนข้อมูลก็มีบริการอย่าง D1, KV และ R2 ให้เลือกใช้ตามลักษณะของงาน ถ้าต้องการจัดการ State หรือระบบ Realtime ก็มี Durable Objects ถ้าต้องการประมวลผลงานเบื้องหลังก็มี Queues และ Workflows

ลองคิดดูว่า Application หนึ่งตัวอาจใช้ Workers เป็น Backend, Pages สำหรับ Hosting Frontend, D1 เก็บข้อมูล, KV จัดการ Cache และ Configuration, R2 เก็บไฟล์, Queues และ Workflows จัดการงานเบื้องหลัง รวมถึง Durable Objects สำหรับระบบ Realtime นอกจากนี้ยังมี Domain และ DNS, Email Service, ระบบ Authentication, Turnstile สำหรับป้องกัน Bot, WAF สำหรับดูแลความปลอดภัย และ Observability สำหรับติดตามการทำงานของ Application ทั้งหมดนี้เชื่อมต่อกันอยู่ใน Ecosystem เดียวกัน โดยเราไม่ต้องมานั่งติดตั้งและดูแล Server แยกกันหลายเครื่อง

เรื่องนี้มีความหมายกับ Developer ที่ทำงานคนเดียวหรือทีมเล็กมากเป็นพิเศษ

ผมแทบจะเป็น Solo Developer ที่ต้องดูแลเองทั้ง Stack ตั้งแต่ App, API, Web Server, Nginx, Database, Security ไปจนถึง Cache การพัฒนาระบบหนึ่งจึงไม่ได้จบแค่เขียน Code ให้ทำงานได้ แต่ยังมีงานดูแล Infrastructure อีกมากมายตามมา บางครั้งเรื่องเหล่านี้กินเวลาไปมากกว่าการพัฒนาฟีเจอร์เสียอีก

Cloudflare ช่วยลดภาระตรงนี้ได้เยอะ เราสามารถสร้าง SaaS ที่มีทั้ง Frontend, Backend, Database, File Storage, Authentication, Security และ Background Processing ได้โดยไม่ต้องมี VM หรือ Docker เลยด้วยซ้ำ

อีกเรื่องที่น่าสนใจคือราคา Free plan เริ่มต้นที่ 0 USD ส่วน Workers Paid เริ่มต้นที่ 5 USD ต่อเดือน ซึ่งผมคิดว่าถูกมากเมื่อเทียบกับงานและเวลาที่ช่วยลดไปได้ สำหรับคนที่ต้องดูแลทุกอย่างเอง การจ่ายเงินเพียงเท่านี้เพื่อไม่ต้องคอยดูแล Infrastructure บางส่วน เป็นค่าใช้จ่ายที่สมเหตุสมผลมาก

แน่นอนว่าเราไม่จำเป็นต้องใช้ทุกอย่างของ Cloudflare หรือผูก Application ไว้กับ Platform เดียวทั้งหมด ส่วนที่สำคัญควรออกแบบให้ย้ายออกได้ เช่น ใช้ PostgreSQL ผ่าน Hyperdrive เมื่อต้องการความสามารถของ Database ที่เต็มรูปแบบ หรือแยก Storage ออกจาก Business Logic เพื่อให้เปลี่ยนผู้ให้บริการได้ง่ายขึ้น

สำหรับผม Cloudflare เป็น Platform ที่น่าศึกษามากสำหรับการพัฒนา Software ในยุคนี้ โดยเฉพาะโครงการใหม่ที่สามารถออกแบบด้วยแนวคิด Serverless และ Edge-native ตั้งแต่ต้น

จริง ๆ เขียนไปเขียนมาก็เหมือนจะยาวไปหน่อย แต่ก็อยากจดเก็บไว้เยอะ ๆ เพราะในหัวมีเรื่องเกี่ยวกับ Cloudflare มากกว่านี้อีกพอสมควร เอาไว้ค่อยเขียนต่อก็แล้วกัน แค่นี้ก็ยาวมากพอแล้ว

ภาพประกอบสร้างขึ้นสำหรับบันทึกนี้