你知道什么是 SaaS 吗?

科技   2024-09-30 14:06   安徽  

来源:juejin.cn/post/7270864903014268962

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;

截止目前,累计输出 58w+ 字,讲解图 2330+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有2100+小伙伴加入

  • 1 云服务架构的三个概念
    • 1.1 PaaS
    • 1.2 IaaS
    • 1.3 SaaS
  • 2 SaaS系统的两大特征
  • 3 SaaS服务与传统服务、互联网服务的区别
    • 3.1 SaaS服务
    • 3.2 传统软件
    • 3.3 互联网应用供应商
  • 4 B2B2C
  • 5 SaaS系统的分类
    • 5.1 业务型SaaS
    • 5.2 效率型SaaS
    • 5.3 混合型SaaS
  • 6 如何SaaS化
  • 7 SaaS产品的核心组件
  • 8 SaaS多租户
    • 8.1 多租户核心概念
    • 8.2 三大模式
    • 8.3 多租户系统需要具备的能力
    • 8.4 多租户系统应用架构图

天天听SaaS,相信大家都知道什么叫SaaS系统!这不?领导安排下来了任务,说要去做SaaS系统,作为小白的我赶紧去看看什么是SaaS,大概收集整理(并非原创)了这部分内容,分享给大家。相信大家看了也会有很多收获。

本文从以下几个方面对SaaS系统召开介绍:

  • 云服务架构的三个概念
  • SaaS系统的两大特征
  • SaaS服务与传统服务、互联网服务的区别
  • B2B2C
  • SaaS系统的分类
  • 如何SaaS化
  • SaaS产品的核心组件
  • SaaS多租户

1 云服务架构的三个概念

1.1 PaaS

英文就是 Platform-as-a-Service(平台即服务)

PaaS,某些时候也叫做中间件。就是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。

客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置。

PaaS 在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和特定的操作系统。底层的平台3/4帮你铺建好了,你只需要开发自己的上层应用。这即节省了你在硬件上的费用,也让各类应用的开发更加便捷,不同的工作互相打通也变得容易,因为在同一平台上遵循的是同样的编程语言、协议和底层代码。

1.2 IaaS

英文就是 Infrastructure-as-a-Service(基础设施即服务)

IaaS 提供给消费者的服务是对所有计算基础设施的利用,包括处理 CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。

消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、防火墙、负载均衡器等)的控制。

IaaS 会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。我们最熟悉的IaaS服务是我们服务器托管业务,多数的IDC都提供这样的服务,用户自己不想要再采购价格昂贵的服务器和磁盘阵列了,所有的硬件都由 IaaS 提供,你还能获得品质更高的网络资源。

1.3 SaaS

英文就是 Software-as-a-Service(软件即服务)

SaaS提供给客户的服务是运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。

消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等。

SaaS 与我们普通使用者联系可能是最直接的,简单地说任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。国内的互联网巨头竭力推荐的 SaaS 应用想必大家已经耳熟能详了,比如阿里的钉钉,腾讯的企业微信,这些软件里面应用平台上的可供使用的各类SaaS小软件数不胜数,从OA,到ERP到CRM等等,涵盖了企业运行所需的几乎所用应用。

2 SaaS系统的两大特征

部署在供应商的服务器上,而不是部署在甲方的服务器上。

订购模式,服务商提供大量功能供客户选择,客户可以选择自己需要的进行组合,支付所需的价格,并支持按服务时间付费。

3 SaaS服务与传统服务、互联网服务的区别

3.1 SaaS服务

介于传统与互联网之间,通过租用的方式提供服务,服务部署在云端,任何用户通过注册后进行订购后获得需要的服务,可以理解成服务器及软件归供应商所有,用户通过付费获得使用权

图片

3.2 传统软件

出售软件及配套设备,将软件部署在客户服务器或客户指定云服务器,出售的软件系统及运维服务为盈利来

图片

3.3 互联网应用供应商

服务器部署在云端,所有用户可以通过客户端注册进行使用,广告及付费增值服务作为盈利来源

图片

4 B2B2C

SaaS作为租户系统,需要为租户(C端)提供注册、购买、业务系统的入口,还得为B端(运营/运维)提供租户管理、流量监控、服务状态监控运维入口

5 SaaS系统的分类

5.1 业务型SaaS

定义:为客户的赚钱业务提供工具以及服务的SaaS,直面的是用户的生意,例如有赞微盟等电商SaaS以及销售CRM工具,为B2B2C企业;

架构以及商业模式:在产品的成长期阶段,为了扩充业务规模和体量,业务SaaS产品会拓展为“多场景+多行业”的产品模式,为不同行业或者不同场景提供适应的解决方案,例如做电商独立站的有赞,后期发展为“商城、零售、美业、教育”多行业的解决方案进行售卖。

图片

5.2 效率型SaaS

定义:为客户效率提升工具的SaaS,如项目管理工具、Zoom等会议工具,提升办公或者生产效率,为B2B企业;

架构以及商业模式:不同于业务型的SaaS,效率SaaS思考得更多的是企业内存在一个大共性的效率的问题,不同的企业对于CRM销售系统的需求是不一样的,但都需要一个协同办公的产品来提升协作效率。对于效率类SaaS来说,从哪来到哪去是非常清晰的,就是要解决优化或者解决一个流程上的问题。

图片

5.3 混合型SaaS

定义:即兼顾企业业务和效率效用SaaS,例如近几年在私域流量上大做文章的企业微信,其本身就是一个办公协同工具,但为企业提供了一整套的私域管理能力,实现业务的提升,同时也支持第三方服务。

架构以及商业模式:混合SaaS是业务和效率SaaS的结合体,负责企业业务以及企业管理流程的某类场景上的降本增效;因混合SaaS核心业务的使用场景是清晰且通用的,非核心业务是近似于锦上添花的存在,所以在中台产品架构上更接近为“1+X”组合方式——即1个核心业务+X个非核心功能,两者在产品层级上是属于同一层级的。

图片

6 如何SaaS化

  • 进行云化部署,性能升级,能够支持更大规模的用户访问
  • 用户系统改造,支持2C用户登录(手机号一键登录、小程序登录、短信验证码登录)
  • 网关服务,限流,接口防篡改等等
  • 租户系统开发,包含租户基础信息管理、租户绑定资源(订购的功能)、租户服务期限等等
  • 客户端改造(通常SaaS系统主要提供WEB端服务),页面权限控制,根据租户系统用户资源提供用户已购买的模块或页面
  • 官网开发,功能报价单,功能试用、用户选购及支付
  • 服务端接口数据权限改造、租户级别数据权限

7 SaaS产品的核心组件

  • 安全组件: 在SaaS产品中,系统安全永远是第一位需要考虑的事情
  • 数据隔离组件: 安全组件解决了用户数据安全可靠的问题,但数据往往还需要解决隐私问题,各企业之间的数据必须相互不可见,即相互隔离。
  • 可配置组件: SaaS产品在设计之初就考虑了大多数通用的功能,让租户开箱即用,但任然有为数不少的租户需要定制服务自身业务需求的配置项,如UI布局、主题、标识(Logo)等信息
  • 可扩展组件: SaaS产品应该具备水平扩展的能力。如通过网络负载均衡其和容器技术,在多个服务器上部署多个软件运行示例并提供相同的软件服务,以此实现水平扩展SaaS产品的整体服务性能
  • 0停机时间升级产品: 实现在不重启原有应用程序的情况下,完成应用程序的升级修复工作
  • 多租户组件: SaaS产品需要同时容纳多个租户的数据,同时还需要保证各租户之间的数据不会相互干扰,保证租户中的用户能够按期望索引到正确的数据

8 SaaS多租户

8.1 多租户核心概念

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

8.2 三大模式

8.2.1 竖井隔离模式

图片

优势:

  • 满足强隔离需求: 一些客户为了系统和数据的安全性,可能提出非常严格的隔离需求,期望软件产品能够部署在一套完全独立的环境中,不和其他租户的应用实例、数据放在一起。
  • 计费逻辑简单: SaaS服务商需要针对租户使用资源进行计费,对于复杂的业务场景,计算、存储、网络资源间的关系同样也会非常复杂,计费模型是很有挑战的,但在竖井模式下,计费模型相对来说是比较简单的。
  • 降低故障影响面: 因为每个客户的系统都部署在自己的环境中,如果其中一个环境出现故障,并不会影响其他客户使用软件服务。

劣势:

  • 规模化问题: 由于租户的SaaS环境是独立的,所以每入驻一个租户,就需要创建和运营一套SaaS环境,如果只是少量的租户,还可能可以管理,但如果是成千上万的租户,管理和运营这些环境将会是非常大的挑战。
  • 成本问题: 每个租户都有独立的环境,花费在单个客户上的成本将非常高,会大幅削弱SaaS软件服务的盈利能力。
  • 敏捷迭代问题: SaaS模式的一个优势是能够快速响应市场需求,迭代产品功能。但竖井隔离策略会阻碍这种敏捷迭代能力,因为更新、管理、支撑这些租户的SaaS环境,会变得非常复杂和低效。
  • 统一管理与监控: 在同一套环境中,对部署的基础设施进行管理与监控,是较为简单的。但每个租户都有独立的环境,在这种非中心化的模式下,对每个租户的基础设施进行管理与监控,同样也是非常复杂、困难的。
8.2.2 共享模式

图片

优势:

  • 高效管理: 在共享策略下,能够集中化地管理、运营所有租户,管理效率非常高。同时,对基础设施配置管理、监控,也将更加容易。相比竖井策略,产品的迭代更新会更快。
  • 成本低: SaaS服务商的成本结构中,很大一块是基础设施的成本。在共享模型下,服务商可以根据租户们的实际资源负载情况,动态伸缩系统,这样基础设施的利用率将非常高。

劣势:

  • 租户相互影响: 由于所有租户共享一套资源,当其中一个租户大量占用机器资源,其他租户的使用体验很可能受到影响,在这种场景下,需要在技术架构上设计一些限制措施(限流、降级、服务器隔离等),让影响面可控。
  • 租户计费困难: 在竖井模型下,非常容易统计租户的资源消耗。然而,在共享模型下,由于所有租户共享一套资源,需要投入更多的精力统计单个租户的合理费用。
8.2.3 分域隔离模式

图片

8.3 多租户系统需要具备的能力

  • 多个租户支持共享一套云资源,如计算、存储、网络资源等。单个租户也可以独占一套云资源。
  • 多个租户间能够实现数据与行为的隔离,能够对租户进行分权分域控制。
  • 租户内部能够支持基于组织架构的管理,可以对产品能力进行授权和管理。
  • 不同的产品能力可以根据客户需求,支持运行在不同的云资源上。

8.4 多租户系统应用架构图

图片

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;

截止目前,累计输出 58w+ 字,讲解图 2330+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有2100+小伙伴加入


1. 我的私密学习小圈子~

2. 效率爆表:30款 IDEA 插件,让你的代码飞起来!

3. 在 SpringBoot 中设计一个订单号生成系统

4. JD-hotkey:京东开源的利器,强得离谱!

最近面试BAT,整理一份面试资料Java面试BATJ通关手册,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。

“在看”支持小哈呀,谢谢啦

Java架构师宝典
专注于 Java 面试题、干货文章分享,不限于算法,数据库,Spring Boot, 微服务,高并发,JVM,Docker 容器,ELK相关知识,期待与您一同进步。
 最新文章