Bỏ qua để đến nội dung

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.

  • Đị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
  • Đị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ý
  • Đị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
  • Đị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

Đ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:

  1. Nhấp “Add” → “New Tenant”
  2. Nhập thông tin cơ bản:
    • Tên tenant (bắt buộc)
    • Admin email (bắt buộc)
    • Admin password
  3. Chọn edition
  4. Thiết lập thời gian sử dụng
  5. 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

Đ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

Đ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:

  1. Nhấp “Add” → “New Edition”
  2. Nhập thông tin:
    • Tên edition
    • Mô tả
    • Giá (nếu có)
  3. Chọn tính năng
  4. 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

Đ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ý:

  1. Tenant truy cập trang đăng ký
  2. Điền thông tin:
    • Tên công ty
    • Email admin
    • Mật khẩu
  3. Chọn edition
  4. Gửi đăng ký
  5. Nhận email xác thực
  6. 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á
  • Quản lý user cho từng tenant
  • Phân quyền theo tenant
  • Settings theo tenant
  • Audit logs theo tenant
  • Tất cả modules hỗ trợ multi-tenancy
  • Dữ liệu tự động cô lập theo tenant
  1. Bảo mật: Đảm bảo cô lập dữ liệu hoàn toàn
  2. Backup: Sao lưu dữ liệu cho từng tenant
  3. Monitoring: Theo dõi sử dụng tài nguyên
  4. Licensing: Quản lý giấy phép cẩn thận
  5. Support: Hỗ trợ riêng cho từng tenant
  6. Migration: Di chuyển dữ liệu đúng cách
  7. Deletion: Xóa dữ liệu khi tenant không còn
  1. Admin đăng nhập hệ thống
  2. Chọn Saas → Tenants
  3. Nhấp “Add” → “New Tenant”
  4. Nhập thông tin tenant
  5. Chọn edition
  6. Lưu và gửi thông tin đăng nhập
  1. Tenant truy cập trang đăng ký
  2. Điền form đăng ký
  3. Nhận email xác thực
  4. Xác thực email
  5. Chờ admin duyệt
  6. Nhận thông tin đăng nhập
  1. Chọn tenant cần nâng cấp
  2. Nhấp “Change Edition”
  3. Chọn edition mới
  4. Xác nhận thay đổi
  5. Tính năng mới có hiệu lực ngay
  1. Chọn tenant cần gia hạn
  2. Nhấp “Extend Subscription”
  3. Chọn thời gian gia hạn
  4. Thanh toán (nếu cần)
  5. Subscription được gia hạn
  • Tổng số tenant
  • Tenant theo edition
  • Tenant theo trạng thái
  • Tỷ lệ tăng trưởng
  • Đăng ký mới
  • Gia hạn
  • Hủy
  • Doanh thu
  • Identity Service: User management per tenant
  • Administration Service: Settings per tenant
  • Tất cả Modules: Multi-tenancy support
  • 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ộ

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