Skip to content

SaaS 平台简述

概念

SaaS 全称为 Software as a Service(软件即服务)。

一、什么是平台 SaaS 化

通俗讲就是可以理解为“租软件”,一般购买软件都是花钱买具体的安装码、license 和代码之类,而 SaaS 是互联网时代的新的产物,就是本机不需要去安装这个软件,而是通过网络享受到相应的服务,按时按需来付费,就是从买转变成了租。

以前,每家每户都需要挖一口井解决吃水问题;后来改为集中供水,即由自来水公司供水,用户只要按时缴纳水费,打开水龙头就会有水。这省却了找水和打井的过程,也节省了工程成本。自来水公司的业务模式就变成了“供水即服务”。这个类比,很好的解释了 SaaS 与传统软件的不同。

二、SaaS 架构

业务架构对企业的收入模式、支出成本、客户群体、客户关系、需要的资源、关键活动,以及合作伙伴等进行设计说明。

业务架构需要明确 SaaS 服务对客户带来的价值,这个价值往往需要通过产品端来呈现,业务架构的价值描述,很大程度上就是我们产品建设的侧重点。

SaaS 产品架构的设计,可以考虑模块化、渐进式设计。

SaaS 系统搭建的思路:

  1. 分层设计,包括租户识别、应用层、数据访问层和缓存层;
  2. 数据隔离要透明;
  3. 租户识别方案,比较好的做法是通过 URL 识别租户;
  4. 智能 DNS;
  5. 租户管理系统(计费、订购、定制、充值、催缴);
  6. 定制化开发,尽可能分系统分模块去开发。
=== 功能架构分层:===
1)底层功能
- 系统账户:系统配置 / 用户管理 / 角色权限 / 用户认证 / 应用授权...
- API接口:TODO

2)基础功能
- 个人中心:个人信息 / 修改密码 / 账号绑定 / 隐私设置...
- 帮助中心:TODO

3)业务功能
- 常用业务:TODO

SaaS 产品的核心组件

多租户 / 安全 / 可配置 / 可拓展 / 高可用 / 数据隔离 / 热部署...

SaaS 系统分层

租户识别 > 应用层 > 数据访问层 > 缓存层 > 数据库

租户和用户的区别

多租户是 SaaS 领域的特有产物,在 SaaS 服务中,租户是指使用 SaaS 系统的客户,租户不同于用户,例如,B 端 SaaS 产品,用户可能是某个组织下的员工,但整个企业组织是 SaaS 系统的租户。多租户技术是一种软件架构技术,可以实现多个租户共享系统实例,并且租户间能够实现数据与行为的隔离。

2.1 隔离模式

  • 竖井隔离模式
    • 优势:满足强隔离需求 / 计费逻辑简单 / 降低故障影响面
    • 劣势:规模化问题 / 成本问题 / 敏捷迭代问题 / 系统管理与监控
  • 共享模式
    • 优势:高效管理 / 成本低
    • 劣势:租户相互影响 / 租户计费困难
  • 分域隔离模式
    • 结合“竖井隔离模式(专用域)”与“共享模式(基础域)”

2.2 多租户核心概念

  • 租户:一般指一个企业客户或个人客户,租户之间数据与行为是隔离的。
  • 用户:在某个租户内的具体使用者,可以通过使用账户名、密码等登录信息,登录到 SaaS 系统使用软件服务。
  • 组织:如果租户是一个企业客户,通常会拥有自己的组织架构。
  • 员工:是指组织内部具体的某位员工。
  • 解决方案:为了解决客户的某类型业务问题,SaaS 服务商将产品与服务组合在一起,为商家提供整体的打包方案。
  • 产品能力:指的是 SaaS 服务商对客户售卖的产品应用,特指能够帮助客户实现端到端场景解决方案闭环的能力。
  • 资源域:用来运行 1 个或多个产品应用的一套云资源环境。
  • 云资源:SaaS 产品一般都部署在各种云平台上,例如阿里云、腾讯云、华为云等。对这些云平台提供的计算、存储、网络、容器等资源,抽象为云资源。

2.3 概念模型设计

An image

  • SaaS 平台可以创建与管理多个平台用户、多个租户、多个资源域。
  • 单个平台用户可以关联到多个租户下,例如,平台用户张三,可以是租户 A 的用户,也可以是租户 B 的用户。单个租户下可以拥有多个用户。
  • 单个租户可以订购多个解决方案,解决方案可以包多个产品能力,产品能力运行在某个资源域上。
  • 组织单元间有上下级关系,单个组织下可以有多个员工,员工与单个用户进行绑定。

2.4 多租户核心场景

2.4.1 租户内部模型关系

对 SaaS 产品来说,租户是顶层的概念,租户内部拥有组织、用户、产品能力、云资源等模型,租户就像租了一套大房子,其他模型都是房子内部的家具或设施。 An image

2.4.2 租户身份识别

在各种隔离模式下,识别租户身份,获取租户的资源配置,是非常关键的。当一个用户登录 SaaS 系统后,系统会返回租户上下文信息,上下文会包含用户绑定的租户信息,以及隔离模式。租户上下文信息会被附加在每一次系统交互中,贯穿整个系统调用链路,让上游调用方知道路由到哪些下游资源。 An image

2.5 多租户系统应用架构

An image

2.6 服务层

  • 统一 api 网关:每个租户的前端项目在访问后台时,都会在其请求的 header 中携带租户标识,统一 api 网关会根据不同的租户标识将数据传递到对应的中后台服务。并且在转发的过程中做鉴权,拦截,熔断,降级等安全保障。
  • 中台:中台的能力与业务无关,仅仅是对外提供标准接口。
  • 前台:前台是中台能力的组装者,每个租户都会有一个与其对应的前台,针对不同的租户,个性化组装中台能力。
  • 后台:后台是数据存储,数据存储要根据数据的性质进行隔离。

三、参考地址