设计一个 SaaS 系统需要考虑的 4 个关键点
之前再聊聊 SaaS 中 说道了 SaaS 有几种模式: 1. S2C 模式( 面向个人的 SaaS); 2. S2B2C 模式 (面向企业组织的 SaaS); 3. 平台模式(S2B2C + S2C)。 链接
SaaS 产品是比较复杂,那么在实现或者设计(实现)一个 SaaS 系统架构时 需要重点关注以下 4 个关键点,这 4 点 都理解透彻了,那么 SaaS 也没那么复杂,可以更好的完成 SaaS 的架构设计。
1. 理解 SaaS 模式和租户
SaaS 产品 可以 同时 为多个客户提供有差别服务的 软件使用模式, 每个 客户(租户)都可以不受其他 客户影响的访问使用,并可以定制应用 或者做一些特殊配置。在不同 SaaS 模式中租户的主体是不同的,如下:
S2C 模式: 所有使用 SaaS 应用的 个体都是 一个租户
S2B 模式: 租户主体是一个组织, 比如钉钉,企业微信,teambition
平台模式(S2B2C + S2C): 租户组织和个人, 而且个人 跟组织有一些关系。 比如:小鹅通,有赞,微店, 车巡,四个轮子,等。这类 SAAS 主要是针对垂直行业 提供 SaaS 解决方案。 只有理解了 SaaS 中的 租户 主体后,才可以更好的 进行功能设计,资源的隔离。
2. 解决客户的个性化诉求
按需服务是 SaaS 产品 的核心理念, 应尽可能满足不同用户的 个性化需求,并向客户提供 有差别的服务。 如何 提供 有差别服务呢?需要做到如下两点:
识别 SaaS 的基础能力,同时 把 SaaS 抽象为 一个平台系统。比如:操作系统 会带很多基础能力(功能)或者环境,没有这些就没法用,那么 SaaS 也是如此。
功能应用化,以应用为单位做 权限 资源建模。不客户根据不同情况有不同的功能需求,那我们要做的就是对客户需求进行有效的整合与挖掘,从而合理抽象 成 SaaS 应用,每个 SaaS 应用 非常内聚的内聚。
做到上面 两点后,那么 完成 客户的个性化 需求,很简单: 就是不同客户使用不同的 SaaS 应用集就好了,比如企业微信,针对幼儿园 会有家校通讯录,普通的企业是没有这个功能的。最终达到的效果就是:基础能力 + 应用市场的模式,针对一一些特殊的客户,也可以给他定制应用(功能),只要他出钱就行。总之就是要满足不同客户业务在线一体化的诉求,低代码和超级自动化也也可以作为 SaaS 的基础能力,从而迎来超定制和利基生产的 SaaS 工业 3.0 时代。
3. 要做到服务弹性伸缩、资源隔离与限流
SaaS 系统服务弹性伸缩主要解决突发流量的到来,导致无法横向扩展或者横向扩展太慢,进而影响整个 SaaS 产品崩溃和其他客户的使用体验。但是 SaaS 系统做弹性伸缩 主要关注两个方面:
整个系统相关服务的伸缩。
按租户进行资源伸缩,
SaaS 为代表的云服务,都可以按照企业的需要,选购功能、账号数量、资源规模……让企业不论峰时谷时,都可以「按需消费」,极大地削减了成本
比如:微信云托管,可以按资源伸缩,但是,如果能够提供一些伸缩 API,就更好了,根据 租户 进行 资源隔离 伸缩。
4. 数据安全永远是第一位的
最后一点,也是最重要一点,数据安全。客户使用 SaaS 时,全部客户数据存储和管理都由 SaaS 服务商负责,数据是用户关注的重点,如何打消客户顾虑,让客户放心使用 SaaS,可以从这几方面入手:
数据隔离 不同 租户之间的数据必须隔离;
数据存储 必须 是多副本;
所有涉及隐私的数据必须脱敏,比如:手机号, 身份证, 认脸照等,针对 SaaS 运营商自己也需要做到脱敏;
数据传输安全:对外提供的接口 必须是 Https 协议,以及加密传等等;
SaaS 系统本身的安全,需要做完善的测试以及相关认证;
以上这 4 点我认为是在设计一个 SaaS 系统架构时必须要理解透彻,这也是 任何一个 SaaS 系统的核心。
版权声明: 本文为 InfoQ 作者【Im胡子】的原创文章。
原文链接:【http://xie.infoq.cn/article/03397f8b502d6786abfb651a1】。文章转载请联系作者。
评论