SaaS 非單純「雲部署」,核心是 **多租戶隔離架構** — 同一代碼庫、同一數據庫實例服務多個租戶,數據/配置/體驗完全隔離。
三大隔離層次 (成本/隔離度遞增)
| 層次 | 數據隔離 | 代碼/部署 | 適用階段 |
| 1. 共享表 + TenantId 列 | 行級 (WHERE tenant_id=?) | 單實例 | 早期、租戶少、數據量小 |
| 2. 共享庫 + 獨立 Schema | Schema 級 (PostgreSQL/Oracle) | 單實例 | 中規模、需一定定制 |
| 3. 獨立庫/獨立實例 | 物理隔離 | 可單獨部署版本 | 大客戶、合規要求高、高定制 |
關鍵技術棧
- 租戶識別:子域名 (`tenant.app.com`)、Header (`X-Tenant-Id`)、JWT Claim、路徑前綴。
- 數據層:Hibernate Filter / MyBatis Interceptor / EF Core Global Query Filter 自動注入 `tenant_id`。
- 配置層:配置中心 (Nacos/Apollo) 按租戶維度覆蓋。
- 計費/配額:API 网关 (Kong/Apisix) + Redis 限流器。
演進路徑建議
- **先有單租戶成熟產品** — 驗證市場、打磨核心功能、積累種子用戶。
- **重構引入 TenantId** — 最小改動實現行級隔離,上線少數友好租戶驗證。
- **逐步抽離可定制點** — 表單/流程/報表/權限 元數據化,租戶配置而非改代碼。
- **大客戶獨立部署** — Helm Chart / Docker Compose 一鍵交付專有實例,數據遷移腳本自動化。
參考資源
- 《SaaS 架構設計》 郭震 — 國內經典實戰書。
- Microsoft Azure SaaS Architecture Patterns — 官方模式庫。
- Salesforce 多租戶架構演講 (YouTube) — 實戰大廠經驗。
切記:**不要為 SaaS 而 SaaS**,先有好產品,再做多租戶化改造。