如何才能实现最便宜但又非常可靠的Web应用程序配置?
我们假设至少有 2 台应用服务器(每月 80 美元)加上一台数据库服务器,将在一段时间内支持大多数人的应用程序 - 而且我们只是希望实现良好的可靠性(至少 3 个 9)。
现在可以从任何合理的提供商那里以每月 80 美元左右的价格租用相当不错的 VPS 解决方案(亚马逊 EC2,切片主机等)。然而,这些 VPS 托管解决方案都不是完美的,我使用它们时都经历过超过 99.9% 的停机时间。
我不确定如何最好地配置这 3 台机器 - 最好的方法是将两个应用服务器放在不同的提供商上(最好使用不同的网络连接),并使用 HAProxy 互相监视。如果其中一个发生故障,它将更新 DNS 以将其从应用程序的 IP 地址池中删除。但是如何处理数据库服务器?这仍然是一个单点故障。
我过去曾遇到过 DNS 问题,但这可以通过外部专用提供商来处理,例如DNS 变得简单非常便宜(每年 15 美元)。如果需要,它还支持动态修改 DNS 条目,如果您不打算在危机期间手动更新它们,这将非常方便。
每天至少应将备份备份到外部源(S3 或 FTP 站点)一次 - 每月至少备份一次。我认为,您需要一个自动部署和恢复脚本,才能从备份中获得超过 3 个 9 的准确率。
由于数据库可用性,我感觉这还不够,但它将花费你大约 80 美元x3 + 磁盘空间 + DNS = 250 美元/月。
还能做得更好吗?
答案1
便宜、精简、坚固?您刚刚触及“好/快/便宜”的邪恶三角 - 选择 2,您无法同时拥有 3 个。:)
实际上,如果您能以每月 250 美元的价格实现具有故障转移功能的地理冗余应用程序,那么您做得已经相当不错了。
我能想到的唯一替代方案是您已经拥有的 VPS 解决方案,或者 Microsoft Azure 可能符合要求。
答案2
我同意你现在的处境非常好。
确保您拥有可靠的恢复流程,以便能够快速解决遇到的任何故障。
“三个九”可用性相当于一年内大约 8 小时的停机时间。如果不计算维护窗口,这对于主流托管公司来说并不是一个特别苛刻的标准。我怀疑你在两家备受推崇的托管服务上见过更糟糕的情况。
请记住,就主机而言,一旦他们为您提供了一台正常工作的服务器,您就恢复了。如果您发生故障,并且 90 分钟后他们为您提供了另一台服务器,您的停机时间就是 90 分钟。如果您花了三天时间才让其正常工作,那么额外的三天不是他们的问题。
数据库服务器显然是单点故障……您必须确定对该风险的容忍度以及减轻风险的成本。除了这一点之外,我对使数据库服务器冗余了解不多真的很难对于小型系统来说。如果这让您担心,最好的办法是签订合同托管数据库本身,而不是使用 VPS 并管理您自己的数据库服务器。一个例子(来自 Google,不是建议) 可以被找寻到这里;它并不是特别昂贵。
答案3
http://www.linode.com/index.cfm我的一些朋友都信赖这家公司。他们有多家门店,您可以轻松扩展业务。
答案4
根据您的确切流量和需求,我在 1&1 上托管了许多小型网络应用程序,没有任何麻烦。
除此之外...几乎所有流行的托管服务提供商都具有不错的(阅读:已发布的)正常运行时间。
99.9% 的正常运行时间意味着您接受一年内的停机时间为 8 小时 45 分钟 35 秒。
大多数正规的托管公司都很容易实现这一点。