设为首页 - 加入收藏
广告 1000x90
您的当前位置:78345黄大仙救世网7 > 解增删锁 > 正文

剖析SalesForce的多租户架构(PAASSAAS云计算)

来源:未知 编辑:admin 时间:2019-06-11

  在云计算方面,Salesforce可以称为业界的领袖,它不仅在产品方面比较成熟,而且在思维方面也是引领潮流的,特别是在SaaS(Software as a Service,软件即服务)和PaaS(Platform as a Service,平台即服务)这个两个领域内。

  首先,简要地介绍一下Salesforce的历史:在1999年由前甲骨文高管 Marc Benioff 创立,他创办Salesforce的核心理念就是”No Software(消灭软件)”,但是其意义并不是排斥所有的软件,而是主要排斥运行在企业数据中心的软件(On-Premise Software),也就是希望让用户能直接通过互联网来诸如CRM等软件服务,并同时让用户无需自己搭建和维护软件所需的硬件和系统等资源。Salesforce的主要产品包括Sales Cloud(CRM)、Service Cloud、Chatter和Force.com等。下面是它的主要发展史:

  从这张Salesforce的整体架构图可以看成,是 Salesforce 整体架构的核心,因为它首先整合和控制了底层的物理的基础设施,接着给上层的Sales Cloud,Service Cloud,Chatter和基于Force.com的定制应用提供PaaS服务,最后,那些Force.com上层的应用以SaaS形式供用户使用。这样做的好处主要有两方面:其一是关于成本的,因为通过这个统一的架构能极大地整合多种应用,从而降低了在基础设施方面的投入。其二是在软件架构方面,因为使用这个统一的架构,使得所有上层的SaaS服务都依赖Force.com的

  ,这样将有效地确保API的稳定性并避免了重复,从而方便了用户和Saelsforce在这个平台上开发应用。虽然Salesforce的”Sales Cloud”等SaaS应用也比较经典,但由于Force.com堪称整个架构的核心,同时也是最值得的学习和借鉴的部分,所以本系列接下来将会把重点对准Force.com。

  Force.com是Salesforce在2007推出的PaaS平台,并且已经有超过47000位企业已经使用了这个平台。Force.com基于多租户的架构,其主要通过提供完善的开发环境等功能来帮助企业和第三方供应商交付健壮的,可靠的和可伸缩的在线. Force.com 商标(图源自参[3])

  强大的定制功能:在不仅UI能够定制,而且诸如Workflow和表格等也能被定制。

  提供完善的开发环境:首先,通过Visualforce能方便地使用”Drag & Drop”的方式来设计页面。其次,Salesforce提供基于Eclipse的IDE来快速地开发应用。最后,Salesforce还提供Sandbox来方便用户测试。

  支持复杂的事务和流程:通过专属的APEX语言,能方便地设计和开发复杂的事务和流程。

  优秀的整合功能:用户除了可以在AppExchange购买其所需的功能和应用,而且还可以通过Force.com的Web Service接口来和其他应用整合,比如SAP等。

  久经考验的基础设施:由于Salesforce除了通过在多个大洲建有数据中心来应对灾难的发生,而且在可用性和安全性等方面也有一定积累,所以在Salesforce能长时间地支持众多服务的正常运行。

  概念虽然对我们而言,多租户(Multitenancy)可以算是一个非常新颖的概念,但是其实这个概念已经由来已久了。简单而言,多租户指得就是一个单独的软件实例可以为多个组织服务。一个支持多租户的软件需要在设计上能对它的数据和配置信息进行虚拟分区,从而使得每个使用这个软件的组织能使用到一个单独的虚拟实例,并且可以对这个虚拟实例进行定制化。但是要让一个软件支持多租户并非易事,因为不仅对它的软件架构进行相应的修改,而且需要对它的数据库结构进行特殊的设计,同时在安全和隔离性方面也要有所保障。

  经济:因为通过一个软件实例被多个组织共享,从而减低了整体资源的消耗,也同时减低应用运行的成本和相应的管理开支。

  管理方便:首先,通过使用了多租户架构能减少物理资源和软件资源,这将简化管理。其次。由于多租户软件主要由有经验的云供应商运营,所以能依赖那些非常经验的管理人员来提升效率。

  私有表(图1-a):它是最简单的扩展模式,就是为每个租户的自定义数据创建一个新表。优点是简单。缺点是涉及到高成本的DDL操作,并且它的整合度不高。

  通用表(图1-c): 主要通过一个通用表来存放所有自定义信息,里面有租户栏位和许许多多统一的数据栏位(比如500个)。像这种统一的数据栏位会使用非常灵活的格式让转储各种类型的数据,比如VARCHAR。由于在每一行中的数据栏位都会以一个Key一个Value形式存放所有自定义数据,导致通用表的行都会很宽,而且会出现很多空值,所以通用表这种方式也被称为”Sparse Column”。好处是极高的整合度并避免了DDL操作,但是在处理数据方面难度加大。

  由于所负载的应用不论是在定制方面的灵活性上,还是所承受的负载上,对基于多租户的架构而言,都是史无前例的,导致之前提到的一些模型或者改动已经无法满足要求了,所以Salesforce在Force.com引入了通过Metadata(元数据)驱动的多租户架构来动态生成快速的,可伸缩的和可定制的应用。接下来,将一步步为大家揭开Force.com多租户架构的神秘面纱,首先是它的总体架构。

  总体架构在介绍Force.com的整个架构之前,请看下图,此图是根据Salesforce首席架构师Craig Weissman在2009年旧金山QCon大会上的演讲总结而成。

  首先,在最前面是Gateway(网关),网关将接受所有访问Force.com的请求,无论它是访问Sales Cloud,还是关于第三方定制程序的。接下来,网关会根据这个请求所属的租户把请求转发给对应的POD,什么是POD?简单的来说,POD就是一组集群服务器,每个POD都运行同一套Force.com系统,而且每个POD支持成千上万个租户,Salesforce总共有10多个POD来支撑它所有服务的运营,并把所有租户平衡地分配给每个POD,而且主要通过建立新的POD来支撑新的租户。当POD收到请求之后,POD会先通过其内置的Load Balancer(负载均衡器)来将请求转发给负载略轻的App Server(应用服务器),由于为了简化架构和方便伸缩(Scale),所以应用服务器是Stateless(无状态),而且在一个POD内会有多个应用服务器以应对大规模的请求。最后,当应用服务器在处理请求的时候,如果发现请求所需的数据没有被Cache住的话,应用服务器会调用这个租户所属的Shared DB(共享数据库)来取得相关数据,虽然共享数据库是使用成熟的Oracle数据库产品,但是在数据库表的设计上面为多租户做了很多地优化。

  接下来,将介绍Force.com是如何通过Metadata来动态生成和定制应用的。

  首先,Metadata是基于大家非常熟悉的面向对象的概念,所以也可以把Metadata认为是对象,也就是说是由一个个对象组装而成,而且Force.com中的对象可以是表格,也可以是UI,甚至可以是用户权益等。一个Force.com的对象和这个对象下面的字段可以对应一个数据库的表和这个表的列,而且Force.com对象之间的关系(relationship)在功能上类似于数据库的引用完整性約束(referential integrity constraint),但与数据库中每个数据库表对应于独立的存储地址不同的是,Force.com使用几个共享的大数据库表来作为堆存储(heap storage)来放置所有对象,另外这些存储Metadata的表也被称为”UDD(Universal Data Dictionary)”。

  接着,是关于应用的,一个在Force.com上运行的应用实例是通过组合许许多多个对象来生成的,也可以说一个应用实例是使用Metadata来描述的,比如,在应用初始的时候,每个客户都是使用同一个版本和同样规模的对象,而且用户通过添加和更新对象来定制应用,比如增加新的UI和字段等,同时系统会对共享的和定制的对象进行严格地分离,使得既能非常方便地更新共享代码,也能保证某个用户定制过的部分不影响到其他用户。在实现上,Force.com并没有实际地为一个新对象生成一个数据库表,而且以元数据的形式存储在几张大表中,并在运行时候,Force.com会有一套引擎来通过分析数据库中的Metadata来动态生成一个虚拟应用实例和这个应用所需的模块(Virtual Application Componets),比如公共UI(Common Application Screen),定制UI(Tenant-Specific Screen)和其他对象等。

  还有,虽然Metadata驱动这种和Java很类似的动态生成机制在速度上有天生缺陷,但是Force.com也内置与Sun的Hotspot技术有异曲同工之妙的Metadata Cache来加速常用Metadata的读取。

  下面,将分别介绍Force.com的两大组成部分:应用服务器和共享数据库。

  多租户感知的查询优化引擎:这个引擎将通过维护多租户的信息来帮助Oracle自带的基于成本的查询优化器更好地适应多租户环境。

  Metadata表:主要存放用户定制的对象和对象所包含的字段的结构信息,也被称为”UDD”。

  Pivot表:用来维护那些用于检索(indexing),唯一性和关系等denormalized (去规范化)数据以优化系统的效率。

  还有,在物理层面,数据库里面所有表格,包括底下的索引,都根据每个租户不同的租户ID(OrgID)来使用Oracle的Hash分区技术进行分区。通过Hash分区这种久经考验的技术能够将大规模的数据平均地分割成多个更小的和更容易管理的分块,从而帮助大数据库系统能够在多租户的环境下提升速度,伸缩性和可用性等。

  由于要处理的数据量不论是来自网页端,还是来自Web Service端都是非常巨大的,所以Salesforce在中引入了特制的大规模数据处理引擎来处理大量的数据读写和在线事务。它主要有两大特点:其一是对大规模数据处理进行了优化,特别是当一个

  大多数现在数据库都自带基于成本的查询优化器,这种优化器主要是基于数据库表和索引数据等相关数值来进行计算和比较。但是由于传统的基于成本的优化器都是主要为单租户的环境设计的,所以他们并不能很好地适应多租户的环境,因为在数据库中是没有多租户这个概念。为了让优化器能够在多租户环境下良好工作,Salesforce在Oracle自带优化器的基础上搭建了一个多租户感知的查询优化引擎,它也主要有两个特点:其一是这个引擎为每个多租户对象维护了一整套便于优化的数据(租户层的,组层的和用户层的)。其二是这个引擎也维护租户和租户下面用户的安全信息,这样不仅能提升了效率,因为能避免将那些不属于这个租户的数据加入到计算,而且能提升数据的安全性。

  全文检索功能对Web应用而言,基本可以算是一种基本功能,而对基于Force.com的应用而言,同样如此,Force.com为此内置一个全文检索引擎,其是基于大名鼎鼎的Lucene技术。当一个运行在Force.com平台上的应用对数据库中数据进行更新的时候,会有一组称为检索服务器的后台进程来异步更新数据相关的索引。通过这种异步机制不仅能够保证检索工作不影响处理事务的效率,而且同时也能让用户使用到最新的搜索结果。为了优化这个检索流程,系统会同步将修改过的数据复制到一个内部”等待检索”的表,之后检索服务器会访问这个表来进行检索,这样好处是减少了检索服务器的I/O处理量。而且为了更好地适应多租户环境,检索引擎自动为每个租户维护一个独立的索引。

  Object Metadata表:这个表主要存储对象的信息,其中主要字段包括对象的ID(ObjID),拥有这个对象的租户的ID(OrgID)和这个对象的名字(ObjName)。Field Metadata表:这个表主要存储对象附带字段的信息,其中主要字段包括字段的ID(FieldID),拥有这个字段的租户的ID(OrgID),这个字段的名字(FieldName),这个字段的数据类型(datatype)和一个布尔字段(IsIndexed)来定义这个字段是否需要被检索。

  Data表:这个表放置着上面那些对象和字段所对应的数据,核心字段有全局唯一的ID(GUID),租户ID(OrgID),对象的ID(ObjID)和存放对象名字的”Nature Name(自然名称)”,比如这行和一个会计对象有关,这行的”Nature Name”字段可能是”Account Name”,除了这些核心字段之外,这个表还有名字从Value0到Value500的501个数据列来存储数据,而且这些列都是varchar的形式来承载不同类型的数据,这种数据列也被称为”flex列”。Clob表:这个表主要存放那些CLOB(Character Large Object,字符大对象)数据,对象最大支持到32000个字符。

  Index Pivot表:由于Data表里面数据都是以”flex列”的形式存储,所以很难在Data表的基础上对表中的数据进行检索,所以引入Index Pivot表来解决这个问题,系统在运行的时候会将需要索引的数据从Data表同步到Index Pivot表中相对应的字段来方便检索,比如这个数据的类型是日期型的,那么它将会被同步到Index Pivot表中的日期字段。UniqueFields Pivot表:这个表是用来帮助系统在Data表中字段实现唯一性。

  NameDenorm表:是一个简单的数据表用于存储对象的ID(ObjID)和这个对象的实例的名字,主要让一些仅需获取名字的查询调用,从而让一些简单的查询无需查询规模庞大的Data表。

  FallbackIndex表:这个表将记录所有对象的名字,来免去成本高昂的”UNION”操作,从而加速查询。

  APEX的语言是为Force.com度身定做的一门语法上类似Java的强类型面向对象语言,主要可以通过APEX在Force.com上创建Web Service,编辑复杂的商业逻辑和整合多个Force.com的模块等。APEX主要以两种方式执行:其一是以单独脚本的形式,按照用户的需要执行。其二是以触发器的形式,当一个特定的数据处理事件发生的之前或者之后,与这个事件绑定的APEX代码将会被执行。而且所有APEX代码将会以Metadata的形式存储在Metadata表内。当一段APEX代码被调用的时候,APEX的翻译器(runtime interpreter)将会从Metadata Cache读取编译之后的APEX代码,而且能够同时被多个租户共享以提升效率。

  那么为什么要在Force.com引入APEX这门新的语言,而不是像Google App Engine那样支持已经有一定市场占有率的语言,比如Java和Pyhon。Salesforce的首席架构师在谈到这点时,他提出了一个非常重要的原因,那就是安全,首先,Salesforce会APEX语言度身设计一组管理工具,通过这个工具能够非常方便地监控APEX脚本的执行,并且能知道这个脚本在执行过程所耗费的CPU时间,内存容量和

  语句的数量等数据来判断是否需要中断这个APEX脚本,以避免影响到属于其他租户的应用,如果中断的话,系统会抛出一个runtime exception给上层的调用者。其次,基于APEX语言的代码能够对其内嵌的SOQL(Sforce Object Query Language)和SOSL(Sforce Object Search Language)进行验证来避免实际运行时出现错误。还有,在安全方面除了APEX自带的功能之外,Salesforce还要求每个上传到Force.com的APEX脚本,都需要自带能覆盖其75%代码的测试用例,这种做法不仅显著地提升APEX代码的质量从而确保平台整体运行的稳定,而且在Force.com自己更新的时候,能使用这些用例来确保新的更新不会影响现有的基于Force.com的应用。

  根据Craig Weissman的演讲和几份官方的白皮书,在Force.com的设计方面Salesforce团队主要有下面这五大考量:数据驱动:由于 Salesforce 主要面向企业用户,导致其上面运行的应用,无论是 CRM ,还是报表工具,都是以数据的CRUD(增删改查)为核心,所以 Force.com 需要由数据来驱动,而且也需要为此做一定程度的优化。

  安全为先:由于在一套物理设备上将承载数以万计客户的企业级应用,那么如果出现严重的程序错误或者数据方面遗失或者错乱,将会发生非常严重的后果,所以安全问题是一个 Salesforce绝不能轻视的问题。

  定制方便:虽然各个企业都会存在一部分比较通用的流程,但是每个企业都可能存在一部分私有或者独特的流程,所以Force.com需要提供方便的定制功能来帮助用户将更快捷地将企业的业务迁移到其上。

  功能丰富:虽然用户能在 Force.com 上进行开发和定制,但是如果 Force.com 能提供更多的功能模块或者能让用户购买和整合第三方的应用将非常有效地帮助用户开发应用。

  虽然这些设计理念说起来很容易,但是实现起来是非常艰难的。可贵地是,Salesforce 团队在开发 Force.com 的过程中基本实现了这些设计理念。

  Trade-Off 是难免的:为了满足设计目标,有时不得不做Trade-Off 。由于 Salesforce 所需要承载的多租户应用的规模之大,定制化需求之高都是前所未见的,所以Salesforce并没有采用在第二篇所提到几种常见模型,而是从长计议,采用了更灵活但技术要求更高的 Metadata 方式。 还有为了避免在数据库中执行成本非常高并会 Locking 整个数据库的 DDL(数据库定义语句)操作,所以在 Force.com 运行的时候是无法创建和修改数据库表,而这样将会提升实现的难度。

  优化很重要,虽然 Force.com 的多租户架构就像 Java 一样,采用了很多动态生成的机制。很显然,如果像早期的Java那样缺乏优化的话,那么 Force.com 整体的性能将会非常糟糕,从而无法实现其设计要求。但幸运的是,Salesforce 团队不仅做了优化,而且凭借着其很多核心成员来自于 Oracle 的背景,在数据库端做了很多高水平的优化,比如添加了很多貌似累赘的 Pivot 表来加快部分常用数据的读取。

  人才很重要:经过本系列的介绍,可以看出 Force.com 的整个架构并不全是在现有的框架和库的基础上构建的,而是为了设计目标开发了很多比较底层和比较复杂的模块,而且这些模块是只有那些顶级的程序员才能编写出来的,所以说如果没有硅谷那个庞大的优秀程序员池,Salesforce 就很难走到今天。

  软件是一个进化的工程:刚开始的时候 Salesforce 架构是普普通通的 B/S 架构,但是随着用户不断地提出定制化的要求,Salesforce 也不得不在架构中引入多租户的概念,之后,由于用户需要更灵活的,可伸缩的和功能更强大的平台,导致 Salesforce 不断地对其架构进行重构,到最后,终于整出了 Force.com 这一优秀的 PaaS 平台。

  有用的创新才珍贵:Salesforce 不仅在 Force.com 引入很多创新,而且都非常有效。在这些创新当中,最有用的除了 Metadata 驱动这种多租户架构实现机制之外,还有一个名为”回收站(Recycle Bin)”的概念,这个回收站主要存储30天来那些从数据表里面删除的数据,如果用户在30天内发现数据是误删,可以对数据进行恢复,这样既减低数据误删的可能性,而且能回收部分物理资源,比如硬盘空间等。

  最后,我想说虽然到现在为止,Salesforce 还不能算是一场巨大的商业胜利,但是它在产品和思路方面有很多值得我们借鉴的地方,这也是我写本文的初衷,并谢谢大家花时间在这个系列上面,希望能对得起大家的时间。还有,如果大家对本系列有什么疑问或者见解,那么就不要吝惜你的时间,请留下你的评论。

  文章不错,引自在云计算方面,Salesforce可以称为业界的领袖,它不仅在产品方面比较成熟,而且在...博文

  多租户架构(Multitenancy)已成为软件行业的一个口号。你只要询问某家公司它对这个主题有什么看法,就能判断该公司从事什么业务。对于靠该架构起家的公司(Salesforce。com和谷歌)而言,...博文

  学习Salesforce第一步就是要理解数据模型即对象Object、字段Field(域)及关系Relationship。用大家耳熟能详的Excel来解释对象、字段和记录的关系:Object相当于电子表...博文

  一、云计算概述   云计算到底是什么呢?在这个问题上,可谓众说纷纭。比如,在维基百科上的定义是“云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算”;著...博文

  多租户SaaS平台的数据库方案1.1多租户是什么多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用...博文

  三, 跨语言微服务框架 - Istio官方示例(自动注入.请求路由.流量控制.故障注入)

  基础的Istio环境已经搭建完成,我们需要开始了解Istio提供作为微服务网格的各种机制,也就是本文标题的自动注入.请求路由.故障注入.流量切换,官方很给力的准备的实例项目也不需要大家自己编写demo...博文

  当您考虑Salesforce架构时,请想象一系列相互重叠的层。有时候把它想成蛋糕是有帮助的,因为蛋糕很好吃。这里有很多东西需要解释,我们来关注一些重要的点。Salesforce是一家云计算公司。我们提...博文

  多租户架构(Multitenancy)已成为软件行业的一个口号。你只要询问某家公司它对这个主题有什么看法,就能判断该公司从事什么业务。对于靠该架构起家的公司(Salesforce。com和谷歌)而言,...博文

  参考:多租户架构(Multitenancy)已成为软件行业的一个口号。你只要询问某家公司它对这个主题有什么看法,就能判...博文

  图1定义了云环境中有关多租户的技术堆栈。图1.依据资源共享级别来定义的多租户正如您所见,多租户场景包括:不共享资源。共享硬件资源。共享操作系统。共享中间件。共享应用程序。我们来看一下每一项的细节。场景...博文

  PaaS平台下多租户的RBAC权限管理本篇文章为第一章,介绍公司、体系结构、组织机构、角色、用户、域、帐号、帐号关联、应用、资源、权限对象等基本概念。...博文

  一、多租户概念1.什么是多租户多租户技术(英语:multi-tenancytechnology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,...博文

  Oracle的多租户和MySQL,MSSQL的类似,把之前的一个实例对一个数据库的情形(RAC是多个实例对一个数据库)整合成了一个实例下可以挂多个数据库,并且定义为可插拔的,听起来很炫。就像在没有多租...博文

  什么是多租户今天在看ElasticSearch介绍的时候,其中提到ES可以支持多租户的功能,突然联想到之前在某些软件服务提供商的介绍中也出现过这个名词,但对其一直不是很理解。经过查阅资料,将自己对租户...博文

  消费者通过Internet可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务。基于Internet的服务(如存储和数据库)是IaaS(InfrastructureasaService)的一...博文

  前言:      以数据库导出为excel文件为例子,分析抽象性思维和元数据定义、解析执行的过程。问题:      系统中比较常见各种excel导出的功能要求,如何开发一个通用的excel导出功能?可...博文

  云计算的三种服务模式:IaaS,PaaS和SaaS       突然想了解下有关云的一些知识,于是整理了一些资料供自己学习和理解。       “云计算”已经越来越普遍,简单来说这就是一种共享资源的形...博文

  一、云计算最初是实现资源管理的灵活性1.1管数据中心就像配电脑1.2灵活就是想啥时要都有,想要多少都行1.3物理设备不灵活1.4虚拟化灵活多了1.5虚拟世界的赚钱与情怀1.6虚拟化的半自动和云计算的全...博文

  云计算风起云涌,已成势不可挡之势。公司好多项目都依托于云平台了,网络安全采用了zscaler,人力资源系统用的workday,我们case系统也用了salesforce,我自己也在用运行于Google...博文

  转:一、PaaS的发展简史PaaS作为新一代的云计算平台,目前在业界得到了广泛的关注与讨论。诸多大公司也纷纷推出自己的PaaS平...博文

  什么是云服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。...博文

  架构层面做的强大,满足各个租户的自定义和系统集成。中国呢,过去的3年已经证明面向中小企业、创业企业基本是不靠谱,所以从去年下半年,大家都纷纷杀入中大型企业、大型企业。这些中国企业,要么要求在他们的...博文

  作者:高磊(世忠)来源:云时代的寻路者微服务的架构,大多可能只会想到我们把业务拆分成一个一个互相协作的服务“模块”,但是并非那么想当然地这么简单,这里我先不谈业务拆分的复杂性,因为它足够需要很多文章来...博文

  一、微服务的“痛点”但微服务化易弄,服务治理难搞!微服务化没有统一标准,多数是进行业务领域垂直切分,业务按一定的粒度划分职责,并形成清晰、职责单一的服务接口,这样每一块规划为一个微服务。微服务之间的通...博文

  最近读了一下《SAAS架构设计》这本书,总体感觉这本书,还算可以,前面几章写的还不错,后面章节写的没有耐心。 整本书说的内容说的都比较简单,看了之后很多东西都没有印象,并且对于如果运营一个项目,如何采...博文

  多租户综述多租户(MultiTenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务。在这种架构上,应用程序被设计成能将自己的数据、配置进行虚拟的分...博文

  传统IT企业、通信运营商、通信设备商、互联网企业、工业方案提供商、新型创业公司等多股势力如雨后春笋般纷纷涌入,在经过井喷期的热闹,平台沉淀进入下半场盘整,物联网平台基于IaaS、PaaS、Saa...博文

  云计算的服务模式仍在不断进化,但业界普遍接受将云计算按照服务的提供方式划分为三个大类:SaaS(SoftwareasaService–软件即服务)PaaS(PlatformasaService–平台即...博文

  根据NIST的权威定义,云计算有SPI,即SaaS、PaaS和IaaS三大服务模式。这是目前被业界最广泛认  云计算SPI关系图同的划分。PaaS和IaaS源于SaaS理念。PaaS和IaaS可以直接...博文

  云计算的服务模式仍在不断进化,但业界普遍接受将云计算按照服务的提供方式划分为三个大类:   SaaS(SoftwareasaService–软件即服务)    PaaS(PlatformasaServ...博文

  云计算:PAAS、IAAS和SAAS之间的区别1.IAAS:用户通过Internet可以从完善的计算机基础设施获得服务。这类服务可以称为基础设施即服务。2.PAAS:提供了用户可以访问的完整或部分的应...博文

  前言随着数字技术的普及,越来越多的企业面临着海量数据。虽然企业都希望用大数据掘金,然而数字化能力的缺失也使企业极易淹没在这片无边无际的数据海洋里。互联网使得数据的流动和共享成为了可能,云计算技术的发展...博文

  在实际应用中,PaaS模式的重要应用场景之一是向用户交付一个支撑应用运行的应用运行平台(ApplicationsRunningPlatform,以下简称ARP)。基于PaaS模式构建应用运行平台,需要...博文

  多租户(MultiTenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务。在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以...博文

  剖析Force.com的多租户架构(1)-Salesforce的简介按:此为客座博文系列。投稿人吴朱华,曾在IBM中国研究院从事与云计算相关的研究,现在则致力于研发下一代云计算系统,撰写一些与云计算相...博文

  SaaS现在已成为一股潮流,它将颠覆传统的软件交付方式其实从架构层面来分析,SaaS区别于传统技术的重要差别就是Multi-Tenant模式。多租户就是说多个租户共用一个实例,租户的数据既有隔离又...博文

  剖析Force.com的多租户架构(3)-Force.com的多租户架构(上)按:此为客座博文系列。投稿人吴朱华,曾在IBM中国研究院从事与云计算相关的研究,现在则致力于研发下一代云计算系统,撰写一些...博文

  引言软件即服务(SoftwareasaService,SaaS)是随着互联网技术而蓬勃发展的一种新的软件应用模式,其正深刻改变着企业信息系统的开发和运行方式。目前,企业内部大数据的形成使得传统的报...博文

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量...博文

  前言:前段时间做项目用到了图片裁剪,调用系统裁剪图片,结果在我的小米3上一直有问题,裁剪界面打不开,在其他设备上没问题,于是研究其他软件是怎么做的,淘宝的裁剪图片是自己做的,当然没问题,京东的是调用的...博文

  Intellij IDEA 如何通过数据库表生成带注解的实体类图文详细教程

  Intellij IDEA 如何通过数据库表生成带注解的实体类图文详细教程 Intellij IDEA 如何通过数据库表生成带注解的实体类 Contents 第一步:新建...博文

  灰度图像的自动阈值分割(Otsu 法)机器视觉领域许多算法都要求先对图像进行二值化。这种二值化操作阈值的选取非常重要。阈值选取的不合适,可能得到的结果就毫无用处。今天就来讲讲一种自动计算阈值的方法。这...博文

  用以前以前写过的自定义课表软件 ,Android 自定义View课程表表格 原生View截图合成分享的图片 看到的是图片只显示到11节处,下面的没有...博文

  本matplotlib安装过程在一定程度上参考了 因为学习机器学习的需要,又准备参考《机器学...博文

  1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包...博文

  目录 前言Jackson使用工具类Jackson配置属性Jackson解析JSON数据Jackson序列化Java对象 前言 Json数据格式这两年发展的很快,其声称相对XML格式有很对好处...博文

  servlet页面代码:@每次请求时产生一个token(一般为时间戳),存于session中并随之用hidden提交,在servlet中判断接收到的token和session中的是否一致来判断是否重复...博文

  首先,确定你已经有了CSR证书请求、开发证书和App ID。如果你不是第一次开发iOS应用程序,那么你可能已经有了这些东西。那么你可以继续以下的步骤。一、配置App ID登录你的provisionin...博文

  目前还没有写出这个demo,不过可以参考下面这两个链接,一个是显示日期的,还有一个是合并单元格: 合并单元格: 博文

  以回归为例吧,回归在某些场合可能更精准 支持连续变量和类别变量,类别变量就是某个属性有三个值,a,b,c,需要用Feature Transformers中的vectorindexer处理 上来是一堆...博文

  扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文

  简述关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的。简述 ...博文

  今天为了休息下,换换脑子,于是就找到了我之前收藏的一篇python的文章,是关于ddos攻击的一个脚本,正好今天有空,就实践下了。 附上源码pyDdos.py: #!/usr/bin/env ...博文

本文链接:http://igorkralik.com/jiezengshansuo/204.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top