1. 分层设计
在系统最前端的层就需要停止租户识别
分层:
呈现层,调度层,业务层,数据层
呈现层是共享的,所有租户都是一致的。
调度层必需停止租户识别,并将不同租户的恳求调度至不同子系统
业务层对租户是透明的,所有租户都相同
数据层,必需做好租户安全隔离
2. 数据隔离要透明
不需要业务开发人员在代码中编码隔离不同租户数据
3. 租户识别方案
a. url识别租户,使用三级域名,不同租户使用不同的域名,根据域名判断租户
b. 根据登录名判断租户,要做好租户切换问题,不同租户有相同用户名如何操作?
4. 租户管理
a. 计费系统(周期性计费、使用量计费)
b. 租户定制
5. 定制化开发
a. 不同模块分成子系统,通过控制台中配置不同租户订购不同模块
b. 不同子系统分开部署
6. 灰度晋级
a. 子系统接口必需根据版本号停止区分
b. 使用url区分租户可以配置nginx根据域名来做分发
7. 动态扩容
横向和纵向扩展(应用效劳器和数据库的扩容)
IaaS、PaaS、SaaS
IaaS:Infrastructure as a Service(根底设备即效劳),例如提供sdk ,像文本数据库Sqlite提供sqlite.dll操作数据库文件
PaaS:Platform as a Service (平台即效劳)中间件,例如提供虹膜比对中间件(虹膜比对效劳软件)或者像Sql Server数据库,有效劳端,提供客户端调用平台效劳
SaaS:Software as a Service (软件即效劳)提供完好的软件功能,例如邮件系统,有完好的功能
|