~/VibeHandbook
PDF miễn phí

Chương 13 · 01

Năm nơi mà code có thể "sống"

Gần như mọi sản phẩm hosting trên đời đều là biến thể của một trong năm nhóm sau. Học thuộc năm nhóm này và các trang marketing sẽ hết còn khó hiểu.

  • Static hosting (lưu trữ tĩnh) — Chỉ là các file thuần (HTML (HyperText Markup Language — cấu trúc trang), CSS (Cascading Style Sheets — phần định kiểu), JavaScript, hình ảnh) được gửi thẳng đến trình duyệt. Không có máy chủ nào "chạy" code của bạn; nó chỉ đơn giản là trao file ra. Hãy nghĩ đây là một thư mục nằm trên internet. Vì không có gì để crash và không có gì để vá lỗi, đây là thứ đáng tin cậy nhất bạn có thể đưa lên mạng. Ví dụ: GitHub Pages, Cloudflare Pages, Netlify, Vercel (chế độ static).
  • functions (hàm biên) — Những đoạn code nhỏ chạy trên các máy chủ nằm gần về mặt vật lý với người dùng của bạn, ở khắp nơi trên thế giới. Chúng khởi động gần như tức thì và rất phù hợp cho logic nhẹ: kiểm tra đăng nhập, chuyển hướng, các cuộc gọi (Application Programming Interface — cánh cửa để một chương trình nói chuyện với chương trình khác) nhỏ. Điểm trừ: chúng chạy trong một môi trường bị cắt gọt, nên không phải thư viện nào cũng chạy được ở đó. Ví dụ: Cloudflare Workers, Vercel Edge Functions, Deno .
  • functions (hàm phi máy chủ) — Code chạy khi có yêu cầu và biến mất khi rảnh rỗi. Bạn bị tính phí theo mỗi lượt gọi, không phải theo giờ. Bạn viết một hàm; nền tảng lo phần máy móc. Rất tốt cho đến khi một yêu cầu cần chạy vài phút — hầu hết các nền tảng sẽ cắt hàm sau một khoảng thời gian chờ (thường là 10–60 giây). Ví dụ: AWS Lambda, Google Cloud Functions, Vercel Functions.
  • Containers (thùng chứa) — Ứng dụng của bạn cùng toàn bộ môi trường của nó (đúng phiên bản ngôn ngữ, thư viện, công cụ hệ thống) được đóng gói vào một chiếc hộp di động gọi là . Nền tảng giữ cho chiếc hộp đó luôn chạy. Nhiều quyền kiểm soát hơn, cần thiết lập nhiều hơn một chút. File duy nhất định nghĩa chiếc hộp đó là Dockerfile, và AI viết loại file này rất tốt. Ví dụ: Fly.io, Railway, Render, Google Cloud Run.
  • Máy ảo (Virtual machines — ) — Một chiếc máy tính trọn vẹn mà bạn thuê trong một trung tâm dữ liệu. Bạn tự cài đặt và quản lý mọi thứ — hệ điều hành, các bản vá bảo mật, máy chủ web, tất cả. Quyền kiểm soát tối đa, trách nhiệm cũng tối đa. Ví dụ: AWS EC2, DigitalOcean Droplets, Hetzner.

Đặt cạnh nhau, năm nhóm này đánh đổi ít việc phải quản lý để lấy nhiều quyền kiểm soát khi bạn đi xuống:

        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

Một quy tắc tương đối cho chi phí: nền tảng càng quản lý nhiều thay bạn, chi phí càng rẻ khi không ai dùng ứng dụng của bạn, và nó càng lo phần "đau đầu" nhiều hơn khi ai cũng đang dùng.

Muốn bản ngoại tuyến?

Tải trọn cuốn sách dưới dạng PDF hoặc EPUB — miễn phí.