Được quản lý (Managed) so với Tự lưu trữ (Self-Hosted)
Bạn có thể tự chạy một cơ sở dữ liệu trên máy chủ riêng, hoặc thuê một dịch vụ được quản lý (Supabase, Neon, PlanetScale, RDS, Cloudflare D1) nơi nhà cung cấp lo việc sao lưu, vá lỗi, và duy trì thời gian hoạt động (uptime).
Với vibe coding, luôn bắt đầu với dịch vụ được quản lý. Tự lưu trữ một cơ sở dữ liệu nghĩa là giờ đây bạn chịu trách nhiệm cho việc sao lưu, cập nhật bảo mật, dung lượng ổ đĩa, và việc khôi phục lúc 3 giờ sáng. Đó là công việc vận hành (operations) thực sự làm bạn xao nhãng khỏi việc xây dựng sản phẩm. Các dịch vụ được quản lý tốn một chút tiền nhưng tiết kiệm rất nhiều thời gian và rủi ro. Chỉ chuyển sang tự lưu trữ khi bạn có lý do cụ thể và kỹ năng để đảm nhận việc đó.
Khi chọn một nhà cung cấp dịch vụ quản lý, đáng để biết bạn thực sự đang trả tiền cho điều gì, vì các trang tiếp thị thường na ná nhau. Có vài điểm thực sự khác biệt:
- Mô hình kết nối. Các nền tảng (Cloudflare Workers, các hàm Vercel) liên tục mở và đóng kết nối cơ sở dữ liệu, điều này có thể làm cạn kiệt một pool kết nối Postgres cổ điển. Các nhà cung cấp như Neon và Supabase cung cấp một bộ gộp kết nối (connection pooler, ví dụ PgBouncer hoặc tương đương) chính vì lý do này — hãy dùng chuỗi kết nối đã được gộp (pooled) trong code serverless.
- Nhánh hóa (branching) và sao lưu. Neon và PlanetScale cho phép bạn "tạo nhánh" cơ sở dữ liệu giống như , để bạn có thể thử một migration (di trú dữ liệu) trên một bản sao. Hãy xác nhận tính năng khôi phục theo thời điểm (point-in-time recovery) đang được bật, và biết nó có thể lùi lại bao xa.
- Bị khóa vào nhà cung cấp (lock-in). D1 và DynamoDB rất xuất sắc nhưng ràng buộc bạn vào một đám mây duy nhất. Postgres thuần (Supabase, Neon, RDS) có thể di chuyển được — schema và truy vấn của bạn chuyển sang bất kỳ máy chủ Postgres nào khác. Với hầu hết người mới, khả năng di chuyển là lựa chọn an toàn hơn về lâu dài.