跟我上“云”端(一)认识多租户

什么是多租户,其优缺点是什么?

  • 从软件的单个共享实例将软件交付给多个客户端组织(或承租者)的能力是 Web 交付解决方案的重要要求。例如,假设有一个由银行服务提供者作为服务提供的简单银行应用程序。本上下文中的多租户 是指从银行应用程序的单个共享实例向多个银行提供银行服务的能力。图 1 说明了从共享的应用程序服务器、数据库、操作系统和物理服务器向两个银行(北卡罗来纳州第一银行和加拿大第二银行)提供的多承租银行服务。

图 1. 使用共享中间件和硬件为银行业务构建的示例 Web 交付的多承租服务

  • 上图应该很形象的说明了什么是多租户,说的更容易理解一点就是我只开发一个application,并且只部署一次,但是可以为多个购买企业服务。这些企业对软件的基本的需求是一样的,比如任何一个大学,都需要有一个基础信息管理系统,这些基础系统的功能基本上就是一样的。原来的做法是每个大学部署一套基础管理系统,并且附带的部署一个数据库服务器。这就造成了资源的浪费与成本的加大。多租户就是为了解决这个问题而提出的概念。它使得多个企业之间可以共享一套资源,但却能提供个性化的服务。

多租户的优缺点:

优点:

  • 多租户的主要优点是具有成本高效性。在承租者之间共享软件、硬件、应用程序开发和维护成本可以降低每个承租者的成本。而且,在承租者之间共享应用程序的单个实例可以提供其他好处,例如,当升级应用程序时,所有承租者可以同时升级。

缺点:

  • 隔离:因为承租者共享软件和硬件的同一实例,所以一个承租者可能会影响其他承租者的软件的可用性和性能。例如,如果共享的软件没有充足的安全保障措施,则可能会发生因一个承租者关闭共享软件而导致对共享该实例的所有承租者拒绝服务。
  • 安全性:如果共享软件没有充分的安全保障措施,则一个承租者的用户可能会访问属于另一个承租者的数据。
  • 自定义能力:因为软件是在承租者之间共享的,所以各个承租者不可能自定义该软件。例如,在没有充足的扩展点的情况下,一个承租者不可能为业务流程提供自己的实现。
  • 应用程序升级将为承租者带来问题:同时升级共享的软件可能并不是所有承租者都希望的。
  • 恢复:在承租者之间共享数据库使得很难为每个承租者单独备份和恢复数据。

SaaS

  • SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

多租户与SaaS:

  • 多租户就是说多个租户共用一个实例,租户的数据既有隔离又有共享,从而解决数据存储的问题。从架构层面来分析,SaaS区别于传统技术的重要差别就是Multi-Tenant模式。不过,构建多租户解决方案还需要解决若干技术难题。

面临的挑战

解决方案开发人员面临的技术挑战包括:

  • 访问控制:如何在承租者之间共享应用程序资源(例如,虚拟门户、数据库表、工作流、Web 服务和 Java? 2 Platform Enterprise Edition (J2EE) 构件),以便只有属于承租者的用户可以访问属于该承租者的实例?例如,如何确保其他银行(如北卡罗来纳州第一银行)的用户不能访问加拿大第二银行的资源(如虚拟门户)?
  • 自定义能力:
    • 数据库:在一个承租者不影响其他承租者的情况下,如何自定义共享的数据库模式?例如,在不影响北卡罗来纳州第一银行的模式定义的情况下,加拿大第二银行如何将新的数据字段引入客户概要的共享数据库表?
    • 用户界面:如何仅通过配置来自定义网站外观(即,在不更改代码的情况下)?例如,如何确保北卡罗来纳州第一银行和加拿大第二银行的银行管理员可以配置不同的设计,并在其客户概要 Portlet 中显示其他字段?
    • 业务逻辑:在不进行代码更改的情况下,如何允许为每个承租者自定义业务逻辑?例如,北卡罗来纳州第一银行如何使用不同于加拿大第二银行的最小信用记录自动拒绝贷款申请?
    • 工作流:您如何让承租者银行在共享的工作流中自定义人工任务和其他有条件任务的分配?例如,北卡罗来纳州第一银行如何确保将共享工作流中的贷款审批任务仅分配给北卡罗来纳州第一银行的员工?
  • 承租者预置: 如何自动执行新承租者的预置?例如,如何使用非常少的手动步骤引入新银行(例如 Fairfield Trust 第三银行)?
  • 基于使用情况的测定:如何记录服务的使用情况,以便仅根据服务使用情况向每个承租者收取服务使用费?例如,银行服务提供者管理员如何测定承租者北卡罗来纳州第一银行和加拿大第二银行的服务使用情况,以及他们的客户调用贷款申请服务的次数?

服务提供者面临的技术挑战包括:

  • 数据库共享、自定义、备份和特定于承租者的数据的恢复:服务提供者如何基于性能、管理和可扩展性标准在不同的数据库划分模式之间进行选择?例如,服务提供者如何满足从多个承租者之间共享的表仅备份自己数据的加拿大第二银行的灾难恢复要求?
  • 快速支持现有 Web 服务的多租户:如何在很少或不进行代码更改的情况下使单个承租者的 Web 服务支持多租户?例如,在不对 Web 服务接口和实现进行代码更改的情况下,如何使单个承租者的信用审核服务支持多租户?
  • 在大型企业中管理大量的第三方服务提供者和部门服务客户之间的连接性:在 Web 交付的应用程序中,大型企业中的业务部门 (LOB) 表现了承租者的许多特征。同一企业中不同的业务部门可以使用来自不同的第三方或内部服务提供者的服务。在企业中,大量的此类服务提供者可能导致中心 IT 部门的管理问题。例如,银行服务提供者企业中的不同业务部门(如信用额度和抵押贷款部门)可能使用不同的信用审核服务提供者。中心 IT 部门如何监视、授权和测定企业中不同业务部门的多个信用审核服务的使用。
  • 可伸缩性改进了硬件使用情况和特定于承租者的服务质量 (QoS):服务提供者如何改进在不同承租者之间共享的硬件使用和提供可绅缩性?服务提供者如何为不同的承租者提供不同的服务质量?例如,您如何满足有别于加拿大第二银行的服务质量需求,以便使用专用硬件承载其服务并收取较高的服务使用费用?

总结:

  • 可扩展的多承租是 Web 交付 (SaaS) 解决方案的重要需求。不过,构建多承租解决方案还需要解决若干技术难题。本系列教程将带你一步步的实现简单的多租户效果。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 11:58:04

跟我上“云”端(一)认识多租户的相关文章

跟我上“云”端(二)多租户的数据隔离

多租户两种极端实现方式 启用多租户的方法有很多,我不想做一一的介绍,但是有两个极端我们可以考虑一下: 极端一: 是所有租户共享单一应用程序实例,也就是相同的服务器.中间件和应用程序.实现的方法是用租户标识参数对应用程序的单一实例进行参数化. 图1 在多个租户之间共享应用程序和中间件的单一实例 极端二: 是租户在单独的服务器上运行自己的应用程序实例(当前许多 Application Service Provider [ASP] 采用这种方法). 租户只共享数据中心的基础结构(比如供电和制冷),但是

跟我上“云”端(四)使用eclipselink构建企业级多租户应用

上一篇博客中我们介绍了多租户的数据隔离,文中具体的介绍了hibernate和eclipselink对于多租户的实现情况,博客的最后,我也对hibernate实现多租户的细节上做了解释,这次,我想带大家一起来使用eclipselink构建企业级的多租户项目. eclipselink的三种实现 由于eclipselink完整实现了jpa规范,我们就可以使用ejb构建一个企业级的多租户项目,首先eclipselink支持3中多租户的模式: - Single-Table Multi-tenancy,依靠

跟我上“云”端(三)eclipselink+jboss实现多租户基本配置

本文主要介绍,如何在jboss EAP6.2中使用eclipselink 开发工具:jboss EAP6.2+maven eclipselink版本:2.6.0 添加eclipselink的module 使用预包装的集成库,下载地址:(eclipselink+jobss EAP6.2集成module) 下载完成以后解压,并使用maven编译,解压后的文件: 查看其中的pom.xml文件: 其中properties结点中加入自己想使用的eclipselink版本,并修改 eclipselink.v

安全狗服云:将服务器安全管理搬上“云”

摘要:如何抵御网络安全问题带来的侵害?如何应对多元化的运维需求?如何从安全角度去考虑运维管理?2014年初安全狗服云依托自身核心安全服务,借力云计算优势,精心打造并推出了基于云计算SaaS(软件即服务)模式的服务器安全运维云服务平台--服云,真正将服务器安全管理搬上了"云. [赛迪网讯]从去年年初至今,网络安全问题便一直围绕着我们的日常生活.从日常出行到社交软件,从门户网站到政务平台,曾经的网络安全隐患已经呈现爆发之势.另外,随着企业运营的多元化,使得租用服务器同样存在多元化的需求,最终导致了管

云+端的物联网应用

今天是“互联网+”.“大众创业.万众创新”的时代,宁波市是我国“中国制造2025”的试点城市,以先进技术驱动产业创新与转型的大潮正在催生一场波澜壮阔的“新工业革命”,也当仁不让地将物联网IoT推到了风口浪尖上.从微软智能云Azure到全新的Windows 10,微软一套从云到端的完整物联网架构正在助力各行各业实现技术创新与业务模式的转型升级. 本次讲座为宁波中学的选修课,通过主题演讲和演示相结合的方式为高中生和教师们带来微软 IoT 领域的全新体验.讲师将通过演示和分享具体实践的方式来重点介绍微

《近匠》APICloud:“云”+“端”一体的移动API提供者

CSDN移动:请讲讲你们是谁?你们以往的从业经历? APICloud最开始只有两个创始人刘鑫和邹达,但是半年时间就发展成超过50人的互联网团队.APICloud的两个创始人性格迥异.CEO刘鑫是个典型的叛逆者,大学读到一半就辍学创业,后来又心血来潮的扑到北京重新开始,风风火火十多年见证了中国移动互联网从SP抢钱时代到智能机普及的完整历程.CTO邹达则是同事眼中的“Nice man”,极具个性的光头造型让人印象深刻,倒是这种“穷凶极恶”的硬汉形象配上“Nice man”的个性让人记忆犹新,在API

企业数字化转型,“云+端+服务”是大势所趋

随着数字化转型的深入,技术对于企业及个人的工作.生活方式影响巨大.据一条关于灵活办公趋势的全球性调研显示:90%以上的受访者认为,灵活的办公方式及自主办公场地会提高工作效率.而在国内,已有超过85%的企业为员工提供灵活办公的机会.截至2015年,全球已经有近13亿的移动办公人员,人类也已经进入有史以来互联程度最高的时期.因此,在企业向智能化转型的过程中,开拓全新且高效的沟通模式就变得至关重要.一带一路的大发展给予无数企业漂洋过海的市场机遇,同时,随着业务规模的不断扩大,企业人员分布越来越广泛,员

2018亚太CDN峰会开幕,阿里云王海华解读云+端+AI的短视频最佳实践

摘要: 4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了<短视频最佳实践:云+端+AI>的主题演讲,分享了短视频的生命周期关键点和阿里云技术解决方案. 4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了<短视频最佳实践:云+端+AI>的主题演讲,分享了短视频的生命周期关键点和阿里云技术解决方案.以下全文为演讲内容. 每个人都将成名十五秒钟 短视频已经走进

车联网上云最佳实践(一)

摘要: 最近两年车联网发展受到政府部门.科研院以及各大互联网巨头的广泛关注和积极推动.从应用来看,主要包括两种模式:一是前装模式(即车辆出厂前安装),是乘用车厂主导或者与有相关能力的公司合作,例如上汽和阿里巴巴的合作. 一.车联网行业特性讲解最近两年车联网发展受到政府部门.科研院以及各大互联网巨头的广泛关注和积极推动.从应用来看,主要包括两种模式:一是前装模式(即车辆出厂前安装),是乘用车厂主导或者与有相关能力的公司合作,例如上汽和阿里巴巴的合作.另一种就是后装模式(通常是将车机设备安装在汽车的