SAAS软件的多租户实现技术研究笔记
在SAAS、IAAS、PAAS这三个不同层面,实现多租户的技术是不一样的:SAAS 软件的使用权,主要是依照账户的容量(如何约定是个值得考虑的问题),譬如用户(租户)拥有使用账号;PAAS 软件开发平台资源(如开发支撑系统工具、应用存储空间、运行容器、平台服务等等);如某租户拥有1G应用存储空间,应用容器(数量不限、总内存上限4G),2个缓存服务;IAAS 硬件基础设施(如CPU、内存、存储、IP
在SAAS、IAAS、PAAS这三个不同层面,实现多租户的技术是不一样的:
SAAS 软件的使用权,主要是依照账户的容量(如何约定是个值得考虑的问题),譬如用户(租户)拥有使用账号;
PAAS 软件开发平台资源(如开发支撑系统工具、应用存储空间、运行容器、平台服务等等);如某租户拥有1G应用存储空间,应用容器(数量不限、总内存上限4G),2个缓存服务;
IAAS 硬件基础设施(如CPU、内存、存储、IP、网络设备等等),如某租户拥有2颗CPU、8GB内存、80GB硬盘、10个IP等;
多租户的概念包含三层用户集成:
数据中心层
基础架构层
应用程序层
多租户基础架构和应用程序需要用事务来验证每个客户提交的请求。此过程有助于验证和授权用户可以访问的事务资源类型。
从应用程序层提取认证和授权服务有助于提高多租户事务的可伸缩性、可维护性和重用性。大多数添加到基础架构的应用程序服务都需要授权,而专门用于授权的独立子网、云或应用服务器集群可以满足可伸缩性、可维护性和重用性需求。授权服务也是一样,因为可以在云中或子网中根据事务增长来重用和调整此架构。
构建多租户服务
构建多租户服务的要求包括:
- 定义基于 RESTful 或 WSDL 的服务。
- 定义响应时间和性能目标。
- 确定可伸缩性和高可用性需求。
- 定义每个事务需要的服务。
- 根据事务客户确定服务的负载量。
- 为服务创建部署和网络拓扑。
- 为实现配置和安装而创建部署自动化脚本。
- 为实现开发而创建 Unified Modeling Language (UML) 序列图。
构建多租户应用服务器
构建多租户应用服务器的要求包括:
- 确定要实现的应用服务器。
- 定义响应时间和性能目标。
- 确定可伸缩性和高可用性需求。
- 定义服务和应用程序部署拓扑。
- 根据事务客户确定服务的负载量。
- 为服务创建部署和网络拓扑。
- 为实现配置和安装而创建部署自动化脚本。
- 为实现开发而创建 UML 序列图。
构建多租户事务
构建多租户事务的要求包括:
- 确定要实现的事务协议。
- 定义响应时间和性能目标。
- 确定可伸缩性和高可用性需求。
- 定义服务和应用程序部署拓扑。
- 根据事务客户确定服务的负载量。
- 为服务创建部署和网络拓扑。
- 为是吸纳配置和安装而创建部署自动化脚本。
- 为实现开发而创建 UML 序列图。
构建多租户数据库
构建多租户数据库的要求包括:
- 确定要实现的数据库模型。
- 定义响应时间和性能目标。
- 确定可伸缩性和高可用性需求。
- 确定事务客户的负载量。
- 为服务创建部署和网络拓扑。
- 为实现配置和安装而创建部署自动化脚本。
- 为实现开发而创建 UML 序列图。
如果出现故障,数据恢复比较困难,因为恢复数据库将牵扯到其他租户的数据;
如果需要跨租户统计数据,存在一定困难。
数据备份和恢复最困难,需要逐表逐条备份和还原。
如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离级别换取降低成本,这种方案最适合。
更多推荐
所有评论(0)