如何在发布 Web 应用程序之前估计所需的托管参数?

如何在发布 Web 应用程序之前估计所需的托管参数?

我的公司正在准备发布 Web 应用程序(SaaS)。这是我们迄今为止最大的发布,因此我们想收集一些信息和建议,目前最重要的是:

“应该选择什么样的托管解决方案?如何确定所需的托管参数?”

共享主机是否值得考虑?如何估算所需的 VPS 参数?等等……

我们的预算有限,因此价格在这里很重要,当然,随着用户数量的增加,我们很乐意投资我们的收入来扩大规模。这引出了另一个问题:

当服务变得越来越流行时,哪种解决方案最容易扩展?

(我们的应用程序是用 Python/Django 编写的,并使用 postgre 作为数据库后端。)

答案1

共享主机(即 8 美元/月或类似的)几乎肯定不值得;当你让开发人员花 30 分钟的时间来调查和修复与共享主机以及糟糕的超卖机器相关的问题时,你本可以花钱买一台更好的机器。

除了每月 8 美元的选项外,还有三个选项可供考虑:

  • VPS(“虚拟专用服务器”)
  • 专用服务器

此外,您还应该考虑需要什么级别的支持。您的开发人员是 *NIX 和 PostgreSQL 专家吗?即使他们是,这也是对他们时间的最佳利用吗?

在扩展方面,专用服务器将具有最佳的扩展性——在我因此遭到反对之前,让我先解释一下原因。运行 PostgreSQL 意味着最好垂直扩展数据库层;也就是说,通过添加更多 RAM 和更快的处理器。与 MySQL 相比,水平扩展(扩展到其他服务器)相对困难,至少与 MySQL 相比,需要池化和多对多复制等功能。问题是云的 CPU 并不是那么快。举个例子,您可以从 Amazon 的 EC2 中获得的绝对最高 CPU 速度来自其高 CPU 产品,即每个处理器 2.5 个 ECU。这远不及您在新的专用机器中获得的现代 CPU 的性能——每个处理器执行 4,600 左右的 BogoMIPS,减去虚拟化惩罚,而即使是典型的现代 CPU 也远远超过 6,500。VPS 将为您提供完整的 6,500 或更多,尽管仍然具有与虚拟化相关的性能惩罚。专用机器将为您提供其拥有的所有周期。这种超速还意味着您可以在一台机器上整合 Web 和 DB,直到您不再需要它为止。

如果您从一开始就知道需要分离,那么在 Webhead 方面,云可让您快速水平扩展(几秒钟),VPS 则稍逊一筹(几分钟,最多一个小时左右),而专用服务器则最不济(从几小时到一个星期或更长时间)。不过,好的一面是,您会很快“填满”云 Webhead,因为它们非常小,而专用 Webhead 的性能相当于几十个云 Webhead,并且看到它填满将在很长一段时间内显现出来,因此您可以进行适当的规划。

最后要考虑的一件事是价格。现在,我确信你已经在考虑价格了,但我考虑的是基于使用量的定价。VPS 和专用服务器通常只收取带宽费用,而且费用相当可观。云将收取你使用的每一项资源的费用。因此,VPS 和专用服务器在月底的账单是可预测的;例如,如果你受到 DDoS 攻击,云(尤其是动态扩展的云)可能会花费你数千或数万美元。

相关内容