SAAS 产品演变
项目 -> 产品 -> 多租户 -> 高性能的多租户 -> 可配置的多租户 ->可伸缩的多租户
1. 开发项目 “4+1” 视图
逻辑视图:逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的"辅助功能模块";它们可能是逻辑层、功能模块等。
开发视图:开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。
处理视图:处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。
物理视图:物理视图关注"目标程序及其依赖的运行库和系统软件"最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。
2. 作产品 可配置化
采用:MDA (Model Driven Architecture) 模型驱动架构,设计产品来提高产品的灵活配置性。
3. 产品转到多租户
a:独立数据库
b: 共享数据库-隔离数据架构:采用schema 方式,在同一个数据库中隔离数据。
c:共享数据库-共享数据架构:采用同一个schema方式,在表上增加tenant字段。
读后感: 该章节最好部分,应该是作者采用郭靖与杨康两位人物,形式说明SAAS的开发过程,与SAAS软件成熟框架,过程中碰见的问题,个人认为 “共享数据库-隔离数据架构”的意义很大,但是当前对于该框架的性能,还有待提高,但是从数据的安全性来考虑,数据管理方面考虑,该方案还是比较理想的。
我认为对于中小客户,应该采用“共享数据库-共享数据架构”模型设计数据库结构,对于大客户或安全级别要求,较高的客户,应该采用 “共享数据库-隔离数据架构”模型设计数据库结构。