关键词不能为空

当前您在: 主页 > 英语 >

剖析多租户-SaaS-PaaS

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 13:28
tags:

-

2021年2月28日发(作者:灰色)


1



Salesforce


的简介



在云计算方面,


Salesforce



可以称为业界的领袖,


它不仅在产品方面比较成熟,

< p>
而且在思维


方面也是引领潮流的,


特别是在


SaaS



Software as a S ervice



软件即服务)



PaaS



Platform


as a Service


,平台即服务)这个两个领域内。





1. Salesforce < /p>


商标(图源自





首先,


简要地介绍一下


Salesfo rce


的历史:



1999


年由前甲骨文高管



Marc


Benioff


创立,他 创办


Salesforce


的核心理念就是


(消灭软件)



,但是其意义


并不是排斥所有的软件,


而是主要排斥运行在企业数据中心的软件



On-Premise Software




也就是希望让用户能直接通过互联网来诸如


CRM


等软件服务,并同时让用户无需自己搭建


和维 护软件所需的硬件和系统等资源。


Salesforce


的主要 产品包括


Sales Cloud



C RM


)、


Service Cloud



Chatter



< br>等。下面是它的主要发展史:



1999


年,


Salesforce


在美国旧金山成立。




2001


年,推 出了第一款


SaaS


应用


CRM


,同时也受到众多厂商和客户的热议。



< /p>


2004


年,


Sunguard


成为


Salesforce


< br>1000


位用户。




2005


年,推出了名为



的程序商店,以丰富用户选择。




2006


年,推出了首个运行在云计算平台的语言


Apex


,并在语法上类似


Java





2007


年,


推出了它的


PaaS


平台




来让用户更方便地在


Salefo rce


平台上


开发在线应用,同时


Sa lesforce


凭借



得到了华尔街日 报的科技创新奖



Technology Innovation Award






?



?



?



?



?



?



?



2009


年,


Salesforce


成为首家年收入达到


10


亿美元的云计算公司 ,并在年初推出


了名为



在线客户服务应 用。




?



2010


年,


Salesforce< /p>


将推出名为



的企业级在线


SNS


服务,


类似于企业内部




,同时其


CRM

应用已更名为







1.1



Sal


esforce


的整体架构



虽然


Salesforce


这些产品从表面而言有所不同,


但是从全局而言,


它 们却是一个整体,


具体


可看下图:





2. Salesforce


的整体架构



( 图部分源自





从这张


Salesforce


的整体架构图可以看成,






Salesforce


整体架构的核心,因

< br>为它首先整合和控制了底层的物理的基础设施,接着给上层的


Sales Cloud



Service Cloud


Chatter


和基于



的定制应用提供


PaaS


服务,最后,那些



上层的应用



Sa aS


形式供用户使用。这样做的好处主要有两方面:其一是关于成本的,因为通过这个< /p>


统一的架构能极大地整合多种应用,


从而降低了在基础设施方面的 投入。


其二是在软件架构


方面,因为使用这个统一的架构,使得 所有上层的


SaaS


服务都依赖




API


,这


样将有 效地确保


API


的稳定性并避免了重复,


从而方便了用户和


Saelsforce


在这个平台上开


发应用。



虽然


S alesforce





SaaS


应用也比较经典,但由于


< br>堪称整个架构


的核心,同时也是最值得的学习和借鉴的部分,所以本系列接下来将 会把重点对准





1.2




< /p>



Salesforce



2007


推出的


PaaS


平 台,并且已经有超过


47000


位企业已经使

< br>用了这个平台。



基于多租户的架构,

其主要通过提供完善的开发环境等功能来帮


助企业和第三方供应商交付健壮的,可靠 的和可伸缩的在线应用。





1.


商标(图源自参

< p>
[3]




总体而言,< /p>



主要有五方面功能:



?



强大的定制功能:在



,不仅


UI


能够定制,而且 诸如


Workflow


和表格等


也能被 定制。




?



提供完善的开发环境:


首先,


通过


Visualforce


能方便地使用



的方式来


设计页面。其次,


Salesfo rce


提供基于


Eclipse



IDE


来快速地开发应用。最后,


Sale sforce


还提供


Sandbox


来 方便用户测试。




?



支持复杂的事务和流程:通过



专属的


APEX


语 言,能方便地设计和开发


复杂的事务和流程。




?



优秀的 整合功能:


用户除了可以在


AppExchange

< p>
购买其所需的功能和应用,


而且还


可以通过




Web Service

< br>接口来和其他应用整合,比如


SAP


等。




?


久经考验的基础设施:由于


Salesforce


除了通过 在多个大洲建有数据中心来应对灾


难的发生,而且在可用性和安全性等方面也有一定积累 ,所以在


Salesforce


能长时


间地支持众多服务的正常运行。




2



多租户的介绍



2.1



概念



虽然对我们而言,多租户


(


Multi tenancy


)


可以算是一个非常新颖的概念,但是其实这个 概念


已经由来已久了。


简单而言,


多租 户指得就是一个单独的软件实例可以为多个组织服务。



个支持 多租户的软件需要在设计上能对它的数据和配置信息进行虚拟分区,


从而使得每个使


用这个软件的组织能使用到一个单独的虚拟实例,


并且可以对这个虚 拟实例进行定制化。



是要让一个软件支持多租户并非易事,< /p>


因为不仅对它的软件架构进行相应的修改,


而且需要


对它的数据库结构进行特殊的设计,同时在安全和隔离性方面也要有所保障。



还有,


为了帮助大家进一步理解多租户这个概念,


特别选取两个和多租户比较接近的概念来


进行进一步的辨析。



多租户和多用户的区别



多 用户的关键点在于不同的用户拥有不同的访问权限,


但是多个用户共享同一个的实例。< /p>



在多租户中,多个组织使用的实例各不相同。

< br>


多租户和虚拟化的区别



多租 户和虚拟化在概念是比较类似,都是给每个用户一个虚拟的实例,并且都支持定制化,


但 是它们作用的层次不同:


虚拟化主要是虚拟出一个操作系统的实例,

而多租户则是主要虚


拟出一个应用的实例。



2.2



优缺点



多租户的优点:



?



经济:因为通过一个软件实例被多 个组织共享,从而减低了整体资源的消耗,也同


时减低应用运行的成本和相应的管理开支 。




?


< /p>


易于更新和开发:因为所有组织都共享同一套核心代码,所以能够让软件更新和开


发更简单。




?



管理方便:首先,通过使用了多租 户架构能减少物理资源和软件资源,这将简化管


理。其次。由于多租户软件主要由有经验 的云供应商运营,所以能依赖那些非常经


验的管理人员来提升效率。



多租户的缺点:



?



更复杂:


由于一个软件需要做出极大地修改,


才能支持多租户架构,


而且 这种修改,


往往会增加整个软件在架构方面的复杂性。




?



不够安 全:因为众多组织的应用和数据共享同一套软件和基础设施,如果出现机器


宕机,软件出 现问题或者大规模的数据被暴露等情况,将会造成更严重的后果,因


为影响面更大。





2.3



几种模型







在现有的实现中,主要有三种常见 的模型,而且区别主要在于采用不同的数据库模式



Datab ase Schema


):



?



私有表(图


1-a



:它是最简单的扩展模式,就是为每个租户的自定义 数据创建一个


新表。优点是简单。缺点是涉及到高成本的


DDL


操作,并且它的整合度不高。




?



扩展表(图


1-b



:总体而言,比较类似于私有表,但是一个扩展表会 被多个租户共


享,所以无论是共享表还是基本表都会有租户栏位。好处是比私有表更高的 整合度


和更少的


DDL


操作,但是在架 构上比私有表更复杂。




?



通用表


( 图


1-c





主要通过一个通用表来存放所有自定义信息,


里面有租户栏位和


许许多多统一的数据栏位(比如


500


个)


。像这种统一的数据栏位会使用非常灵活


的格式让转储各种 类型的数据,


比如


VARCHAR


。< /p>


由于在每一行中的数据栏位都会以


一个


K ey


一个


Value


形式存放所有自定 义数据,导致通用表的行都会很宽,而且会


出现很多空值,


所以 通用表这种方式也被称为




好处是极高 的整合


度并避免了


DDL


操作,但是在 处理数据方面难度加大。






1.


多种模式(图源自参


[7]




差异与取舍



模型



机制



优点



简单



缺点



需要


D DL


操作,


低整合


< br>


私有表



为每个租户的自定义数据创建一个新




扩展表



一个扩展表会被多个租户共享



高整合 度,少


DDL




有点复杂



通用表



通过一个通用表来存放所有自 定义信


极高整合度,无


DDL


实现难度 高





操作



在实战中,具体选择那个模型,主要还是看那个模型更适合。



3




的多租户架构







由于



所负载的应用不论是在定制方面的灵活 性上,还是所承受的负载上,


对基于多租户的架构而言,


都是史 无前例的,


导致之前提到的一些模型或者改动已经无法满


足要求 了,所以


Salesforce




引入了通过


Metadata


(元数据)驱 动的多租户架


构来动态生成快速的,可伸缩的和可定制的应用。接下来,将一步步为大家 揭开



多租户架构的神秘面纱,首先是它的总体架构。

< p>


3.1



总体架构







在介绍


< /p>


的整个架构之前,


请看下图,


此图是根据


Salesforce


首席架构师


Cr aig


Weissman



2009


年旧金山


QCon


大会上的演讲总结而 成。





1.


的架构图



首先,在最前面是


Gateway


(网关),网关将接受所有访问



的请求,无论它是


访问


Sales C loud


,还是关于第三方定制程序的。接下来,网关会根据这个请求所属的租户


把请求转发给对应的


POD



什么是


POD


?简单的来说,


POD


就是一组集群服务器,


每个


PO D


都运行同一套



系统,而且每个


POD


支持成千上万个租户,


Salesfo rce


总共有


10


多个


POD


来支撑它所有服务的运营,并把所有租户平衡地分配给每个


POD


,而且主要通过


建立新的

POD


来支撑新的租户。当


POD


收到请求之后,


POD


会先通过其内置的


Load


Balancer


(负载均衡器)来将请求转发给 负载略轻的


App Server


(应用服务器),由于为了< /p>


简化架构和方便伸缩(


Scale


),所 以应用服务器是


Stateless


(无状态),而且在一个< /p>


POD


内会有多个应用服务器以应对大规模的请求。


最后,


当应用服务器在处理请求的时候,


如果


发现请求所需的数据没有被


Cache


住的话 ,应用服务器会调用这个租户所属的


Shared DB


(共享 数据库)来取得相关数据,虽然共享数据库是使用成熟的


Oracle

< br>数据库产品,但是


在数据库表的设计上面为多租户做了很多地优化。



接下来,将介绍



是如何通 过


Metadata


来动态生成和定制应用的。



3.2



Metadata


驱动




首先,



的< /p>


Metadata


是基于大家非常熟悉的面向对象的概念,所以也 可以把


Metadata


认为是对象,也就是说



是由一个个对象组装而成,而且




的对象可以是表格,也可以是


UI


,甚至可以是用户权益等。一个



的对象和这个

< br>对象下面的字段可以对应一个数据库的表和这个表的列,而且


对象之间的关系



relationship



在功能上类似于数据库的引用完整性約束



referential integrity constraint




但与数据库中每个数据库表对应于独立的存储地址不同的 是,



使用几个共享的大


数据库表来作为 堆存储(


heap storage


)来放置所有对象,另外这 些存储


Metadata


的表也


被称为




Universal Data D ictionary






接着,是关于应用的,一个在


上运行的应用实例是通过组合许许多多个对象来


生成的,也可以说一个应用实例是使 用


Metadata


来描述的,比如,在应用初始的时候,每< /p>


个客户都是使用同一个版本和同样规模的对象,而且用户通过添加和更新对象来定制应用,


比如增加新的


UI


和字段等,同时系统 会对共享的和定制的对象进行严格地分离,使得既能


非常方便地更新共享代码,也能保证 某个用户定制过的部分不影响到其他用户。在实现上,

-


-


-


-


-


-


-


-



本文更新与2021-02-28 13:28,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/681447.html

剖析多租户-SaaS-PaaS的相关文章