我负责维护我们内部开发的 SaaS 软件,它确实不能离线。离线会让大多数客户感到不快,而且很可能会导致一些合同丢失。
我们托管在一家优秀的托管公司 - Media Temple,但最近由于他们的 DNS 服务器宕机,我们的网站出现了一些宕机,我们真的不能冒这个险。我知道托管公司不能保证 100% 的正常运行时间,所以我在想是否有任何用于网络托管的故障安全系统。我试图弄清楚,但似乎我们总是有一个单点故障。托管网站最安全的方法是什么?
答案1
我曾经考虑过这个问题,但他们最近遇到的技术问题让我重新考虑了这个问题。如果有办法让一台服务器成为另一台服务器的备份,我会很乐意采用,例如 Amazon 和 MT。
是的,这很常见。仍然总是存在单点故障,但你可以降低这些故障点发生故障的可能性。
如果你要使用亚马逊的 Web 服务,那么你需要设置两个相同的 EC2 实例。你需要通过主主复制连接数据库,这样每台服务器都有相同的数据,并且你需要确保两台服务器上的代码相同。
在这两台服务器前面,你会有一个 Amazon ELB(弹性负载均衡器)。ELB 可以检测服务器是否离线并将其从轮换中移除,Amazon 的脚本会监控你的 ELB,并在其开始出现问题时将其替换。
不过,没有什么是 100% 的。AWS 最近也出现了重大故障。这当然会有所帮助,可能会给你带来另外九到两个可靠性,但正如我在评论中所说,即使是 Facebook、Google 和 Amazon 的部分服务有时也会出现故障。
答案2
虽然无法确保 100% 正常运行时间,但您可能需要研究一些负载平衡解决方案,例如 keepalive。负载平衡将允许您拥有多个 Web 服务器,以便在其中一台服务器发生故障时提供冗余。您当前的主机应该已经提供某种负载平衡设置。
答案3
您可以使用托管在多家托管公司(至少 2 家不同的公司)的 DNS 服务器来提高 DNS 的可用性。这些名称服务器的地址将在 TLD 名称服务器上的 NS 记录中发布,我们可以认为这些名称服务器始终可用(至少对于像 com. 这样的大型 TLD 而言,情况确实如此)。如果您的一个名称服务器发生故障,DNS 解析器将自动使用另一个名称服务器。
请谨慎选择地理位置上相距较远且使用不同 ISP 的优质托管公司(但它们应该有来自更多 ISP 的链接)。
答案4
如果这项服务对您的公司来说真的非常重要,那么您别无选择,只能将其带到公司内部。
如果要这样做,则应将其托管在至少两台服务器上,分别位于不同的站点,每台服务器都应与两个 ISP 建立链接,并且最好使用来自不同供应商的电源。外部链接(电源和数据)需要通过不同的路线进入建筑物。
尽可能将服务器放在一起(这在当今很常见),以便将最不可靠的组件(电源和硬盘)加倍。显然,需要构建网络,以便 LAN 内没有单点故障。
当然,如果这项服务并不是很重要,那么就把它交给你永远无法控制的第三方,而他们总会有一个很好的借口可以告诉你的客户(他们不会理解为什么你使用一个你从未见过的服务器)。