Architecture 在云中扩展我的应用程序,我如何做到这一点?

Architecture 在云中扩展我的应用程序,我如何做到这一点?,architecture,cloud,saas,iaas,Architecture,Cloud,Saas,Iaas,我有一个中等规模的SaaS项目,需要扩展,在哪里可以找到开始我的云项目的材料 ps:我不想使用PaaS,比如App engine或Azure…我会使用IaaS,比如ec2或rackspace,我从经验中不知道,但你正在使用的服务提供商肯定有一些不错的资料来帮助你?此外,我认为亚马逊的产品(以及类似产品)将拥有良好的活跃用户社区。不确定“向外扩展”是什么意思,但可能是指自动扩展、负载平衡或类似的东西 Amazon提供了一些服务,您可以将这些服务添加到EC2帐户中(自动扩展、Amazon Cloud

我有一个中等规模的SaaS项目,需要扩展,在哪里可以找到开始我的云项目的材料


ps:我不想使用PaaS,比如App engine或Azure…我会使用IaaS,比如ec2或rackspace,我从经验中不知道,但你正在使用的服务提供商肯定有一些不错的资料来帮助你?此外,我认为亚马逊的产品(以及类似产品)将拥有良好的活跃用户社区。

不确定“向外扩展”是什么意思,但可能是指自动扩展、负载平衡或类似的东西


Amazon提供了一些服务,您可以将这些服务添加到EC2帐户中(自动扩展、Amazon CloudWatch和弹性负载平衡),或者您也可以使用第三方工具(例如)为您管理所有这些服务。我们正在评估Scalr以满足我的日常工作需要,但我还没有这方面的经验。

如果您喜欢使用Iaas,Amazon EC2提供了一个基本功能,允许您根据定义的条件扩展服务器容量。其他云管理解决方案(如或RightScale)提供了更高级的功能。这些不是Paas本身,而是帮助您在Amazon、Rackspace和其他提供商上管理基础设施的服务。EC2自动缩放功能可能满足您的要求,也可能不满足您的要求,这取决于您所寻找的内容

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

假设您有三个web服务器,每个服务器至少应处理1000个并发用户,否则应终止它们。在凌晨4点,您的流量正在放缓,并且您只有2100个同时用户,因此每个服务器有700个。这低于您的阈值,因此会触发降尺度事件

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

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

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


正如我前面所说,这取决于您的需求。

IaaS提供商,提供文档api以扩展应用程序,但如何实现这一点是一个体系结构决定,这是我的问题,您是如何在SaaS中实现的?不幸的是,亚马逊社区不存在,亚马逊现在看到了问题,并提供免费的估计社区配额HMMM-不知道我还能得到多少帮助。听起来你已经做出了一些决定-我想你有你的理由,如果我们也知道这些,我们可能会提供更多的帮助(?)好吧,amazon或其他IaaS提供商为负载平衡提供api,但你的应用程序需要可伸缩性,问题是我如何使mt应用程序可伸缩?需要getstart材料。好吧,您没有说明您的应用程序是什么,或者它正在做什么,因此任何人都很难就如何使其可扩展提供建议。如果你有很高的数据并行性(只需将数据拆分并抛出更多的实例——瞧),这可能已经差不多了,但它当然很少那么简单。(我想添加,但似乎无法编辑我自己的评论)。可伸缩性通常可以通过数据并行或代码并行(线程、OpenMP、MPI等)来实现。当您最了解您的应用程序时,您需要考虑哪一个是最适合的,或者两者的组合,然后阅读相关文献开始。