Vol. 01 整体架构说明

SaaS架构 IaaS 中台系统 应用市场 业务模块 展示层设计
SaaS平台作为支撑平台,既服务于企业内部运营,也支持租户业务运转,并可集成第三方应用。其架构通常分为IaaS层、中台(公共组件)、应用层、业务层和展示层。IaaS层主要依赖公有云,确保服务器安全并通过堡垒机实现内外网隔离。中台集中管理多个业务系统的共用部分,如产品中心、支付网关、订单中心等,以提高效率。应用层涉及平台的应用市场,包括自研和第三方应用。业务层涵盖客户管理、合同管理、订单管理等模块,支持SaaS产品的业务运营。展示层则包括Web端、App端等,以优化用户操作界面。整体架构旨在通过分层设计,明确各部分依赖关系,提升平台的可扩展性和安全性。
文章内容
思维导图
常见问题
社交分享

前言

SaaS平台本身是一个支撑平台,一方面要支撑SaaS软件企业内部的运营工作,另一方面需要支撑租户侧的业务运转。大型的SaaS平台还会需要支撑第三方应用,比如提供数据接口(API)供第三方集成。在平台侧的架构上,我们会划分为IaaS、中台、应用层、业务层和展示层这么5层,这个并不是标准架构。只是通过分层能够更好地划分我们架构中各个部分的依赖关系。

## IaaS层

IaaS层一般来说不需要产品经理介入太多,大多数企业都是使用的公有云。这里把IaaS列出来,是想让大家了解一点背景知识。一般,比较注重安全的SaaS平台的IaaS结构会是下面这样。

其中像应用服务器、数据库服务器和文件服务器都在内网,也就是公网无法访问到这些机器,以保障这些业务支撑服务器的安全性。为让公网的浏览器和手机能够访问我们的服务,需要通过Web服务器(Web服务器可能是一个软件,并不一定是物理的机器)和堡垒机。堡垒机相当于公网和内网的桥梁,这样实现了内网的服务器和公网的隔离及互通。

SaaS产品的业务通常是随着客户的数量的增加而逐步成长起来的,因此一开始在IaaS层可能所需要的服务器非常少,比如就只有1台应用服务器、1台数据库服务器和1台文件服务器,甚至有的干脆将文件服务器和应用服务器合并为1台来降低成本。随着业务的增加,可以增加服务器数量来支撑更大规模的业务。

这里还有个地方需要注意,那就是公网数据传输的安全性。一般来说,前后端需要采用https协议进行数据加密传输。

中台(公共组件)

这里其实叫公共组件会更合适。其实所谓的中台,就是将多个业务系统共用的部分提取出来,统一维护,以更高的效率支撑业务系统。典型的例子就是现在的品牌商会在多个电商平台开店经营,不同平台的店铺就可以理解为是前台的应用,但是例如仓储管理、库存管理、物流管理、订单管理、财务管理等等就可以作为中台统一建设,然后支撑不同的店铺经营。

对于SaaS平台侧来说,我们会有下面一些公共组件:

  • 产品中心:统一管理面向租户侧的产品,这里服务也可以作为一项产品。这样的好处是租户侧可以统一到产品中心去购买我们的产品或服务。比如阿里云的产品与服务展示。

- 支付网关:这包括SaaS自身产品的线上交易和租户侧可能的线上交易,比如电商SaaS。线上交易必然涉及到接入多家支付渠道,如果没有支付网关,就意味着每新增一家支付渠道,都需要重新建设,成本会非常高,而且不好维护。

  • 订单中心:这个其实就是将平台侧的订单统一管理,一方面是方便租户侧有统一的入口查看订单,另一方面也是方便平台侧对订单数据做统计分析。
  • 限流容错:这个是偏技术范畴了,当SaaS平台做出一定规模后,一个是可能会发生流量高峰,另一个是会有恶意的流量攻击。这个时候需要有限流容错策略来防止流量的冲击导致系统宕机。
  • 开发运维:这块其实是很多产品经理忽略的地方,实际上可以为开发运维搭建一套管理平台,一方面是做系统维护的风控,另一方面也是从技术指标上监测系统的运行状态。
  • 账号体系:账号体系是SaaS平台绕不开的话题,这包括租户员工的账号体系和面向C端业务(如电商SaaS)的用户体系。
  • 权限认证:权限认证通常我们是配置好权限功能后,需要有一个公共的组件去统一验证权限,比如账号密码验证、功能权限认证、数据权限认证等等。
  • 日志系统:日志系统通常会分为两类,一类是操作日志,一类是系统运行日志。操作日志主要会用于行为记录,以及风控溯源;运行日志则主要是监控系统运行状态,以及帮助开发定位系统问题。
  • 消息中心:系统会利用多种渠道向租户、用户发送消息,比如系统内提醒、微信模板消息、短信、钉钉提醒等等。这块也需要有统一的消息中心来维护,避免每个消息渠道都单独处理。
  • 文件系统:通常这块是技术来解决的,也就是我们在IaaS层看到的,会有相应的文件存储服务器,那么我们系统中上传的这些附件、图片都需要统一管理。

应用层

这个应用层其实指的是平台的应用市场,这些应用会包括平台自研应用、第三方开发者应用和开放平台。不过,大多数的SaaS产品都不会涉及这方面,因为通常应用市场都是那种一体化的产品提供的。典型的就是钉钉、企微这类。但是,我们的SaaS产品不可能能够满足客户的所有需求,而国内的企业客户很多都需要有一体化的解决方案。这个时候,要不就是我们的产品被其他平台集成(这是最常见的方式),要不就是我们自身提供开放平台,供客户自身或第三方开发应用。

业务层

业务层其实就是我们各个业务模块,这块也会是我们整个专栏的重点,我们会逐个模块讲解如何搭建好各个模块,以支持SaaS产品平台侧的业务运营。通常来说,SaaS产品的业务层会包括客户(租户)管理、合同管理、销售版本管理、产品及服务管理、订单管理、权限管理、平台通知管理、版本更新管理、服务工单管理、运营数据看板等模块。当然,实际上,针对不同行业的SaaS产品,模块会有些许差异。我们后续也会根据反馈去增加一些模块。

展示层

这块通常会有Web端、App端和其他端(比如微信小程序)。对于SaaS平台侧来说,主要还是Web端。这块我们以原型设计为主来讲解如何设计比较好的操作界面。

思维导图生成中,请稍候...

问题 1: SaaS平台的架构通常分为哪几层?
回答: SaaS平台的架构通常分为五层:IaaS层、中台(公共组件)、应用层、业务层和展示层。

问题 2: IaaS层的主要作用是什么?
回答: IaaS层主要负责基础设施的支撑,包括应用服务器、数据库服务器和文件服务器等,通常使用公有云服务,并通过堡垒机实现内网与公网的隔离及互通。

问题 3: 为什么SaaS平台需要中台(公共组件)?
回答: 中台(公共组件)将多个业务系统共用的部分提取出来,统一维护,以提高效率并支撑不同业务系统的运行,例如支付网关、订单中心、账号体系等。

问题 4: 应用层在SaaS平台中扮演什么角色?
回答: 应用层主要指平台的应用市场,包括平台自研应用、第三方开发者应用和开放平台,用于满足客户的一体化解决方案需求。

问题 5: 业务层包含哪些常见的模块?
回答: 业务层通常包括客户(租户)管理、合同管理、销售版本管理、产品及服务管理、订单管理、权限管理、平台通知管理、版本更新管理、服务工单管理、运营数据看板等模块。

问题 6: 展示层的主要表现形式有哪些?
回答: 展示层主要包括Web端、App端和其他端(如微信小程序),其中Web端是SaaS平台侧的主要表现形式。

问题 7: 为什么SaaS平台需要支付网关?
回答: 支付网关用于统一管理线上交易,支持接入多家支付渠道,避免每新增一家支付渠道都需要重新建设,从而降低成本并提高维护效率。

问题 8: 日志系统在SaaS平台中的作用是什么?
回答: 日志系统分为操作日志和系统运行日志,操作日志用于行为记录和风控溯源,运行日志用于监控系统运行状态和帮助开发定位系统问题。

问题 9: 如何保障SaaS平台公网数据传输的安全性?
回答: 通常采用https协议进行数据加密传输,以确保公网数据传输的安全性。

问题 10: 为什么SaaS平台需要限流容错策略?
回答: 限流容错策略用于防止流量高峰或恶意流量攻击导致系统宕机,确保系统在高负载情况下的稳定运行。