什么是SaaS
SaaS 是英文Software as a Service的缩写,中文的意思是:软件即服务,核心概念就是软件的服务化,基于客户对软件的需求实际上是对服务的需求的理念,是软件由第二产业(基于生产制造)向第三产业(基于服务)升级的结果。
SaaS的优劣
优点
- 与用户而言
- 拿来即用
- 无须维护
- 按需使用
- 随处可用
- 低风险
- 低成本
- 较高防毒
- 与服务商而言
- 节省销售成本
- 节省维护成本
- 可持续发展
缺点
- 依赖互联网
- 数据安全性
- 数据保密性
SaaS的成熟度模型
1. 多租户
多租户也就是Multi-Tenant架构,多租户单实例可以有效的降低SaaS应用的硬件及运行维护成本,最大化地发挥SaaS应用的规模效应
目前互联网上的大部分SaaS应用,尤其是用户量比较大的互联网应用,如Email,Blog等,其应用架构都是符合Multi-Tenant架构的
要实现Multi-Tenant架构的关键是通过一定的策略来保证不同租户间的数据隔离,确保不同租户既能共享同一个应用的运行实例,又能为用户提供独立的应用体验和数据空间。目前最常见的方案是增加租户表,并且在大部分业务数据表中增加TENANTID字段,然后在登录逻辑中缓存用户所属租户TENANTID,查询时都带上该过滤字段
2. 可配置
可配置要求在一定程度下为不同客户做对应的配置以实现个性化需求,即达到降低因需求不同然产生的定制开发成本,又提升了用户体验
3. 高性能
在当前互联网如此流行的当下,流量为王,用户体验越好越能留下用户,而首要一点就是用户访问服务时的响应速度,有研究表明,用户最满意的打开网页的时间是2秒以下,超过这个界限时间越多,用户流失率越快,因此需要超高性能的保证。当前最常见的解决方案是负载均衡+分布式。
4. 可伸缩
可伸缩性是让系统在达到瓶颈的情况下平滑的无限的水平拓展,单台机器的提升成本曲线在越接近科技极限的情况下幅度越大,而增加相同配置的成本曲线则非常平滑,这样可以大大节约成本,同时对突发情况的应对能力也更强。
选择合适的SaaS成熟度模型
在实现SaaS架构的时候可以分阶段实现成熟度模型,在通常情况下,可以优先实现多租户,然后实现高性能,在实现可配置,最后实现可伸缩;但是具体问题具体分析,这不是定论,终究需要根据现实情况业务情况进行考量。需要考虑的因素可能包括:
- 你的产品所面向的客户群的特征和需求
- 你的产品的租户数量级别
- 你的团队的开发能力与愿意付出的开发/改造成本
学习书籍
《互联网时代的软件革命——SaaS架构设计》