SAAS 系统设计(01)—— 重要模块设计

最近在攻克 SAAS 从 0 到 1 的架构设计,希望把已有的能力 SAAS 化,做个代练行业垂类的 SAAS,可以连通行业上下游。

通常的 SAAS 是针对一些可以标准化的场景,有通用的租户和针对的解决方案,做出 SAAS 平台后做推广。比如飞书、友盟等,它们是先有产品,构建 SAAS 的租户,再以用户为基础,让开发者基于 SAAS 平台,自定义开发产品。

他们也有两种商业模式。

  • 泛类通过 SAAS 主功能和三方产品盈利。

比如飞书、钉钉、企微,他们租户很广泛,所有公司、组织都可以用,它们 SAAS 主功能有组织架构、平台权限、IM 等。

盈利点包括:

  1. 大客户定制化,中小客户按人头收费。
  2. 通过 SAAS 平台的特点吸引租户(比如飞书是云文档 + OKR),收取开发者佣金。

这些涉及的三方产品非常多,飞书自己不会都做,他只需做好开发者系统,鼓励开发者入驻开发,它主要提供用户,SAAS 平台作为流量入口。

  • 垂类通过做好自身产品盈利

比如友盟,SAAS 主功能是数据收集和分析。它所有的产品都是自身开发,基于 SAAS 主功能扩展的。

友盟这种,所有参与人员都是自己,没有第三方开发者概念。它的产品更垂,受众更小。

我要做的 SAAS 更特殊,友盟和飞书起码是先有产品,再吸引用户,我这是已有用户和供应链,差个 SAAS 把他们关联之前,我们希望 SAAS 为我们提供模块化的支持,业务特点更像友盟。

所以我们 SAAS 有以下边界

  1. 垂类行业的 SAAS,用户群体固定,对有需求的人是刚需。
  2. 靠自己做好产品挣钱,几乎没有三方开发者。
  3. 几乎都是根据行业定制化的产品。

这个 SAAS 最大的作用,就是把前后端服务模块化,提高产研效率。

SAAS 主站、开发者、产品

SAAS 主站是 SAAS 自身的系统,租户无需开通任何产品就有的功能,比如组织架构、员工、平台级权限管理,未来我们还会做钱包、企微基础能力。

开发者平台,是在 SAAS 申请成为开发者后,自行编码应用,嵌入到 SAAS 中,可以通过调用 SAAS OpenApi 的方式获取商户在 SAAS 主站上信息,完整自己业务闭环。

产品,也叫解决方案。由多个应用打包,每个应用内有多个资源。

比如飞书中的销帮帮,这是产品,它里面每个菜单,都是应用,菜单中的每个页面,都是资源。(其实资源除了页面还有数据、功能,就是 RBAC 标准的一套,为了方便理解, 只说菜单资源)

这里应用只代表功能,不包含数据,多个功能模块(应用)打包,可以任意组成新的产品。

比如做个销忙忙产品,把这里 CRM 应用挪过去,再加点别的数据菜单就行了。

但是销帮帮和销忙忙的数据是隔离的。

后端应用分层和基础组件

后端服务分为 base、admin、app 层,所有应用的代码在 base 中,SAAS 管理后台是 admin,所有对外和租户门户服务是 app。

行业本身也有个最大的 admin,管所有行业内的租户,这个是开发者自己开发的。

基础组件有

  1. saas-base,saas 的 base 服务,和数据库打交道那层。
  2. saas-application,组织架构、钱包等基础组件,都以内部应用的形式嵌入。
  3. saas-open,SAAS 对三方应用开放的接口,比如获取组织架构信息、员工信息等,走 oauth2 授权。
  4. saas-admin,SAAS 管理后台,负责打包应用成为产品、审核应用和权限、商户入驻申请等。
  5. saas-app,租户门户的后台,租户的产品展示在上面。

这篇概念性的比较多,有点难理解,下一遍重点说说技术实现细节。

相关推荐
薯条不要番茄酱3 分钟前
【SpringBoot】从零开始全面解析Spring MVC (一)
java·spring boot·后端
π大星星️4 小时前
基于LNMP架构的个人博客系统部署
服务器·架构
程序员曼布4 小时前
主从架构:技术原理与实现
redis·mysql·架构
懵逼的小黑子8 小时前
Django 项目的 models 目录中,__init__.py 文件的作用
后端·python·django
小林学习编程9 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
java1234_小锋11 小时前
Spring Bean有哪几种配置方式?
java·后端·spring
小小工匠12 小时前
架构思维:通用架构模式_系统监控的设计
架构·系统监控
柯南二号12 小时前
【后端】SpringBoot用CORS解决无法跨域访问的问题
java·spring boot·后端
每天一个秃顶小技巧13 小时前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
敢敢のwings13 小时前
Dense 与 MoE 系列模型架构的全面对比与应用策略
架构