Module Multi-Tenancy (ABP Saas)
Module Multi-Tenancy cung cấp giải pháp hoàn chỉnh để hỗ trợ multi-tenancy trong hệ thống EMOS. Module này cho phép một ứng dụng phục vụ nhiều tenant độc lập, mỗi tenant có dữ liệu và cấu hình riêng biệt.
Khái niệm chính
Phần tiêu đề “Khái niệm chính”Tenant (Người thuê)
Phần tiêu đề “Tenant (Người thuê)”- Định nghĩa: Khách hàng tổ chức sử dụng hệ thống
- Mục đích: Cô lập dữ liệu và cấu hình giữa các tổ chức
- Đặc điểm: Mỗi tenant độc lập hoàn toàn
Tenant Management (Quản lý Tenant)
Phần tiêu đề “Tenant Management (Quản lý Tenant)”- Định nghĩa: Quá trình tạo và quản lý tenant
- Mục đích: Quản lý vòng đời tenant
- Chức năng: Tạo, Cập nhật, Xóa, Đăng ký
Data Isolation (Cô lập Dữ liệu)
Phần tiêu đề “Data Isolation (Cô lập Dữ liệu)”- Định nghĩa: Tách biệt dữ liệu giữa các tenant
- Mục đích: Đảm bảo bảo mật và riêng tư
- Cơ chế: Sử dụng TenantId để lọc dữ liệu
Edition (Phiên bản)
Phần tiêu đề “Edition (Phiên bản)”- Định nghĩa: Gói dịch vụ cho tenant
- Mục đích: Định giá và tính năng theo gói
- Đặc điểm: Mỗi edition có set tính năng riêng
Tính năng chính
Phần tiêu đề “Tính năng chính”1. Quản lý Tenant (Tenant Management)
Phần tiêu đề “1. Quản lý Tenant (Tenant Management)”Điều hướng: Menu Saas → Tenants
Mục đích: Tạo và quản lý tenant trong hệ thống
Chức năng chính:
- Tạo Tenant: Tạo tenant mới
- Chỉnh sửa: Cập nhật thông tin tenant
- Xóa: Xóa tenant
- Đăng ký: Tenant tự đăng ký
- Gán Edition: Gán edition cho tenant
- Kích hoạt: Kích hoạt hoặc tắt tenant
Các bước Tạo tenant:
- Nhấp “Add” → “New Tenant”
- Nhập thông tin cơ bản:
- Tên tenant (bắt buộc)
- Admin email (bắt buộc)
- Admin password
- Chọn edition
- Thiết lập thời gian sử dụng
- Lưu và gửi thông tin đăng nhập
Thông tin Tenant:
- Thông tin cơ bản: Tên, Email, Số điện thoại
- Edition: Gói dịch vụ
- Thời gian: Ngày bắt đầu, Ngày kết thúc
- Trạng thái: Active, Suspended, Cancelled
- Đăng ký: Thông tin đăng ký
Edition:
- Free: Miễn phí với tính năng hạn chế
- Standard: Tiêu chuẩn với đầy đủ tính năng
- Premium: Cao cấp với tính năng bổ sung
- Enterprise: Doanh nghiệp với tất cả tính năng
2. Cô lập Dữ liệu (Data Isolation)
Phần tiêu đề “2. Cô lập Dữ liệu (Data Isolation)”Điều hướng: Tự động trong hệ thống
Mục đích: Đảm bảo dữ liệu của tenant không bị lẫn
Cơ chế:
- Tất cả entity có TenantId
- Tự động lọc theo TenantId
- Không thể truy cập dữ liệu tenant khác
- Quản trị viên có thể truy cập tất cả
Entity có Multi-Tenancy:
public class MyEntity : AggregateRoot<Guid>, IMultiTenant{ public Guid? TenantId { get; set; } // ... other properties}Lọc Dữ liệu:
- Repository tự động lọc theo TenantId
- Không cần lọc thủ công
- Đảm bảo bảo mật ở mức database
3. Quản lý Edition (Edition Management)
Phần tiêu đề “3. Quản lý Edition (Edition Management)”Điều hướng: Menu Saas → Editions
Mục đích: Quản lý các gói dịch vụ
Chức năng chính:
- Tạo Edition: Tạo edition mới
- Chỉnh sửa: Cập nhật edition
- Xóa: Xóa edition
- Gán Tính năng: Gán tính năng cho edition
- Định giá: Thiết lập giá
Các bước Tạo edition:
- Nhấp “Add” → “New Edition”
- Nhập thông tin:
- Tên edition
- Mô tả
- Giá (nếu có)
- Chọn tính năng
- Lưu
Tính năng Edition:
- Mỗi edition có thể có/tắt tính năng khác nhau
- Tính năng được định nghĩa trong Feature Management
- Tenant chỉ truy cập được tính năng của edition
4. Đăng ký Tenant (Tenant Registration)
Phần tiêu đề “4. Đăng ký Tenant (Tenant Registration)”Điều hướng: Trang đăng ký công khai
Mục đích: Cho phép tenant tự đăng ký
Chức năng chính:
- Đăng ký: Tenant điền form đăng ký
- Xác thực: Xác thực email
- Kích hoạt: Admin kích hoạt tenant
- Thông báo: Gửi thông báo trạng thái
Các bước Đăng ký:
- Tenant truy cập trang đăng ký
- Điền thông tin:
- Tên công ty
- Email admin
- Mật khẩu
- Chọn edition
- Gửi đăng ký
- Nhận email xác thực
- Admin xét duyệt và kích hoạt
5. Quản lý Subscription (Quản lý Đăng ký)
Phần tiêu đề “5. Quản lý Subscription (Quản lý Đăng ký)”Điều hướng: Menu Saas → Subscriptions
Mục đích: Quản lý đăng ký của tenant
Chức năng chính:
- Xem Đăng ký: Xem lịch sử đăng ký
- Gia hạn: Gia hạn subscription
- Nâng cấp: Nâng cấp edition
- Hủy: Hủy subscription
Thông tin Subscription:
- Tenant
- Edition
- Ngày bắt đầu
- Ngày kết thúc
- Trạng thái
- Giá
Tích hợp với các Module khác
Phần tiêu đề “Tích hợp với các Module khác”Identity Service
Phần tiêu đề “Identity Service”- Quản lý user cho từng tenant
- Phân quyền theo tenant
Administration Service
Phần tiêu đề “Administration Service”- Settings theo tenant
- Audit logs theo tenant
Các Module khác
Phần tiêu đề “Các Module khác”- Tất cả modules hỗ trợ multi-tenancy
- Dữ liệu tự động cô lập theo tenant
Thực hành tốt nhất
Phần tiêu đề “Thực hành tốt nhất”- Bảo mật: Đảm bảo cô lập dữ liệu hoàn toàn
- Backup: Sao lưu dữ liệu cho từng tenant
- Monitoring: Theo dõi sử dụng tài nguyên
- Licensing: Quản lý giấy phép cẩn thận
- Support: Hỗ trợ riêng cho từng tenant
- Migration: Di chuyển dữ liệu đúng cách
- Deletion: Xóa dữ liệu khi tenant không còn
Kịch bản phổ biến
Phần tiêu đề “Kịch bản phổ biến”Kịch bản 1: Tạo Tenant mới
Phần tiêu đề “Kịch bản 1: Tạo Tenant mới”- Admin đăng nhập hệ thống
- Chọn Saas → Tenants
- Nhấp “Add” → “New Tenant”
- Nhập thông tin tenant
- Chọn edition
- Lưu và gửi thông tin đăng nhập
Kịch bản 2: Tenant tự đăng ký
Phần tiêu đề “Kịch bản 2: Tenant tự đăng ký”- Tenant truy cập trang đăng ký
- Điền form đăng ký
- Nhận email xác thực
- Xác thực email
- Chờ admin duyệt
- Nhận thông tin đăng nhập
Kịch bản 3: Nâng cấp Edition
Phần tiêu đề “Kịch bản 3: Nâng cấp Edition”- Chọn tenant cần nâng cấp
- Nhấp “Change Edition”
- Chọn edition mới
- Xác nhận thay đổi
- Tính năng mới có hiệu lực ngay
Kịch bản 4: Gia hạn Subscription
Phần tiêu đề “Kịch bản 4: Gia hạn Subscription”- Chọn tenant cần gia hạn
- Nhấp “Extend Subscription”
- Chọn thời gian gia hạn
- Thanh toán (nếu cần)
- Subscription được gia hạn
Báo cáo
Phần tiêu đề “Báo cáo”Báo cáo Tenant (Tenant Report)
Phần tiêu đề “Báo cáo Tenant (Tenant Report)”- Tổng số tenant
- Tenant theo edition
- Tenant theo trạng thái
- Tỷ lệ tăng trưởng
Báo cáo Subscription (Subscription Report)
Phần tiêu đề “Báo cáo Subscription (Subscription Report)”- Đăng ký mới
- Gia hạn
- Hủy
- Doanh thu
Module liên quan
Phần tiêu đề “Module liên quan”- Identity Service: User management per tenant
- Administration Service: Settings per tenant
- Tất cả Modules: Multi-tenancy support
Quyền
Phần tiêu đề “Quyền”- Xem:
SaasService.View- Xem tenant và edition - Tạo:
SaasService.Create- Tạo tenant và edition - Chỉnh sửa:
SaasService.Edit- Sửa đổi tenant và edition - Xóa:
SaasService.Delete- Xóa tenant và edition - Manage:
SaasService.Manage- Quản lý toàn bộ
Khắc phục sự cố
Phần tiêu đề “Khắc phục sự cố”Vấn đề: Dữ liệu bị lẫn giữa tenant
- Giải pháp: Kiểm tra TenantId và filter
Vấn đề: Tenant không thể đăng nhập
- Giải pháp: Kiểm tra trạng thái tenant và subscription
Vấn đề: Tính năng không hoạt động
- Giải pháp: Kiểm tra edition có tính năng đó không
Vấn đề: Subscription hết hạn
- Giải pháp: Gia hạn subscription
Tài nguyên bổ sung
Phần tiêu đề “Tài nguyên bổ sung”- Xem Identity Service để quản lý user
- Xem Administration Service để quản lý settings
- Xem tài liệu ABP Framework chính thức