互联网产品的研发做了一下分析, 大致有三种模式: SAAS开发、模板定制开发、全定制开发。技术架构难度由低到高。
SaaS开发
开发一个系统要支持SaaS模式,系统应满足:
l首先,它必须是Web程序,这样客户不用另外安装程序,只需要浏览器就可以直接使用;
l其次,系统要支持“按需收费”,不同级别的客户可能使用的系统模块有区别,那么我们的系统必须支持按权限配置系统模块;
l第三,系统肯定只有运行一套在中心服务器,数据库也只有一套,却要满足不同的客户使用系统,而且客户之间的数据又要完全独立,这样需要我们在系统中有隔离机制可以按照机构区分业务数据;
Saas系统架构的核心设计为多租户Saas架构,Saas系统架构实现应注意的设计包括:
1.做分层设计
Saas系统分层包括4级:
Saas系统分层:租户识别>应用层>数据访问层>缓存层>数据库
2、数据隔离要透明
在数据库访问层对SQL进行改写,加入tenant_id(租户id)
3. 租户识别方案
比较好做法