伙伴云客服论坛»论坛 S区 S产品资讯 查看内容

0 评论

0 收藏

分享

SaaS架构

SaaS简介

SaaS是Software-as-a-Service(软件即效劳)的简称,“软件即效劳”?是不是有点拗口?其实你就理解成为“按需租用他人提供的软件效劳”就可以了,它是一种软件交付形式。SaaS这个说法是区别于以往软件购置和交付方式而提出来的。在以前,你公司要使用一款软件来管理财务记账的时候,那你要向软件提供公司说明需求、支付购置软件的钱并提供装置软件的硬件环境,然后软件公司就会上门装置调试软件,调试完后就可以正式投入使用了。这里有一个很显著的特点是,软件都装置在你指定的地方,你拥有100%的管控权,相应的你后续还需要继续投入人员和资源维护系统的正常运行。
SaaS(软件即效劳)的形式就不一样了,在客户还没有来之前,软件提供公司就自己提效劳器、数据库等硬件,把软件装置发布好,作为一个软件使用方就变得轻松许多,一上来就可以直接体验了,体验之后,你觉得哪些功能适宜你的,就挑出来,按月支付支付比较廉价的费用就可以正式使用了。后续的晋级、维护也由软件公司来负责,把所有的软件相关工作都归类准备好了,你直接过来挑自己需要的用就好了,其他的用户过来也是一样。“按需付费”是SaaS的一个非常重要的特性。在这种形式下,软件是他人的,发布在他人的效劳器上,数据也需要保管在他人的效劳器上,安全和信任不时是个令人担忧的问题。
业内有一个很恰当的比喻,一开端的时候,各家都自己挖井抽水蓄水,挖井抽水蓄水的技术是有专业的公司提供,但总的来说喝水这个事情是自家管自家的,这是传统的软件的供水形式。SaaS形式下,挖井抽水蓄水净水修水管这些工作对使用方来说都是透明的,你有需要的时候就翻开水龙头取水就OK了,然后每月自来水公司会过来跟你结算。同样的,优缺点很明显,优点是按需用水省事了,本钱变低了,缺点是水由水务公司完成控制供水稳定性、供水质量取决于水务公司实力。
常见名词定义:
CRM:CustomerRelationship Management (客户关系管理)
OA:OfficeAutomation(办公自动化)
ERP:EnterpriseResource Planning(企业资源方案)
HR:humanresource software(人力资源软件)
saas平台架构分为以下几个部分:

呈现层
saas平台架构的呈现层可以使用的客户端可能都阅读器或本地客户端。假设是阅读器则需要Web界面技术、交互技术等技术(如:HTMl5技术、CSS3技术、Ajax技术等)的支持,假设是软件客户端则需要远程桌面技术、软件交互技术等技术支持。
调度层
saas平台架构的调度层体现分布式系统的特性之一。调度层首先负责识别并通过AAA认证每个用户恳求,然后根据业务处置器的负载、业务特征停止合理的调度。通过应用这样的架构SaaS平台可以横向扩展。此外在存储、缓存等方面为了满足平台的横向扩展需求,调度层也必需具有良好的可扩展性。
业务层
saas平台架构的业务层负责接收调度层转发过来的恳求,而且还要通过对接受到的恳求执行真正的业务逻辑。一般来说业务逻辑的执行使用一台效劳器就够了。因而业务层实际是由一排对等的效劳器组成的,每台效劳器都执行相同的业务逻辑。
数据层
saas平台架构的数据库集群用于处置存储关系性很强并且对事务性要求很高的业务数据,这类数据目前还要用传统的数据库集群技术来处置,saas平台架构的数据库集群主要是根据业务特征制定数据拆分方案。同时分布式数据库用于寄存海量但关系性不强的数据(如:用户的操作日志等)。
saas核心组件

1、安全组件
在SaaS产品中,系统安全永远是第一位需要考虑的事情,如何保证租户数据的安全,是你首要的事情。这仿佛银行首选需要保证储户资金安全一样。安全组件就是统一的对SaaS产品停止安全防护,保证系统数据安全。
2、数据隔离组件
安全组件处置了用户数据安全可靠的问题,但数据往往还需要处置隐私问题,各企业之间的数据必需互相不可见,即互相隔离。在SaaS产品中,如何识别、区分、隔离多个租户的数据是你在施行SaaS软件架构设计时需要考虑的第二个问题。
3、可配置组件
虽然SaaS产品在设计之初就考虑了大多数通用的功能,让租户开箱即用,但任然有为数不少的租户需要定制效劳自身业务需求的配置项,如UI规划、主题、标识(Logo)等信息。正因为无法笼统出一个完全通用的应用程序,所以在SaaS产品中,你需要提供一个可用于自定义配置的组件。
4、可扩展组件
随着SaaS产品业务和租户数量的增长,原有的效劳器配置将无法继续满足新的需求,系统性能将会与业务量和用户量成反比。此时,SaaS产品应该具备水平扩展的才干。如通过网络负载平衡其和容器技术,在多个效劳器上部署多个软件运行示例并提供相同的软件效劳,以此实现水平扩展SaaS产品的整体效劳性能。为了实现可扩展才干,就需要SaaS展示层的代码与业务逻辑部分的代码停止分别,两者独立部署。例如使用VUE+微效劳构建前后端分别且可水平停止扩展的分布式SaaS应用产品。对于可扩展,还有另外一种方式,即垂直扩展,其做法比较简单,也比较粗暴:通过增加单台效劳器的配置,如购置性能更好的CPU、存储更大的内存条、增大带宽等措施,让效劳器可以处置更多的用户恳求。但此做法对于提升产品性能没有质的改变,且本钱很高。
5、0停机时间晋级产品
以往的软件在晋级或者修复Bug是,都需要将运行的程序脱机一段时间,等待晋级或修复工作完成后,再重新启动应用程序。而SaaS产品则需要全天候保证效劳的可用性。这就需要你考虑如何实如今不重启原有应用程序的情况下,完成应用程序的晋级修复工作。
6、多租户组件
要将原有产品SaaS化,就必需提供多租户组件,多租户组件是衡量一个应用程序是否具备SaaS效劳才干的重要指标之一。SaaS产品需要同时容纳多个租户的数据,同时还需要保证各租户之间的数据不会互相干扰,保证租户中的用户可以按期望索引到正确的数据,多租户组件是你必需要处置的一个问题。其余的组件都将围绕此组件展开各自的业务。
SaaS成熟度模型分级

Level1:定制开发
Level2:可配置
Level3:高性能的多租户架构
Level4:可伸缩的多租户架构
多租户数据存储方案

隔离数据库
共享数据库,隔离数据构造
共享数据构造,tenantid字段隔离
多租户优化

数据库层性能优化(建立适宜索引,消除大数据表连接,防止复杂SQL)
应用层性能优化(Cache,统计报表,异步操作,基于租户的索引搜索)
展示层性能优化
多租户可配置性

数据可配置(定制字段,预分配字段,键值对)
功能可配置(原子功能划分,功能包设计,功能使用校验)
界面可配置(系统菜单,页面元素)
流程可配置
可伸缩性

负载平衡
数据库读写分别
数据库垂直切分/水平切分
安全性

应用安全(身份认证,权限管理,日志记录,应用监控)
数据安全(数据隔离,数据库连接安全,敏感数据加密,数据量监控)
网络安全(安全传输,网络攻击防范,网络监控)

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

凶魔宫
注册会员
主题 14
回复 16
粉丝 0
|网站地图
快速回复 返回顶部 返回列表