GH GambleHub

Tenant隔離和限制

Tenant隔離和極限是多特南特體系結構的基礎。目的:確保一個租戶的行動永遠不會影響另一個租戶的數據、安全和SLO,並公平和可預測地分配資源。下面-從數據級別到計算計劃和事件管理的實用解決方案圖。

1)威脅模式和目標

三.威脅

租戶之間的數據泄漏(邏輯/緩存/通過日誌)。
「Noisy neighbor」:由於單個客戶的激增而導致性能下降。
特權升級(訪問策略錯誤)。
計費漂移(使用和權責發生不匹配)。
級聯容錯場景(一個事件導致許多人處於市中心)。

目標

嚴格隔離數據和秘密。
限額/配額和公平規劃。
透明審計,可觀察性和計費。
事件本地化和快速恢復。

2)隔離級別(端到端模型)

1.數據

密鑰和索引中的「tenant_id」,行級安全(RLS)。
加密:KMS層次結構→租戶密鑰(KEK)→數據密鑰(DEK)。
高要求(Silo)分離電路/DB,通用集群c RLS用於效率(Pool)。
重生策略和「遺忘權」,按鍵加密。

2.計算

CPU/RAM/IO配額,每個特南特的worker池,「加權」隊列。
GC/heap隔離(JVM/Runtime容器/設置),並行主義限制。
Per tenant autoscaling+backpressure。

3.網絡

分段:私人endpoints/VPC,通過「tenant_id」 ACL。
邊界上的限額和按限額連接帽。
防護DDoS/機器人,並考慮計劃/優先級。

4.操作和流程

Poarendator遷移,becaps,DR,feature-flags。
事件是「微爆炸半徑」:通過「tenant_id」融合。

3)訪問控制和租戶上下文

AuthN: OIDC/SAML;令牌帶有「tenant_id」,「org_id」,「plan」,「scopes」。
AuthZ:RBAC/ABAC(角色+項目,部門,區域屬性)。
邊界上下文:API網關檢索和驗證tenant上下文,補充限制/配額,寫入預告片。
「雙鎖」原則:檢查服務+RLS/DB策略。

4)數據: 電路,緩存,logi

方案是:
  • 共享計劃(row-level):最高效率,嚴格的RLS是強制性的。
  • 按計劃:孤立/可操作性權衡。
  • Per-DB/cluster (Silo):用於VIP/可調。

緩存:密鑰前綴'tenant: {id}:',TTL按計劃,cache-stampede (lock/early refresh)保護。

徽標/元數據:完整的PII別名,「tenant_id」過濾器,禁止不同租戶的徽標「拼寫」。

5)限制流量和運營

基本力學

Token Bucket:平滑的爆發,「rate」/「burst」參數化。
Leaky Bucket:通過穩定。
固定窗口/滑動窗口:時間窗口上的簡單/準確配額。
Concurrency極限:同時查詢/joba的caps。

在哪裏應用

在邊界(L7/API網關)-基本保護和「快速故障」。
在核心(服務/隊列)-用於第二輪和「公平共享」。

策略

根據tenant/plan/endpoint/操作類型(公共API,重型出口,管理操作)。
Priority-aware:VIP在仲裁中獲得更大的「爆破」和重量。
Idempotency-keys用於安全後退。

輪廓示例(概念)

Starter: 50 req/s, burst 100,2並行出口。
商業:200 req/s, burst 400,5出口。
Enterprise/VIP: 1000 req/s, burst 2000,專用店員。

6)配額和公平規劃(公平)

資源配額:存儲、對象、消息/分鐘、任務/小時、隊列大小。
Weighted Fair Queuing/Deficit Round Robin:「加權」訪問共享竊賊。
超常工人池:對嘈雜/關鍵客戶進行硬隔離。
管理控制:在配額用盡之前發生故障/降級。
Backoff+jitter:指數延遲,以免同步爆發。

7)可觀察性和按帳單

強制性標簽:「tenant_id」、「plan」、「region」、「endpoint」、「status」。

SLI/SLO per tenant: p95/p99 latency, error rate, availability, utilization, saturation.

使用指標:操作/字節/CPU秒計數器→ →發票聚合器。
計費的相等性:邊境的狙擊,防止雙重註銷/損失事件。
Dashbords細分:VIP/監管/新租戶。

8)事件,降級和DR「按租戶」

通過「tenant_id」進行融合:緊急關閉/轉彎特定租戶,而不會影響其他租戶。
Graceful Degradation:只讀模式、「沙箱」隊列、延遲任務。
RTO/RPO per tenant:每個計劃的恢復和損失目標。
演習:定期的「遊戲日」,關閉嘈雜的租戶並檢查DR。

9)合規性(居住、隱私)

Pinning tenant到該地區;跨區域流動的明確規則。
對密鑰/數據訪問進行審核,記錄管理操作。
轉發管理和數據導出per tenant。

10)迷你參考: 如何拼湊在一起

請求流

1.Edge (API-gatew):TLS →檢索「tenant_id」 →令牌驗證→應用rate/quotas →設置預告片。
2.Policy引擎:「tenant_id/plan/features」上下文→路線和限制的決定。
3.服務:檢查權限+標簽「tenant_id」 →使用RLS下的DB →前綴緩存。
4.使用收集:操作/字節計數器→聚合器→計費。

數據

策略/DB(row-level/per-schema/per-DB)。

KMS: 按鍵到租戶,輪換,crypto-shredding當刪除.

計算

重量隊列,per tenant的worker池,concurrency的caps。
根據per tenant度量進行自動計算。

11)偽政治(面向方向)

yaml limits:
starter:
req_per_sec: 50 burst: 100 concurrency: 20 exports_parallel: 2 business:
req_per_sec: 200 burst: 400 concurrency: 100 exports_parallel: 5 enterprise:
req_per_sec: 1000 burst: 2000 concurrency: 500 exports_parallel: 20

quotas:
objects_max: { starter: 1_000_000, business: 20_000_000, enterprise: 100_000_000 }
storage_gb: { starter: 100,   business: 1000,    enterprise: 10000 }

12)售前支票清單

  • 真理的單一來源「tenant_id」;無處不在,被理解。
  • 啟用DB+服務驗證(雙鎖)級別的RLS/ACL。
  • per tenant加密密鑰,已記錄輪換/刪除(crypto-shredding)。
  • 邊界內和邊界內的限額/配額;測試了尖峰和「burst」。
  • Fair queuing和/或VIP專用培訓師;caps на concurrency.
  • Per Tenant SLO和Alerts;dashbords逐段。
  • Usage收集是偶數的;已驗證計費。
  • DR/事件將本地化為租戶;通過「tenant_id」進行融合。
  • Cash/Logs按租戶劃分;PII被掩蓋。
  • 遷移/備份/出口程序-選擇性程序。

13)典型錯誤

RLS被「服務」用戶禁用/繞過-泄漏風險。
單一的全球限制→「噪音鄰居」和違反SLO。
共享緩存/隊列無前綴→數據交叉。
Billing根據在高峰時丟失的日誌計算。
缺乏先行融合是級聯下降。
「一舉」遷移而無法阻止問題的「tenant_id」。

14)快速選擇策略

可調節/VIP: Silo數據(per-DB)、專用用戶、嚴格的配額和居住。
大型SaaS:共享計劃+RLS,邊界的強限制,內部的公平測驗。
負載「嘈雜/脈動」:大型「爆破」+強硬的concurrency-caps,後壓和計劃優先級。

結論

Tenant的孤立和限制是關於邊界和正義的。通過堆棧、RLS和數據加密、邊界和核心的限制和配額、公平的計劃者、可觀察性和事件本地化,所有這些都為每個租戶提供了安全性、可預測的質量和透明的計費,即使平臺有了積極的增長。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。