1. 多租户SaaS业务场景全景分析
多租户SaaS的本质是在单一实例上服务多个客户(租户),同时保障数据隔离、性能边界和合规性。本章从租户类型、业务域边界、跨租户协作需求和合规约束四个维度展开全景分析,为后续数据隔离策略设计奠定基础。
1.1 租户类型与分层
根据租户规模和业务复杂度,将租户分为四类,每类对应不同的隔离策略和成本模型。
| 租户类型 | 典型规模 | 隔离需求 | 推荐隔离策略 | 典型场景 |
|---|---|---|---|---|
| 免费/试用 | 1-5人 | 数据逻辑隔离即可 | 共享数据库+租户ID过滤 | 个人SaaS试用 |
| 个人/小型团队 | 5-50人 | 中等隔离 | 共享数据库+独立Schema | 项目管理工具 |
| 中大型企业 | 50-5000人 | 强隔离,性能保障 | 独立数据库实例 | CRM、ERP |
| 合作伙伴/平台 | 子租户集群 | 多级隔离,可扩展 | 分库分表+租户路由 | 支付平台、市场应用 |
1.2 业务域边界
业务域是数据隔离的逻辑单元。每个租户可能启用多个业务域,但域的数据边界必须清晰。常见业务域包括:
- 客户管理域:客户资料、联系人、商机。
- 订单交易域:订单、支付、退款流水。
- 工单服务域:客服工单、服务记录。
- 财务核算域:发票、应收应付、账本。
- 报表分析域:聚合报表、数据仓库。
业务域边界决定了租户路由的粒度——即请求需要根据租户ID+业务域ID确定数据源。
1.3 跨租户协作需求与数据流
某些场景要求租户之间共享数据或发起流程协作,例如:
- 主数据同步:如统一客户主数据,跨租户使用同一客户ID。
- 联合报表:上级租户查看下级租户的业务指标。
- 服务调用:租户A通过API调用租户B的工单系统。
跨租户协作引入额外的数据流和控制流:
- 控制流:租户身份仲裁层判断是否允许跨租户操作。
- 数据流:通过共享中间表或消息队列异步交换数据,避免直接跨库查询。
1.4 合规约束与风险点
不同行业和地区对数据隔离有强制性要求:
- GDPR:要求租户数据不可被其他租户访问,且需提供数据删除能力。
- 金融监管:客户资金数据必须独立存储,审计日志不可篡改。
- 数据本地化:部分国家要求数据存储在境内。
风险点:若隔离策略选型不当,可能造成租户数据泄露(罚款可达全球营收4%),或跨租户协作时权限逃逸,导致审计失败。
1.5 全景业务架构图
下图展示多租户SaaS全景:租户类型分层、业务域边界、跨租户协作通道及合规边界。
1.6 选型权衡与落地预览
从全景分析可识别出关键权衡点:
- 隔离粒度 vs 运维成本:独立数据库隔离最强,但集群规模扩大后管理复杂度剧增。
- 跨租户协作便利性 vs 安全边界:共享数据表容易实现协作,但增加数据泄露风险。
- 合规成本 vs 业务灵活性:GDPR要求数据可删除,可能影响缓存和索引设计。