我已经对基于Gianpaolo SaaS成熟度模型的SaaS成熟度级别做了一些研究。
现在我对SaaS成熟度级别4感到困惑。它说,它有一个"租户负载平衡器",动态调用一个新的应用程序实例,为SaaS应用程序提供负载平衡服务。
我想知道这个"租户负载平衡器"到底是什么意思。我们如何在现实世界或应用服务器中实现这个"租户负载平衡器"?
谁能给我一些好的解释和一个例子,像Java EE技术的实现?
实现租户负载均衡器的一种方法:
- 创建应用程序的多个实例-例如A,B,C。每个都有自己的数据库。
- 创建一个元数据库-该数据库包含帐户,登录等信息
- 登录界面单一。即每个人登录到同一个web界面。
- 当用户注册时,将他分配到应用实例(a,B或C)之一。
- 当用户登录时,对元数据库进行身份验证,然后重定向到特定的实例。
例如:
- 登录站点设置在www.example.com
- 应用程序实例可在a.example.com, b.example.com, c.example.com
- 注册,用户登录www.example.com
- 用户登录到www.example.com
- 成功登录后,用户被定向到a.example.com或他的实例。
Salesforce.com就是这么做的。
关键概念是具有负载平衡的水平可伸缩性。在高层次上,这类似于SOA环境中使用的ESB/负载平衡器。
以下是租户负载均衡SAAS部署的一些属性:
1)多个SAAS软件实例正在运行。
2)租户对软件的调用可以由任何实例处理。负载平衡器负责根据负载平衡策略将租户请求路由到其中一个实例。
3)可伸缩性:当负载超出当前实例的服务能力时,应该提供添加新实例的服务。例如,在云环境中,可以启动一个新的EC2实例,并在其上部署SAAS应用程序。负载平衡器可以将其他调用路由到这个新实例。此方法也适用于非EC2环境。
负载平衡器功能可以由ESB本身提供,也可以通过集成框架/硬件负载平衡器/软件负载平衡器提供。
负载均衡也适用于后端存储,如数据库,搜索索引存储等。以下是关于SAAS环境中数据库设置的一些信息,不包括负载平衡。