目录
三种
架构模式四种
数据隔离方式不同数据隔离方式
在架构模式
的演进- 总结
1. 三种架构模式
1. 独立架构
优点
- 满足强隔离要求
- 故障影响面低
- 计费逻辑简单
- 可个性化交付
- 合同到期后销毁资源容易
缺点
不利于规模化发展,当客户越多时,维护成本、硬件成本、监控等都会变得更贵更复杂,无法最大利益化。
2. 云架构模式
优点
- 维护简单
- 规模越大成本更低
缺点
- 租户共用资源,相互影响
- 数据泄漏风险高
- 不适合个性化交互
3. 混合架构模式
混合模式 =
独立模式
+ 云模式
,根据客户情况自由选择。
优点
- 可满足不同客户的需求
- 通常大客户金主会要求独立模式,他们是大金主,大概率会有定制开发
- 能更好的均衡投入与产出
四种云架构的数据隔离方式
1. 独立数据库
- 数据安全性高
- 后期转独立部署容易
- 维护表结构、数据困难
- 数据汇总、同步复杂(汇总是为了给
SaaS管理平台
看租户的部分数据,如所有租户的商品)
2. 同库不同表模式
- 数据安全性较高
- 后期转独立部署容易度一般,
- 维护表结构、数据困难
- 无数据汇总、同步
3. 同库同表模式
- 数据安全性较差
- 后期转独立部署容困难
- 维护表结构、数据容易
- 无数据汇总、同步
4. sharding库 + 同表模式
- 数据安全性一般
- 后期转独立部署容一般
- 维护表结构、数据较容易(有一部分同表模式减少了数据库数量)
- 数据汇总同步复杂度一般
四种
数据隔离方式的总结
方案 | 数据隔离安全性 | 后期结构维护 | 数据汇总同步 | 开发复杂度 | 灵活性 |
---|---|---|---|---|---|
独立数据库 | 高 | 困难 | 困难 | 一般 | 高 |
同库不同表 | 较高 | 困难 | 简单 | 一般 | 一般 |
同库同表 | 低 | 简单 | 简单 | 简单 | 低 |
sharding库+同表模式 | 一般 | 一般 | 一般 | 一般 | 较高 |
不同隔离方式在不同架构的演进
1. 云模式 --> 独立模式
云
转独立模式+独立库
:数据库不变,创建新服务层,配置好流量转发即可
云
转独立模式+同库同表
:将租户的表迁移到新库,创建新服务层,配置好流量转发即可
云
转独立模式+同库不同表
:清洗自己的数据形成一个新库,创建新服务层,配置好流量转发即可
云
转独立模式+sharding库+同表
:
- sharding的租户单独数据库,同上面的独立库处理方案一样
- sharding的是租户是共用:清洗自己的数据形成一个新库,创建新服务层,配置好流量转发即可
2. 独立模式 --> 云模式
独立
转云模式+独立库
:配置好流量转发与服务数据库配置即可
独立
转云模式+同库不表
:将独立库清洗成独立表,迁移到云模式数据库,配置好流量转发与服务数据库配置即可
总结
适合自己的,才是最好的方案,需要综合考虑公司的业务、人员、未来方向等。我司做的电商SaaS业务,最终采用了混合架构模式
+ sharding库+同表
,它是一个折中的方案,在满足不同客户要求的同时,能平衡成本与灵活度。
下一篇分享sharding库+同表
在Golang的entgo框架中的具体落地方案。