如何确保您的服务器完全容错

今天,我将从一个简单的问题开始:您的服务器的容错能力如何?如果系统的一部分停止工作,他们可以自己处理吗?他们能否度过软件故障或硬件故障?这些问题比你想象的更重要。


如果您为您的网站、应用程序平台或网络设置的系统没有针对故障进行适当的加固,那么一旦系统中的一个组件停止工作,一切都可能崩溃。

这种事情甚至有一个术语——级联故障。

不幸的是,正如我们几周前在一篇关于容错的文章中所展示的那样,构建一个良好且真正容错的系统是一项重大挑战——尤其是当您管理复杂的应用程序基础架构时,例如 Netflix API。那么,陷入困境的服务器管理员该怎么办呢?

你如何确保你的服务器——以及它们所在的网络——优雅地处理故障?

容错基础
我们将从您应该注意的最低限度开始,由 Microsoft Technet 上的一篇文章提供。

首先,我有一个词要告诉你:冗余。

“没有一个依赖项会影响整个应用程序,”Ben Christensen 在 2012 年关于 Netflix API 的演示文稿中解释道。尽管他在谈论应用程序设计,但他的陈述绝对适用于服务器和托管基础设施。看,容错最终都是关于最小化您的故障点。

这意味着,假设您自己处理服务器设置和维护,您需要分析每个应用程序、硬件和网络节点,它们的故障可能会使您的系统脱机——您需要确保不会发生。

为此,您需要确保拥有合适的电力基础设施。我说的是企业级不间断电源、定期测试的备用发电机;作品。虽然停电可能只是偶尔发生,但您不希望您的服务器在它们发生时被关闭。顺便说一句,在功率方面有很多需要考虑的地方。设计良好的电力系统可以解决本地电源故障、电压变化以及短期和长期中断。

硬件也非常重要。服务器和网络硬件的构建都必须考虑到冗余。现在,值得一提的是,假设您选择了正确的,您的主机可能会为您处理所有这些事情(稍后会详细介绍)。

不言而喻,您需要使您的软件保持最新——尤其是与安全相关的东西。毕竟,很多中断都是由应用程序故障引起的。 Netflix 2012 年圣诞节的中断是其 Elastic Load Balancing 软件故障的结果。尽管您并不总是能够防止软件故障,但掌握软件维护将有所帮助。

最后但同样重要的是,还有监控。在硬件和软件方面密切关注您的服务器,并确保有一个系统可以在发生故障时提醒您的管理员。同样,根据您的主人,这可能会得到照顾 - 在这方面教育自己很重要。

无论如何,这就是基础知识 - 现在深入研究一些更高级的东西。

员工培训
我有一个事实告诉你:大多数数据中心中断不是由电源故障、应用程序故障或系统缺陷引起的。它们是由人为错误引起的。通过某人做他们不应该做的事情。

现在,即使您可能没有运行自己的数据中心,这一事实也绝对适用于您。你会惊讶于客户端的一个简单错误会对他们的服务器造成什么影响。这意味着您需要尽您所能确保直接使用您的服务器的每个人都经过适当的培训。

否则,您可能会发现自己正在处理一些计划外且不受欢迎的停机时间。

最重要的是,选择合适的主机
很多人可能已经注意到,此页面上的大多数建议通常由您的主机处理。这就是为什么,最重要的是,确保您的服务器具有容错能力的最佳方法是选择一个将此类事情作为优先事项的主机。这样一来,您就可以绝对确定您的东西在您需要时可供您使用——并且您不必处理失去访问权限的问题。