云托管:我们需要它吗?

Vla*_*eev 3 mysql cloud cloud-computing

我们有一台服务器(4GB RAM,两个 4 核 Intel Xeon E5420)执行以下任务:

  • 具有静态内容的网站(目前只是一些 CMS,我们计划添加缓存反向代理)
  • 客户控制面板(基本上是数据库的 Web 界面)
  • 我们桌面软件的后端脚本 - 一些 PHP 脚本,它们执行一些数据库查询/更新,但每个客户每 5 分钟就会触发一次
  • 存储上述两个数据的数据库

我们预计在接下来的几周内会有大量(多达数十万)用户涌入。我的上司担心我们当前的设置可能无法处理负载,并正在考虑转向云托管 - 但是,我不相信这会有所帮助。根据我对云计算的理解,虚拟化不会有太大帮助,除非我们可以将工作负载分摊到多台机器上(除非它们的单个服务器比我们的服务器强大得多)。他们提供 MySQL 集群,但是后端脚本只是读取/写入几行中的一些值,并且不执行任何计算密集型 SQL 查询,所以我再次不确定 MySQL 集群与 Apache/ PHP 开销 + MySQL 网络延迟。至于网站,

那么,云托管会给我们带来任何好处吗?

wom*_*ble 5

也许,也许不是。正如您所怀疑的那样,除非您可以轻松地将系统工作负载拆分为可以通过网络进行通信的离散单元,否则在可扩展性方面您将看不到选择“云”提供商的任何好处。有一些“云”提供商确实提供了更大的机器(无论如何,从 RAM 的角度来看——我怀疑您是否会始终从其中任何一个中获得相当于 8 个 E5420 内核的),但您可以获得更多的 RAM如有必要,也适用于您现有的服务器。

我会花时间查看系统的每个单独组件,评估每个组件的资源使用情况,因此将它移到单独的盒子上会“节省”多少。然后,看看每个组件(从资源最密集的部分开始)如何集群,以便该组件的工作可以拆分到多台机器上(所谓的“水平可扩展性”)。一旦您完成了所有有可能在您预计的负载水平下使用接近机器资源价值的任何地方的所有内容,您就可以向您的上级提出计划并估算工作量和成本,以将其全部拆分。

这些都不是特定于“云”的,它只是关于如何应对不断增加的用户负载的基本尽职调查。您可以开始使用“云”计算的好处的地方是,当您确实需要快速扩展时,您只需按一下按钮即可!您可以使用更多资源。不过,不要等到负载激增再尝试——如果您完全看重正常运行时间,请始终使用每个可扩展组件中的至少两个运行,计算出您的扩展触发阈值会很好提前,监控它们,并尽快生成您的新实例。然后将系统置于大量负载下并测试它是否按预期工作。