ห้าที่อยู่ที่โค้ดสามารถอาศัยอยู่ได้
ผลิตภัณฑ์โฮสต์แทบทุกตัวบนโลกนี้ล้วนเป็นรูปแบบหนึ่งของห้าหมวดหมู่นี้ เรียนรู้ห้าหมวดนี้แล้วหน้าการตลาดของบริการต่าง ๆ จะไม่สับสนอีกต่อไป
- การโฮสต์แบบสถิต (Static hosting) — ไฟล์ธรรมดา (HTML (HyperText Markup Language โครงสร้างของหน้าเว็บ), CSS (Cascading Style Sheets การจัดสไตล์), JavaScript, รูปภาพ) ที่ถูกส่งตรงไปยังเบราว์เซอร์ ไม่มีเซิร์ฟเวอร์ไหน "รัน" โค้ดของคุณ มันแค่ส่งไฟล์ให้ คิดซะว่าเป็นโฟลเดอร์บนอินเทอร์เน็ต เพราะไม่มีอะไรจะพังและไม่มีอะไรต้องอัปเดตแพตช์ นี่คือสิ่งที่เชื่อถือได้มากที่สุดที่คุณจะเอาขึ้นออนไลน์ได้ ตัวอย่าง: GitHub Pages, Cloudflare Pages, Netlify, Vercel (โหมดสถิต)
- ฟังก์ชันขอบเครือข่าย ( functions) — ชิ้นส่วนโค้ดเล็ก ๆ ที่รันบนเซิร์ฟเวอร์ที่อยู่ใกล้ผู้ใช้ของคุณทางกายภาพ กระจายอยู่ทั่วโลก มันเริ่มทำงานได้เกือบจะทันที และเหมาะกับตรรกะเบา ๆ เช่น การตรวจสอบสิทธิ์ การรีไดเรกต์ การเรียก (Application Programming Interface — ประตูที่โปรแกรมหนึ่งใช้คุยกับอีกโปรแกรม) เล็ก ๆ ข้อเสียคือมันรันในสภาพแวดล้อมที่ถูกตัดทอน ทำให้ไม่ใช่ทุกไลบรารีจะใช้งานได้ที่นั่น ตัวอย่าง: Cloudflare Workers, Vercel Edge Functions, Deno
- ฟังก์ชันเซิร์ฟเวอร์เลส ( functions) — โค้ดที่รันตามความต้องการและหายไปเมื่อไม่มีใครใช้ คุณจ่ายเงินตามจำนวนคำขอ ไม่ใช่ตามชั่วโมง คุณเขียนฟังก์ชันขึ้นมา ส่วนแพลตฟอร์มจัดการเรื่องเครื่องจักรให้ ใช้งานได้ดีจนกว่าคำขอเดียวจะต้องรันนานหลายนาที — แพลตฟอร์มส่วนใหญ่จะตัดฟังก์ชันทิ้งหลังจากหมดเวลา (มักจะ 10–60 วินาที) ตัวอย่าง: AWS Lambda, Google Cloud Functions, Vercel Functions
- คอนเทนเนอร์ (Containers) — แอปของคุณพร้อมทั้งสภาพแวดล้อมทั้งหมด (เวอร์ชันภาษาที่ถูกต้อง ไลบรารี เครื่องมือระบบ) ที่ถูกบรรจุลงในกล่องที่พกพาได้เรียกว่าคอนเทนเนอร์ แพลตฟอร์มจะทำให้กล่องนั้นทำงานต่อเนื่อง ควบคุมได้มากขึ้น แลกกับการตั้งค่าที่มากขึ้นเล็กน้อย ไฟล์เดียวที่กำหนดกล่องนี้คือ
Dockerfileและ AI เขียนไฟล์แบบนี้ได้ดีมาก ตัวอย่าง: Fly.io, Railway, Render, Google Cloud Run - เครื่องเสมือน (Virtual machines หรือ VMs) — คอมพิวเตอร์ทั้งเครื่องที่คุณเช่าในศูนย์ข้อมูล คุณติดตั้งและจัดการทุกอย่างเอง — ระบบปฏิบัติการ อัปเดตความปลอดภัย เว็บเซิร์ฟเวอร์ ทุกอย่าง ควบคุมได้สูงสุด แต่รับผิดชอบสูงสุดเช่นกัน ตัวอย่าง: AWS EC2, DigitalOcean Droplets, Hetzner
เมื่อวางเรียงกัน ห้าหมวดนี้จะแลก สิ่งที่ต้องจัดการน้อยลง กับ การควบคุมที่มากขึ้น เมื่อไล่ลงไปเรื่อย ๆ:
YOU MANAGE LESS ◀────────────────────────────▶ YOU MANAGE MORE
cheaper when idle more control
┌──────────┐ ┌──────────┐ ┌────────────┐ ┌───────────┐ ┌──────────┐
│ STATIC │ │ EDGE │ │ SERVERLESS │ │ CONTAINER │ │ VM │
│ files │ │ function │ │ function │ │ your box │ │ whole PC │
├──────────┤ ├──────────┤ ├────────────┤ ├───────────┤ ├──────────┤
│ no code │ │ runs at │ │ runs on │ │ stays │ │ you run │
│ runs │ │ the edge │ │ demand │ │ running │ │ it ALL │
└──────────┘ └──────────┘ └────────────┘ └───────────┘ └──────────┘
Pages Workers Lambda Railway EC2
หลักการคร่าว ๆ เรื่องต้นทุน: ยิ่งแพลตฟอร์มจัดการให้คุณมากเท่าไหร่ มันก็ยิ่งถูกเมื่อไม่มีใครใช้แอปของคุณ และมันยิ่งช่วยแบกความกังวลมากขึ้นเมื่อทุกคนกำลังใช้งานพร้อมกัน