Nếu bạn đang xây một sản phẩm SaaS phục vụ nhiều khách hàng, quyết định kiến trúc quan trọng nhất ngay từ đầu là: multi-tenant (đa người thuê) hay single-tenant. Chọn sai sẽ trả giá đắt khi mở rộng. Bài viết giải thích kiến trúc multi-tenant SaaS dành cho startup Việt Nam.
Multi-tenant SaaS là gì?
Multi-tenant nghĩa là một bản phần mềm phục vụ nhiều khách hàng (tenant) cùng lúc, mỗi tenant có dữ liệu được cô lập an toàn. Ví dụ Slack, Salesforce: hàng nghìn công ty dùng chung hệ thống nhưng không ai thấy dữ liệu của ai. Trái lại, single-tenant là mỗi khách một bản cài riêng — an toàn nhưng tốn kém vận hành.
Ba cấp độ cô lập dữ liệu
- Shared database, shared schema: chung bảng, phân biệt bằng cột
tenant_id. Rẻ nhất, nhưng nguy hiểm nếu lập trình ẩu (quên lọc tenant_id = rò rỉ chéo). - Shared database, separate schema: mỗi tenant một schema riêng. Cân bằng tốt.
- Separate database: mỗi tenant một DB. An toàn nhất, dùng cho khách lớn yêu cầu tuân thủ cao.
Bảo mật cô lập nhiều lớp
Bài học của mọi đội SaaS: không bao giờ chỉ dựa một lớp. Thực thi cô lập ở: (1) tầng ứng dụng — mọi truy vấn tự chèn điều kiện tenant; (2) tầng database — Row-Level Security (RLS); (3) tầng kiểm thử — test cố tình truy cập chéo phải thất bại; (4) phân quyền RBAC. Rò rỉ chéo tenant là lỗi nghiêm trọng nhất của SaaS.
Tuỳ biến mà không phân mảnh mã
Khách hàng muốn logo riêng, quy trình riêng — nhưng đừng fork mã nguồn cho từng khách (sa lầy bảo trì). Giải pháp: feature flags + cấu hình theo tenant. Một codebase duy nhất, cá nhân hoá bằng cấu hình.
Lời khuyên cho startup Việt
Bắt đầu với shared database + tenant_id + RLS (rẻ, đủ an toàn nếu làm đúng), thiết kế sẵn lớp truy vấn tự chèn tenant từ ngày đầu, và chuẩn bị đường nâng cấp lên separate-database cho khách lớn sau này. Đừng over-engineer, nhưng cũng đừng bỏ qua cô lập dữ liệu.
Xây kiến trúc multi-tenant đúng chuẩn đòi hỏi kinh nghiệm về cô lập dữ liệu, RLS và bảo mật. NKKTECH Global chuyên xây nền tảng SaaS multi-tenant cho startup và doanh nghiệp, kết hợp lớp AI tự động hoá nghiệp vụ.
Câu hỏi thường gặp
Startup nhỏ có cần multi-tenant ngay? Có, nếu bán SaaS cho nhiều khách — sửa kiến trúc sau rất tốn kém.
Multi-tenant có an toàn bằng single-tenant? Nếu cô lập nhiều lớp (RLS + app layer + test) thì đủ an toàn cho hầu hết trường hợp.
Chi phí xây nền tảng SaaS multi-tenant? Tuỳ phạm vi, thường từ 50.000 USD cho sản phẩm đầy đủ kèm hạ tầng + giám sát.