Multi-tenancy SaaS

Đào Nhật Tuấn
1 min read Phút Đọc

Multi-tenancy là kiến trúc mà một phiên bản duy nhất của phần mềm và cơ sở hạ tầng hỗ trợ của nó phục vụ nhiều khách hàng. Mỗi khách hàng chia sẻ ứng dụng phần mềm và cũng chia sẻ một cơ sở dữ liệu. Dữ liệu của mỗi người khách hàng bị cô lập và vẫn vô hình đối với những khách hàng khác.

Lợi ích của Multi-tenancy

1. Chi phí thấp

Do các khách hàng dùng chung ứng dụng, tài nguyên, hạ tầng nên chi phí phát triển thấp dẫn đến tiết kiệm được cho doanh nghiệp và khách hàng.

2. Sử dụng hiệu quả tài nguyên

Bởi vì các khách hàng chia sẻ tài nguyên với nhau nên được sử dụng hiệu quả hơn, có thể dễ dàng tùy chỉnh tài nguyên hệ thống dựa trên nhu cầu của cách hàng.

3. Bảo trì, nâng cấp

Người dùng không cần bận tâm về việc cập nhật các tính năng và cập nhật mới, họ cũng không cần phải trả phí bảo trì, nâng cấp. Nếu có trả thêm một khoản phí nào đó thì nó sẽ được chia sẻ giữa các khách hàng.
Doanh nghiệp sẽ không phải lo nâng cấp, bảo trì riêng cho từng khách hàng

Khó khăn của Multi-tenancy

1. Khó tùy chỉnh riêng cho từng khách hàng

Vì khó khách hàng dùng chung ứng dùng, tài nguyên nên khó tùy chỉnh riêng cho từng khách như single-tenancy

2. Khó backup dữ liệu riêng cho từng khách hàng

3. Bảo mật

Phải đảm bảo các tenant chỉ được truy xuất dữ liệu của chính họ

3. Phát triển

Phải đảm bảo hiệu suất của hệ thống khi lượng người dùng lớn và dữ liệu phình to

Có 3 cách thiết kế Multi-tenancy

1. Dùng chung Database

Dữ liệu của tất cả tenant được lưu chung với nhau và phân biệt bằng trường TenantId

Điểm mạnh:

  • Thiết kế lưu trữ đơn giản.
  • Dễ cho việc phát triển.
  • Không gặp phải vấn đề đồng bộ cấu trúc bảng trong quá trình phát triền.

Nhược điểm:

  • Không độc lập database nên nguy cơ tenant có thể xem dữ liệu lẫn nhau.
  • Không thể backup, restore riêng cho từng tenant.
  • Dữ liệu phình to, ảnh hưởng tới hiệu năng của hệ thống.
  • Khó khăn khi scale hệ thống.

2. Mỗi tenant có database riêng

Mỗi tenant sẽ có datase riêng biệt nhau

Điểm mạnh:

  • Dữ liệu của các tenant độc lập với nhau
  • Dễ cho việc phát triển.
  • Không lo lắng khi dữ liệu phình to
  • Có thể backup, restore riêng cho từng tenant

Nhược điểm:

  • Khi thay đổi schema phải đồng bộ hết cho các tenant
  • Chưa tối ưu hóa tài nguyên hệ thống

3. Sharded multi-tenant databases

Các tenant sẽ được gom nhóm với nhau và mỗi nhóm sẽ dùng chung database với nhau

Điểm mạnh:

  • Tối ưu hóa tài nguyên hệ thống
  • Backup, store sẽ dễ dàng hơn phương án 1

Nhược điểm:

  • Không độc lập database nên nguy cơ tenant có thể xem dữ liệu lẫn nhau.
  • Khi thay đổi schema phải đồng bộ hết cho các nhóm
You've successfully subscribed to Life at IDTEK | Công ty Cổ phần IDTEK
Great! Next, complete checkout for full access to Life at IDTEK | Công ty Cổ phần IDTEK
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.