设为首页 加入收藏

TOP

将您的 web 应用程序转化为多租户 SaaS 解决方案(一)
2011-03-22 12:48:25 】 浏览:4239
Tags:web 应用程序 化为 租户 SaaS 解决方案

想象一下,您有一个一直在市场上出售的 web 应用程序。您了解到云基础架构中的软件即服务 (SaaS) 是行业的未来趋势。您意识到您需要它,并且您的客户也要求您提供 SaaS 版本的产品。

问题是,您需要快速、有效地转换为 SaaS,并且最好能够维持或增强您的盈利能力。

SaaS 应用程序和常规的 web 应用程序之间存在许多差异需要加以考虑。一些与技术有关,而另一些与业务模型的变化有关,公司在交付 SaaS 时必须能够适应这种变化。

典型的 web 应用程序和 SaaS

SaaS 区别于其他应用程序的主要特征就是能够使客户在使用应用程序时按照使用量付费。他们不需要为软件购买许可,也不需要安装、托管和管理它。这方面的操作全部由提供 SaaS 软件的组织负责。

多租户是实现成功 SaaS 的关键

一致意见:SaaS 需要使用多租户

多租户是 SaaS 供应商获得成功的关键因素。 — Marc Benioff,Salesforce 的 CEO

如果没有多租户的话,SaaS 不可能取得成功。 — Treb Ryan,OpSource 的 CEO

我们实现了超低的计算成本 ... 我们在 SaaS 行业内拥有最低的成本(这是使用多租户的结果)。 — Lars Dalgaard,SuccessFactors 的 CEO

如今,ASP 试图东山再起。然而,云数据中心方法仍然使用单租户模型来隔离用户,这意味着它的运营成本将很高,因此价格也会很贵 — Zach Neson,NetSuite 的 CEO — 我们的毛利润超过 70%(因为使用了多租户)。

多租户对于我们来说真的非常重要 ... 它实现了一个非常高效的模型 — Tim Wallace,iPipeline 的 CEO

在 SaaS 这场竞赛中,多租户就是赢得这场胜利的筹码。— Henry Olson,Edge Dynamics 的前 CEO

多租户为整个订阅模型提供支持... — Jeff Kaplan,THINKStrategies 的 CEO

尽管订阅应用程序的能力已经最低程度地满足 SaaS 的基本条件,但是在实际中仍然不能满足要求。实际上,SaaS 应用程序必须同时也是一种多租户应用程序

归根结底都是与经济方面的因素有关。主要的 SaaS 公司的 CEO 们都一致认为,如果没有多租户,那么发展 SaaS 业务是绝无可能的。(参见边栏)。

多租户体现了 SaaS 的效率水平

影响效率的主要因素来自于多租户,即能够容纳应用程序的不同用户,同时使用户觉得应用程序完全服务于他们。我们已经习惯这种概念,因为它应用于系统中的各个用户,但是与 SaaS 环境仍然有些细微的差别。在一个典型的企业 SaaS 环境中,用户是指某个特定组织的员工组成的多个组,这个组织就是所谓的租户。这类似于您在一个普通的 web 应用程序中看到的一样,如果组织购买了这个应用程序的话;组织的员工就是应用程序的用户,而该组织就是所有者。在 SaaS 模型中,组织是租户,而非所有者,但是组织的员工仍然是用户的身份。每名用户都具体关联到一个特定租户(组织),而 SaaS 为每个租户分别提供一份应用程序的副本,以供他们的用户使用。

云中的虚拟化影响 SaaS

简单 web 应用程序和支持云的 SaaS 应用程序之间的区别涉及 IT 行业目前最主要的两个容量利用特性:

  • 多租户(之前引入)
  • 硬件虚拟化。

虽然应用程序的效率主要取决于应用程序的多租户架构,然而第二个影响效率的因素是硬件虚拟化。通过利用虚拟化技术,减少在使用普通的数据中心物理机器方法时产生的未使用的容量,云环境极大地提高了给定数量的硬件的利用率。

此外,云还提供了根据资源需求动态地为应用程序重新分配硬件的潜力。在较短的时间(几分钟)或从长远来看(几个月),这种灵活性都有助于将硬件与单一应用程序分离开来,然后再将它们分散到大量应用程序中,从而消除了差异,使硬件投资变得更加容易预测和管理。

现在,让我们看一下将一个比较传统的 web 应用程序转换为一个支持 SaaS 的应用程序通常需要执行哪些步骤。

 


将 web 应用程序转换为 SaaS 应用程序

要将您的 web 应用程序转换为 SaaS 应用程序,需要满足以下 7 个条件:

  1. 应用程序必须支持多租户
  2. 应用程序必须具备某种程度的自助注册功能。
  3. 必须具备订阅/记账机制。
  4. 应用程序必须能够有效地扩展。
  5. 必须能够监视、配置和管理应用程序和租户。
  6. 必须有一种机制能够支持惟一的用户标识和身份验证。
  7. 必须有一种机制能够支持对每个租户进行某种程度的自定义。

让我们逐个地详细了解这 7 个条件。

支持多租户

多租户是决定 SaaS 效率的关键因素。通常,应用程序支持多个用户,但是前提是它认为所有用户都来自同一个组织。这种模型适用于未出现 SaaS 的时代,组织会购买一个软件应用程序供自己的成员使用。但是在 SaaS 和云的世界中,许多组织都将使用同一个应用程序;他们必须能够允许自己的用户访问应用程序,但是应用程序必须只允许每个组织自己的成员访问其组织的数据。

能够让多个组织(SaaS 中的术语称为租户)共存于相同的应用程序,同时不会破坏这些组织的数据的安全性,具备这种能力的应用程序就可以称之为多租户应用程序。

多租户可以分为几个不同的类别(如列表下方的图所示):

  1. 云中的简单虚拟化,其中只对硬件进行共享。
  2. 共享应用程序,对每个租户使用不同的数据库。
  3. 共享应用程序和数据库(效率最高,真正的多租户)。

多租户模型
多租户模型 

可以认为,第一个模型根本算不上是真正的多租户,但是在云环境中,它经常与虚拟化服务器配合使用,并被认为是一种多租户形式。在实际应用中,这种模型无法满足需求,并且仅仅比使用专用硬件的旧的 ASP 模型稍微好用一些。

效率最高的模型就是应用程序充分地共享数据库和应用程序的业务逻辑。实现这种模型非常的困难,因为需要修改数据库模式,向每个表和视图添加一个租户标识符,以及重写每一个 SQL 访问,向过滤器添加租户过滤条件。如果代码中任何必要的部分缺少这一逻辑,那么都将损害应用程序的数据安全性。

除了应用程序中出现的数据访问实例外,还存在其他一些应用程序,比如报告编写器(writer)和工具应用程序,必须修改这些应用程序来包含必需的租户过滤功能,从而确保各个租户的数据只能由这些特定的租户访问。如果访问类型并不是直接来自于应用程序本身,那么就会产生问题,必须对这类问题进行控制。如果任何已授权的用户可以编写报告,那么必须阻止他们访问不属于其所属租户的数据。

自助注册

应用程序必须具备某种程度的自助注册功能,即便仅仅是一种请求机制,即产生一种向应用程序添加租户的业务流程。

订阅和记账

必须提供订阅和记账机制。因为 SaaS 应用程序被设计为根据各种因素进行支付,如每个租户的用户数、应用程序选择,还可能包括使用时间等,必须通过某种方式来跟踪和管理应用程序的使用,然后生成可由租户管理人员访问的记账信息。

扩展和管理应用程序

必须能够随着订阅的增长进行扩展。云基础架构是实现这一目的的逻辑方式,因为它嵌入了许多功能,可以支持您实现有效的、高效的扩展。

同样

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇云计算成功的秘密:灵活的容量规划 下一篇用 MapReduce 解决与云计算相关的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目