Multi-tenant khác gì với phần mềm nội bộ thông thường?
Phần mềm nội bộ (single-tenant) chỉ phục vụ một công ty, một bộ dữ liệu. Phần mềm SaaS multi-tenant phải phục vụ nhiều khách hàng độc lập cùng lúc, trên cùng một hệ thống, nhưng dữ liệu của khách hàng A không bao giờ được lẫn với khách hàng B — kể cả khi có lỗi phần mềm.
3 mô hình kiến trúc multi-tenant phổ biến
| Mô hình | Ưu điểm | Nhược điểm |
|---|---|---|
| Database riêng cho mỗi tenant | Cách ly dữ liệu tuyệt đối, dễ backup/restore riêng | Chi phí hạ tầng tăng tuyến tính theo số khách hàng |
| Chung database, riêng schema | Cân bằng giữa cách ly và chi phí | Phức tạp khi cần migrate schema cho tất cả tenant |
| Chung schema, cột tenant_id | Chi phí thấp nhất, dễ mở rộng số lượng khách hàng lớn | Rủi ro cao nhất nếu lập trình sai (lộ dữ liệu chéo tenant) |
Vì sao thiết kế sai ngay từ MVP lại tốn kém về sau?
Nhiều MVP được xây theo kiểu single-tenant vì nhanh và rẻ hơn ban đầu. Vấn đề xảy ra khi có khách hàng thứ 10-20: toàn bộ mô hình dữ liệu phải thiết kế lại để cách ly đúng cách, kéo theo việc di chuyển dữ liệu của các khách hàng đang dùng — rủi ro và chi phí cao hơn nhiều so với thiết kế đúng ngay từ đầu.
Câu hỏi cần trả lời trước khi chọn mô hình
- Khách hàng mục tiêu có yêu cầu tuân thủ về cách ly dữ liệu (ví dụ ngành tài chính, y tế) không?
- Dự kiến quy mô bao nhiêu tenant trong 12-24 tháng tới?
- Có cần tùy biến riêng cấu trúc dữ liệu cho từng khách hàng lớn không?