什么时候才是为网站引入高可用性的最佳时机?
关于高可用性选项的文章有很多。但何时才是从单服务器切换到高可用性配置的正确时机却不是那么明显。
请考虑一下我的情况:
http://www.postjobfree.com是一个 24/7 全天候网站,流量巨大:
http://www.similarweb.com/website/postjobfree.com
目前我在一台服务器上运行它:IIS 7.0 Web 服务器和 SQL Server 2008 都运行在同一个硬件箱上。
偶尔(约每月一次)会出现约 5 分钟的停机时间,通常是由于某些 Windows Server 更新需要重新启动而导致的。停机时间通常是计划好的,并且发生在晚上。但这仍然令人不快,因为 Google Bot 和一些用户在晚上仍然活跃。
目前网站收入约为每月8000美元。
我考虑切换到双服务器配置(2 个 Web 服务器的 Web 场和托管在两台硬件服务器上的 2 个 SQL Server 的集群)。
优点:
1) 高可用性(理论上没有停机时间)。即使其中一台服务器停机,另一台服务器也会接管。2
) 无数据丢失:如果没有 SQL 集群,在发生硬件故障的情况下,最多一天的数据可能会丢失(我们每天都会备份)。
缺点:
1) 设置和维护此类配置需要更多努力。2
) 托管成本更高。每月约为 1200 美元,而不是约 600 美元。
你的建议是什么?
答案1
简短的回答:当停机时间或停机风险给您带来的成本比实现高可用性所需的成本更高时。
从根本上来说,这是一项经济决策。例如,每月 8000 美元意味着 2 小时的停机将花费您 22 美元。如果您可以配置系统,使您可以在 2 小时内从头开始运行到功能齐全的站点,那么高可用性只会为您带来 22 美元以上的功能。
换句话说,除非/直到您在某个月内出现 54 小时无法避免的停机时间,否则您都可以省钱。
答案2
你的利益相关者/商务人士(可能是你!)必须决定
- 可接受的收入损失
- 后果:声誉、尊严等受损
- 可接受的数据丢失(恢复点目标)
- 可接受的停机时间(恢复时间目标)
收入损失很容易量化:其余问题无法在这里回答,抱歉……
答案3
我认为大多数用户可以忍受一点计划停机时间。考虑到 eBay 每周五晚都会更新,而那时的出价有时不起作用。我的(澳大利亚主要银行)网上银行每周都会计划停机数小时。Twitter 一直处于离线状态。Heroku / EC2 最近停机了好几天。
我会从这个角度来看,如果你每个月真的只说 5 分钟,那么作为系统管理员你做得相当不错了。
答案4
请记住,HA 与安全性一样,不是一种产品,而是一个过程。
例如,数据库复制只能使您达到数据库的每个镜像能够自行继续运行的程度,但是您还需要在更换故障组件后重新同步的策略。
以订购系统为例:客户提交订单,在处理过程中,他所联系的物理系统在将订单信息存储在其本地数据库副本后发生故障。不耐烦的客户再次按下“提交”,并被引导到另一台服务器,该服务器接受订单。如果您的数据库通过在另一端重放丢失的 INSERT 语句来重新同步,那么订单将被复制,这可能不是您想要的。
正如@Slartibartfast 所说,这一切都归结为一个经济决策,但我建议您也在这里规划未来几年。如果您预计那时需要适当的 HA 设置,那么现在是为准备工作留出资源的好时机。