在云中扩展我的应用程序,我该怎么做?

Posted

技术标签:

【中文标题】在云中扩展我的应用程序,我该怎么做?【英文标题】:Scale out my application in cloud, how i can do that? 【发布时间】:2011-04-30 05:36:20 【问题描述】:

我有一个中型 SaaS 项目,需要横向扩展,我可以在哪里找到开始我的云项目的材料?

ps:我不想使用 PaaS,例如 App 引擎或 Azure...我将使用 IaaS,例如 ec2 或 rackspace

【问题讨论】:

【参考方案1】:

我不知道经验,但与您合作的服务提供商肯定有一些不错的材料可以帮助您吗?此外,我认为亚马逊的产品(以及类似产品)将拥有良好的活跃用户社区。​​p>

【讨论】:

IaaS 提供商,提供文档 api 以扩展应用程序,但是如何做出架构决定,这是我的问题,你是如何在 SaaS 中做到的?不幸的是,亚马逊社区不存在,亚马逊看到现在的问题,并为评估社区提供免费配额 嗯 - 不知道我还能提供多少帮助。听起来您已经做出了一些决定 - 我想您有自己的理由,如果我们也知道这些理由,我们也许可以提供更多帮助 (?)【参考方案2】:

如果您更喜欢使用 Iaas,Amazon EC2 提供了一个基本的 auto-scaling 函数,允许您根据定义的条件扩展服务器容量。 Scalr 或 RightScale 等其他云管理解决方案提供了更高级的功能。这些不是 Paas 本身,而是帮助您管理 Amazon、Rackspace 和其他提供商上的基础设施的服务。根据您的需求,EC2 自动扩展可能会也可能不会满足您的要求。

下面是一个示例,用于了解 EC2 和 Scalr 自动缩放之间的工作方式有何不同(我在 Scalr 工作):

假设您有三台网络服务器,每台至少应处理 1000 个并发用户,否则它们应该被终止。凌晨 4 点,您的流量变慢了,您只有 2100 个同时用户,因此每台服务器有 700 个。这低于您的阈值,因此触发了缩减事件。

使用 EC2 自动扩展,三台服务器中的一台将被终止。这意味着服务器上的 500 个用户将关闭连接并注销(如果您使用基于文件的会话,这在 php 和其他语言中很常见)。

Scalr 以不同的方式处理缩减。在终止服务器之前,会触发 OnBeforeHostTerminate 事件:它允许您执行维护操作以准备服务器被终止。此外,Scalar 使用 Web 服务器的安全关闭方法,因此不会建立新的连接。它一直等到所有连接都关闭以终止服务器。 另一个区别是,与 EC2 自动扩展不同,Scalr 允许您根据 CPU、RAM、磁盘、网络、用户进行扩展......

至于 Rackspace,我认为它们没有自动缩放功能。但是,如果您想在 Rackspace 而不是 Amazon 上构建基础架构,您仍然可以使用 Scalr 来管理您的服务器并自动扩展您的容量。

正如我之前所说,这取决于您的要求。

【讨论】:

【参考方案3】:

不确定您所说的“横向扩展”是什么意思,但也许您的意思是自动扩展、负载平衡或类似的东西?

Amazon 提供了一些服务,您可以将这些服务添加到您的 EC2 账户(Auto Scaling、Amazon CloudWatch 和 Elastic Load Balancing),或者您可以使用第三方工具(例如 Scalr)为您管理这一切。我们正在评估 Scalr 以满足我日常工作的需求,但我还没有这方面的经验。

【讨论】:

嗯,amazon 或其他 IaaS 提供商提供 api 来进行负载平衡,但您的应用程序需要可扩展,问题是我如何使 mt 应用程序可扩展?需要入门材料。 好吧,你没有说你的应用程序是什么,或者它在做什么,所以任何人都很难就如何使其可扩展提供建议。如果您具有高数据并行性(只需拆分数据并在其上抛出更多实例 - 瞧),它可能已经差不多了,但当然,它很少那么简单。 (我想添加,但似乎无法编辑我自己的 cmets)。可扩展性最常通过数据并行或代码并行(线程、OpenMP、MPI 等)来实现。由于您最了解自己的应用程序,因此您需要考虑哪种方法最适合 - 或者两者兼而有之 - 然后阅读适当的文献以开始使用。

以上是关于在云中扩展我的应用程序,我该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在没有苹果开发者帐户的情况下在真正的苹果设备上测试我的 Flutter 应用程序吗?如果可以,我该怎么做?

扩展Laravel包

如何将我的 NSUserDefaults .plist 同步到 iCloud?

我该怎么办? (Chrome 扩展)

我想每次都更新结果,但不明白我该怎么做

在 Azure 中托管 WCF 和可扩展性怎么样?