WorkProj
内容管理
- SaaS
- SaaS的优势
- SaaS的注意项
- SaaS产品核心组件
- cfeng结合work理解SaaS
本文introduce SaaS的相关内容
昨天cfeng已经介绍过云原生了,其实就是应用在设计上就要围绕Cloud,代表技术就是容器化和微服务、DevOps和区别于传统瀑布模型的持续更新设计; 同时cfeng的work代表性除了云原生之外,还包含的另一个特点就是SaaS架构
本文将介绍SaaS的相关内容和cfeng结合work项目对于SaaS的理解
云☁是现在很流行的概念,其中云计算是通过网络提供计算资源、软件和数据存储服务等的一种技术。允许用户在不拥有硬件或软件基础设施的情况下
,通过互联网使用计算能力和存储资源。【代表产品就是云服务器、云数据库…】
云计算主要分为三种模式: IaaS、PaaS和SaaS
- IaaS; infrastructure as a Service: 基础设施即服务。该模式下,用户通过互联网租用虚拟化的而计算机、存储和网络资源,构建自己的应用程序和服务。IaaS服务包括 云服务器、 云数据库、云存储【用户自主选择不同选项的资源】
- PaaS:Platform as a Service: 平台即服务。在该模式下,用户可以通过互联网租用开发平台和工具,用于构建和测试自己的应用程序。 PaaS服务包括: 操作系统、编程语言、数据库、Web服务器(tomcat等)…, 用户专注于应用开发无需关心底层基础设施
- SaaS: Software as a Service: 软件即服务, 用户通过租用现成的软件应用程序,在云端进行运行和访问。 SaaS服务包括 : 电子邮件、相关管理系统… 用户无需自己购买、维护这些软件,只需要支付使用费用。 【当然cfeng的work也是SaaS架构,并且产品能够力压其余竞品】
SaaS
SaaS是一种软件应用程序的交付方式,软件提供商集中化托管一个或多个软件应用程序,通过互联网向租户提供使用这些软件应用程序,是云计算的重要组成部分。
SaaS应用程序的任何更新或者漏洞修复都是软件开发商负责实施和处理的,租户是通过互联网获取软件服务,租户端不需要下载修复补丁,开箱即用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nYrH364g-1685799593115)(C:\Users\OMEY-PC\Desktop\课程报告\Saas架构.PNG)]
SaaS的优势
SaaS和传统软件的对比就像有住房需求时的购房和租房, 购房之后拥有房屋的所有权,随意处置, 而租房后房子归属房屋,只有租期内的使用权.
选择传统的产品还是SaaS产品的关键还是在于需求,如果只是想在一段时间内满足部分核心需求,那么SaaS就是最佳的选择方案,节省成本.
开箱即用,缩减部署时间
SaaS和传统模型的不同,因为软件已经安装配置(服务提供商), 只需要简单的配置即可,不需要繁琐的从底层基础设施开始考虑.
像ceng的work产品提供的云端服务,只需要使用企业购买账户的相关证书, 便可以直接使用云端服务达到降本增效
降低使用和维护成本
SaaS可以为企业节约使用成本,SaaS产品通常表现就是一种共享或者多用户共同使用的背景, 成本在所有使用者之间进行分配. 与传统的一对一付费莫斯相比,SaaS产品的许可成本较低.
同时SaaS产品降低了企业的维护陈本, SaaS供应商在一定范围内负有对产品维护的责任(cfeng work中就存在).
可扩展性和集成性
SaaS解决方案驻留在可扩展而且与其他SaaS产品集成的云环境中, 企业无需购买服务器或软件,只需要启用新的SaaS产品即可, 服务器容量规划由供应商考虑, 同时可以更具特定需求灵活扩展和缩减SaaS功能使用(比如权限控制)
产品升级方便高效
SaaS产品提供商会主动承担产品升级相关内容,使用者直接进行使用, 新版本开发的工作量远远低于传统模式中迫使购买新版进行安装的费用和工作量
易于使用和执行概念验证
SaaS产品易于使用(比如cfeng的work就提供了详细的培训文档),并且内置的最佳实践和示例,用户可以进行概念验证并且尝试软件功能,可以拥有多个版本的不同示例并且简单迁移
cfeng的work产品就是SaaS产品,对于消费者而言,选择SaaS产品的优点如上👆, 但是同时需要注意到的就是SaaS的缺陷
SaaS的注意项
SaaS软件是多租户共享,共享消费模式还没有完全普及, 大多数软件还未SaaS化, 对于消费者或者提供商来说,SaaS也有需要注意之处, 这要求we 开发者在开发SaaS产品的时候就需要严格的考量这些问题
软件控制权
与传统的企业内部部署的软件不同,SaaS软件集中托管在服务提供商的Web服务器中,无法控制所有的软件应用程序, 以cfeng 的work产品为例, 企业只是软件的租户, 租期到了也就不能使用产品了,并且产品的所有权在我们开发商, 企业只能看到自己所有的相关数据
性能瓶颈
共享应用程序必然带来服务器性能下降,比如计算速度, 网络资源和I/O读写面对考验, 而传统交付模式的应用比SaaS软件的"共享模式"的性能压力考虑小
从我们开放商的角度考量,那就是默写热点功能产生的数据量可能是极为庞大的, 设计代码的时候就需要考虑到性能
安全问题
对于消费者租户而言,产品的安全性是放在首位的,比如数据的隔离, 敏感数据加密, 数据访问权限控制,个人隐私等问题. 服务提供商就需要加强自身可靠性, 得到消费者的信赖.
SaaS产品核心组件
不同的SaaS产品虽然业务功能不同,但是也有相似的核心构件.
安全组件
在SaaS产品中,需要保证系统安全, 保障租户的数据安全. 开发商需要考虑防火墙, 还有各种拦截措施
数据隔离组件
SaaS是多租户共享, 需要解决的问题就是各企业之间互相不可见,也就是相互隔离, 如何识别, 区分,隔离各个租户的数据是SaaS架构需要考虑的问题
可配置组件
SaaS最好能够做到可扩展,可配置, 因为不同的企业租户可能有不同的需求, 比如最近的流行信创生态, 所以最好能够做到相关的资源可配置, 比如(UI布局, 整体颜色)
可扩展组件
SaaS产品和租户数量增长, 系统性能和业务量, 数据量成反比, SaaS产品应该具有水平扩展能力
当然结合云原生等☁技术, 还是很好的解决该问题
零停机升级
传统升级需要程序脱机, 等待修复升级完成, 再重新启动, SaaS产品需要全天候保证服务的可用性, 这对于产品运维提出了更高的要求
**多租户组件 **
传统产品SaaS化就需要提供多租户组件, 该组件也是衡量SaaS化的重要指标, 需要容纳多租户数据,同时保证租户中的用户可以按照期望索引拿到正确的数据
cfeng结合work理解SaaS
cfeng的work产品就是典型的云原生架构的SaaS产品.
- 首先云原生思想就能够保证程序随着业务量增大的易扩展, 同时也可以保证SaaS产品的频繁的升级更新
- 多租户的实现,就是需要在用户的基础上考虑租户, 用户代表个人, 租户代表企业, 如何设计相关的数据库表和怎么进行技术实现是开发商需要考虑的问题. 同时在该基础上还需要考虑安全问题
- 数据隔离对于开发来说实现很容易, 因为从数据库表层面来讲, 相关的数据和用户直接关联, 当然可以冗余租户, 这样查询的时候加上租户的筛选就很容易进行数据隔离
- SaaS最需要考虑的还是产品的可靠性, 就是产品运维, 需要保证 7 × 24小时的监控, 因为多租户共享, 一个小问题就可能造成多个客户的损失. 所以在代码编写过程中就需要谨慎. 对于运维来说, 能够做好监控 + 告警 + 容灾备案处理, 监控可以使用相关程序进行监控, 类似的思想就是哨兵机制, 告警就是当发生故障时能够给相关人员及时提示, 容灾备案处理典型的就是 微服务构建中的服务熔断器一样, 能够自动的给出相暂时的解决方案
- 权限控制是SaaS产品最需要关心的问题, 这里不是指的是上面的简单的数据隔离, 而是应用的相关功能的模块划分的权限控制, 最典型的就是用户 — 菜单 — 功能, 这里在传统的权限管理系统的基础上还需要考虑多租户的设计
其实cfeng觉得work产品的关键还是整体采用的是云原生架构, 处理SaaS产品具有比较明显的效果 [现在网络上各种技术分享很多, 对于SaaS的技术实现直接采用相关的技术方案即可, 本文就不讨论具体的技术实现了, 毕竟关乎work产品]🌳