什么是 SaaS ?-Java-E先生的博客
Java
MySQL
大数据
Python
前端
黑科技
大语言模型
    首页 >> 互联网 >> Java

什么是 SaaS ?

[导读]:架构师,SaaS...

一、云服务架构的三个概念

    1.1 PaaS

    1.2 IaaS

    1.3 SaaS

二、 SaaS系统的两大特征

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

    3.1 SaaS服务

    3.2 传统软件

    3.3 互联网应用供应商

四、 B2B2C

五、 SaaS系统的分类

    5.1 业务型SaaS

    5.2 效率型SaaS

    5.3 混合型SaaS

六、如何SaaS化

七、 SaaS产品的核心组件

八、 SaaS多租户

    8.1 多租户核心概念

    8.2 三大模式

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

    8.4 多租户系统应用架构图

云服务架构的三个概念

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等等,涵盖了企业运行所需的几乎所用应用。

SaaS系统的两大特征

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

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

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

3.1 SaaS服务

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

image.png

3.2 传统软件

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

image.png

3.3 互联网应用供应商

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

image.png

B2B2C

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

SaaS系统的分类

5.1 业务型SaaS

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

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

image.png

5.2 效率型SaaS

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

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

image.png

5.3 混合型SaaS

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

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

image.png

如何SaaS化

进行云化部署,性能升级,能够支持更大规模的用户访问

用户系统改造,支持2C用户登录(手机号一键登录、小程序登录、短信验证码登录)

网关服务,限流,接口防篡改等等

租户系统开发,包含租户基础信息管理、租户绑定资源(订购的功能)、租户服务期限等等

客户端改造(通常SaaS系统主要提供WEB端服务),页面权限控制,根据租户系统用户资源提供用户已购买的模块或页面

官网开发,功能报价单,功能试用、用户选购及支付

服务端接口数据权限改造、租户级别数据权限

SaaS产品的核心组件

安全组件: 在SaaS产品中,系统安全永远是第一位需要考虑的事情

数据隔离组件: 安全组件解决了用户数据安全可靠的问题,但数据往往还需要解决隐私问题,各企业之间的数据必须相互不可见,即相互隔离。

可配置组件: SaaS产品在设计之初就考虑了大多数通用的功能,让租户开箱即用,但任然有为数不少的租户需要定制服务自身业务需求的配置项,如UI布局、主题、标识(Logo)等信息

可扩展组件: SaaS产品应该具备水平扩展的能力。如通过网络负载均衡其和容器技术,在多个服务器上部署多个软件运行示例并提供相同的软件服务,以此实现水平扩展SaaS产品的整体服务性能

0停机时间升级产品: 实现在不重启原有应用程序的情况下,完成应用程序的升级修复工作

多租户组件: SaaS产品需要同时容纳多个租户的数据,同时还需要保证各租户之间的数据不会相互干扰,保证租户中的用户能够按期望索引到正确的数据

SaaS多租户

8.1 多租户核心概念

租户: 一般指一个企业客户或个人客户,租户之间数据与行为是隔离的

用户: 在某个租户内的具体使用者,可以通过使用账户名、密码等登录信息,登录到SaaS系统使用软件服务

组织: 如果租户是一个企业客户,通常会拥有自己的组织架构

员工: 是指组织内部具体的某位员工。

解决方案: 为了解决客户的某类型业务问题,SaaS服务商将产品与服务组合在一起,为商家提供整体的打包方案。

产品能力: 指的是SaaS服务商对客户售卖的产品应用,特指能够帮助客户实现端到端场景解决方案闭环的能力。

资源域: 用来运行1个或多个产品应用的一套云资源环境

云资源: SaaS产品一般都部署在各种云平台上,例如阿里云、腾讯云、华为云等。对这些云平台提供的计算、存储、网络、容器等资源,抽象为云资源。

8.2 三大模式

8.2.1 竖井隔离模式

image.png

优势:

满足强隔离需求: 一些客户为了系统和数据的安全性,可能提出非常严格的隔离需求,期望软件产品能够部署在一套完全独立的环境中,不和其他租户的应用实例、数据放在一起。

计费逻辑简单: SaaS服务商需要针对租户使用资源进行计费,对于复杂的业务场景,计算、存储、网络资源间的关系同样也会非常复杂,计费模型是很有挑战的,但在竖井模式下,计费模型相对来说是比较简单的。

降低故障影响面: 因为每个客户的系统都部署在自己的环境中,如果其中一个环境出现故障,并不会影响其他客户使用软件服务。

劣势:

规模化问题: 由于租户的SaaS环境是独立的,所以每入驻一个租户,就需要创建和运营一套SaaS环境,如果只是少量的租户,还可能可以管理,但如果是成千上万的租户,管理和运营这些环境将会是非常大的挑战。

成本问题: 每个租户都有独立的环境,花费在单个客户上的成本将非常高,会大幅削弱SaaS软件服务的盈利能力。

敏捷迭代问题: SaaS模式的一个优势是能够快速响应市场需求,迭代产品功能。但竖井隔离策略会阻碍这种敏捷迭代能力,因为更新、管理、支撑这些租户的SaaS环境,会变得非常复杂和低效。

统一管理与监控: 在同一套环境中,对部署的基础设施进行管理与监控,是较为简单的。但每个租户都有独立的环境,在这种非中心化的模式下,对每个租户的基础设施进行管理与监控,同样也是非常复杂、困难的。

8.2.2 共享模式

image.png

优势:

高效管理: 在共享策略下,能够集中化地管理、运营所有租户,管理效率非常高。同时,对基础设施配置管理、监控,也将更加容易。相比竖井策略,产品的迭代更新会更快。

成本低: SaaS服务商的成本结构中,很大一块是基础设施的成本。在共享模型下,服务商可以根据租户们的实际资源负载情况,动态伸缩系统,这样基础设施的利用率将非常高。

劣势:

租户相互影响: 由于所有租户共享一套资源,当其中一个租户大量占用机器资源,其他租户的使用体验很可能受到影响,在这种场景下,需要在技术架构上设计一些限制措施(限流、降级、服务器隔离等),让影响面可控。

租户计费困难: 在竖井模型下,非常容易统计租户的资源消耗。然而,在共享模型下,由于所有租户共享一套资源,需要投入更多的精力统计单个租户的合理费用。

8.2.3 分域隔离模式

image.png

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

多个租户支持共享一套云资源,如计算、存储、网络资源等。单个租户也可以独占一套云资源。

多个租户间能够实现数据与行为的隔离,能够对租户进行分权分域控制。

租户内部能够支持基于组织架构的管理,可以对产品能力进行授权和管理。

不同的产品能力可以根据客户需求,支持运行在不同的云资源上。

8.4 多租户系统应用架构图

image.png

本文来自E先生的博客,如若转载,请注明出处:https://www.javajz.cn

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

欢迎加Easy的QQ