我们有一个服务器(4GB内存,两个4核Intel Xeon E5420)执行以下任务:
我们预计未来几周将有大量(高达数十万)用户涌入。我的上级担心我们当前的设置可能无法处理负载,并正在考虑迁移到云托管-然而,我不相信这会有帮助。根据我对云计算的理解,虚拟化不会有多大帮助,除非我们能够将工作负载分散到几台机器上(除非它们有比我们的服务器强大得多的服务器)。它们提供MySQL集群,但是后端脚本只是在几行中读取/写入一些值,并且不执行任何计算密集型的SQL查询,所以我也不确定MySQL集群与Apache/PHP开销+ MySQL网络延迟相比会有多大的不同。至于网站,我们也可以将大部分静态内容移到CDN上,因为我们有一些视频剪辑,这可能会增加我们的带宽。
那么,云托管对我们有什么好处吗?
发布于 2009-11-14 08:33:48
可能会,也可能不会。正如您所怀疑的那样,除非您能够轻松地将系统工作负载划分为可以在网络上进行通信的独立单元,否则在可伸缩性方面,您将看不到使用“云”提供商的任何好处。有些“云”提供商确实提供了更大的机器(无论如何,从内存的角度来看-我怀疑你是否会一直从其中任何一个获得相当于8个E5420核的内存),但如果有必要,您也可以为现有的服务器获得更多的内存。
我会花时间观察系统的每个单独的组件,评估每个组件的资源使用情况,因此,将其移动到单独的框中是一种“节省”。然后,查看每个组件(从最密集的资源开始)如何进行集群,以便将该组件的工作拆分到多台机器上(称为“水平可伸缩性”)。一旦你做了所有有可能在你的预期负载水平上使用接近机器价值的资源的事情,你就可以去找你的上级,给你的上级一个计划,一个努力和成本的估计,把它全部分配出去。
所有这些都不是“云”-specific,这只是对如何处理不断增加的用户负载的基本尽职调查。您可以开始使用“云计算”的好处是,当您确实需要快速扩展时,您只需按一下按钮就可以了!有更多的资源可供你支配。但是,不要等到加载达到高峰时才尝试--如果您完全重视您的正常运行时间,那么在任何时候都要与至少两个可伸缩的组件一起运行,提前找出扩展触发阈值,监视它们,并尽快生成新的实例。然后,将系统置于大量的负载下,并测试它是否都能如您所期望的那样工作。
发布于 2009-11-14 15:52:36
正如Pauska所指出的,虚拟化环境的大部分价值除了规模外,还包括冗余和可用性。您可能想考虑一种私有云风格的解决方案,比如Rackspace的解决方案,或者考虑自己的解决方案,前提是您内部有很好的VMWare工作人员。然而,这将需要一段时间,正如女性的优秀帖子所表明的那样,这样做是正确的。
如果你的截止日期很快就要到了,而且你没有时间对你的应用程序进行研究,你会想到以下几点:
https://serverfault.com/questions/84664
复制相似问题