~/VibeHandbook
PDF ฟรี

บท 13 · 01

ห้าที่อยู่ที่โค้ดสามารถอาศัยอยู่ได้

ผลิตภัณฑ์โฮสต์แทบทุกตัวบนโลกนี้ล้วนเป็นรูปแบบหนึ่งของห้าหมวดหมู่นี้ เรียนรู้ห้าหมวดนี้แล้วหน้าการตลาดของบริการต่าง ๆ จะไม่สับสนอีกต่อไป

  • การโฮสต์แบบสถิต (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

หลักการคร่าว ๆ เรื่องต้นทุน: ยิ่งแพลตฟอร์มจัดการให้คุณมากเท่าไหร่ มันก็ยิ่งถูกเมื่อไม่มีใครใช้แอปของคุณ และมันยิ่งช่วยแบกความกังวลมากขึ้นเมื่อทุกคนกำลังใช้งานพร้อมกัน

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี