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

Đa Tenant

Mô hình cô lập hybrid hai-tier.

TierInstance ứng dụngDatabaseKhách hàng mục tiêu
StandardProcess chia sẻSchema chia sẻ với cô lập row ở cấp databaseKhách hàng SaaS SMB mà nhu cầu tùy chỉnh được đáp ứng bởi engine cấu hình
DedicatedProcess/container riêngDatabase riêngKhách hàng có yêu cầu vượt quá engine cấu hình, hoặc có nhu cầu cô lập hợp đồng

Standard là mặc định và mục tiêu đầu tư chính. Dedicated là escape hatch được hỗ trợ — nó không bao giờ được trở thành cơ chế cho code fork theo từng khách hàng.


Một mô hình cô lập duy nhất không thể chi phí-hiệu quả phục vụ cả đa số khách hàng SaaS SMB và thiểu số có nhu cầu tùy chỉnh sâu hoặc nhu cầu cô lập hợp đồng. Cách tiếp cận hybrid giữ cho vận hành instance chia sẻ đơn giản cho đội ngũ ≤5 kỹ sư trong khi cung cấp đường dẫn đáng tin cậy cho các khách hàng vượt quá engine cấu hình.

Engine cấu hình là ranh giới tier. Nếu yêu cầu của khách hàng có thể được đáp ứng bởi trường tùy chỉnh, quy tắc xác thực hoặc bước quy trình công việc, tier Standard áp dụng. Dedicated dành cho các yêu cầu vượt cấu trúc engine — không phải lối tắt xung quanh các tính năng còn thiếu.


  • Một process ứng dụng và database chia sẻ
  • Cô lập tenant được thực thi ở cả cấp database engine và lớp truy vấn ứng dụng
  • Không có hạ tầng riêng theo khách hàng; tenant được cấp phát bằng cách chèn một bản ghi vào tenant registry
  • Container ứng dụng và database riêng cho mỗi khách hàng (cùng schema và migrations như Standard)
  • Phòng thủ theo chiều sâu: các chính sách cô lập row-level vẫn được áp dụng, dù cô lập chính là process và database separation
  • Triển khai on-premises inherently Dedicated

Một instance Dedicated luôn phục vụ chính xác một tenant. Cùng một binary được triển khai — khác biệt chỉ là cấu hình môi trường, không bao giờ là code fork.

Tiêu chíVí dụ
Giới hạn engine cấu hìnhNhu cầu tùy chỉnh không thể biểu diễn cấu trúc trong trường tùy chỉnh / quy tắc xác thực / bước quy trình công việc
Cô lập hợp đồngChính sách pháp lý, quy định hoặc bảo mật của khách hàng yêu cầu process và data separation
Performance SLAWorkload sẽ tạo rủi ro noisy-neighbor trên instance chia sẻ
Triển khai on-premisesKhách hàng tự host trên server riêng

Một database quản trị cấp nền tảng (tách biệt với dữ liệu tenant) ánh xạ mỗi tenant đến tier, cấu hình routing và chi tiết kết nối của nó. Nó là nguồn thật duy nhất cho authentication middleware và công cụ provisioning. Chi tiết kết nối tier Dedicated được mã hóa at rest và giữ trong process memory — không bao giờ được log hoặc expose cho khách hàng.


Tier Standard: Request đến một hostname chia sẻ. Auth middleware validate session, xác định tenant từ token đã xác thực, verify tier của tenant và thiết lập tenant scope trên database connection.

Tier Dedicated: Request đến một hostname dành riêng cho khách hàng. Auth middleware verify tenant đã xác thực khớp với tenant duy nhất mà instance này được cấu hình để phục vụ, và reject mismatch trước khi bất kỳ logic ứng dụng nào thực thi.


  • Tenant identity được suy ra exclusively từ authenticated session — không từ request parameters, query strings hoặc route values.
  • Tenant scoping được áp dụng automatically tại data access layer cho mọi query — không phải bằng filters thủ công trong từng query.
  • Bypassing tenant scoping không được phép trong mã ứng dụng. Exceptions (platform admin operations, ETL) là explicit, audited và isolated đến một access path riêng.
  • Mọi data store có phải kèm theo automated tests xác minh không có cross-tenant data leakage.
  • Cross-tenant platform operations (billing, reporting, ETL) sử dụng một privileged access path riêng không bao giờ exposed đến tenant-facing request handlers.
  • Dedicated instances phải reject requests từ bất kỳ tenant nào khác với tenant chúng được cấu hình để phục vụ.

  • Trước tenant live Standard-tier đầu tiên: isolation tests phải authenticate là Tenant A và assert không có data từ Tenant B được trả về, across all data-access paths.
  • Trước instance Dedicated-tier đầu tiên go live: tests phải verify mismatched-tenant sessions bị reject trước bất kỳ application logic nào thực thi.
  • Một penetration test tập trung vào tenant isolation phải hoàn thành trước production go-live.

Cross-tenant operations sử dụng một privileged access path với isolation enforcement bypassed, logged đến platform audit log riêng. Dedicated-tier cross-tenant aggregation (ví dụ: billing) query mỗi tenant’s database independently — đây là asynchronous background work, không phải real-time request path.