0

我是一名 Java 开发人员,正在考虑将 AWS、Rackspace 和 Heroku 作为我的应用程序的潜在云提供商。之前只使用过传统的网络主机(虚拟专用服务器计划),我有点不知所措。

我的理解是,借助云,您可以根据需求生成/终止虚拟设备(具有预配置软件堆栈的虚拟机,例如您的应用服务器、数据库服务器等)。因此,如果它是午夜或假期并且没有人使用我的应用程序,那么我可以减少运行实例的数量并节省一些钱。但是,如果它是星期六早上并且我正接近峰值负载,我可以生成新服务器并放心我的应用程序不会崩溃。

因此,首先,如果我的理解有任何不正确或有缺陷,请先纠正我!

假设我对云的看法或多或少是正确的,那么我应该构建自己的监视器来监视应用程序使用中的突然增加/减少/模式是有道理的(我假设基于网络流量和带宽?!)。当流量增长到某个点时,我应该实例化更多的虚拟机,当流量变慢时反之亦然。

由于 JClouds 允许您执行此操作,因此我的监视器将只使用 JClouds API 来生成/杀死服务器。

我哽咽的是:我应该使用什么算法/公式来告诉我的监视器何时生成/杀死虚拟机?我编写了一个试验性算法,基本上可以确保我始终拥有双倍的“马力”(VM)。监视器大约每 10 秒轮询一次每个节点,如果系统上的当前负载发生了一定的变化,它允许ClusterResizer启动并确定我们是否需要更多/更少的节点。

虽然我花了几个小时设计这个动态调整大小系统的轮廓/骨架,但我想在我走得太远之前停下来,在这里做一个健全性检查,以防我做一些不必要的、错误的或简单的事情疯狂的!

其他云应用程序如何监控和调整其 VM 的大小?我应该熟悉哪些算法或最佳实践?提前致谢!

4

1 回答 1

0

在 Amazon EC2 上,您不需要自己实施监控,有一个称为cloudwatch的功能可以为您进行弹性扩展 - 当负载增加时自动扩展,当负载减少时缩减。所以你不需要自己实现监控服务。在 RackSpace 上有一个名为 Scalr 的自动缩放第三方解决方案。可能还有一个与 Amazon 的 CloudWatch 等效的原生 RackSpace 功能,您应该进行调查以节省自己从头开始构建此基础设施的时间。

于 2012-07-12T14:01:47.777 回答