今天,我将从一个简单的问题开始:你们的服务器的容错能力如何?如果系统的一部分停止工作,他们能自己处理吗?他们能经受住软件故障或硬件故障吗?这些问题比您想象的更重要。
如果您为网站、应用程序平台或网络部署的系统没有针对故障进行适当的加固,那么当系统中的一个组件停止工作时,一切都可能崩溃。这种事情甚至有一个术语——级联故障。
不幸的是,正如我们几周前在一篇关于容错的文章中所展示的那样,构建一个良好且真正容错的系统是一项重大挑战——尤其是当您管理复杂的应用程序基础架构时,例如 Netflix API。那么,陷入困境的服务器管理员该怎么办呢?您如何确保您的服务器 - 以及托管它们的网络 - 优雅地处理故障?
容错基础
我们将从您应该注意的最低限度开始,由Microsoft Technet上的一篇文章提供。首先,我有一个词要告诉你:冗余。
“任何单一的依赖项都不应破坏整个应用程序,” Ben Christensen 在 2012 年关于 Netflix API 的演示中解释道。尽管他谈论的是应用程序设计,但他的说法绝对也适用于服务器和托管基础设施。看,容错最终就是要最大限度地减少故障点。
这意味着,假设您自己处理服务器设置和维护,您需要分析每一个应用程序、硬件和网络节点,它们的故障可能会使您的系统离线——并且您需要确保不会发生。
为此,您需要确保拥有合适的电力基础设施。我说的是企业级不间断电源、定期测试的备用发电机;作品。尽管断电可能很少发生,但您不希望服务器在断电时停机。顺便说一下,在功率方面有很多需要考虑的因素。一个设计良好的电力系统可以解决局部电源故障、电压变化以及短期和长期停电的问题。
硬件也非常重要。服务器和网络硬件的构建都必须考虑到冗余。现在,在这里值得一提的是,假设您选择了正确的(稍后会详细介绍),您的房东可能会为您处理所有这些事情。
不用说,您需要让您的软件保持最新状态——尤其是与安全相关的东西。毕竟,很多中断都是由应用程序故障引起的。Netflix 的 2012 年圣诞节中断是其 Elastic Load Balancing 软件故障的结果。虽然您并不总是能够防止软件故障,但掌握软件维护会有所帮助。
最后但同样重要的是,还有监控。在硬件和软件方面密切关注您的服务器,并确保有一个系统可以在发生故障时提醒您的管理员。同样,这取决于您的主人,这可能会得到解决——在这方面进行自我教育很重要。无论如何,这就是基础知识——现在要深入研究一些更高级的东西。
员工培训
我有一个事实告诉你:大多数数据中心中断不是由电源故障、应用程序故障或系统缺陷引起的。它们是由人为错误造成的。某人做了不该做的事。
现在,即使您可能没有运行自己的数据中心,这个事实也绝对适用于您。您会惊讶于客户端的一个简单错误会对他们的服务器造成多大影响。这意味着您需要尽您所能确保直接使用您的服务器的每个人都经过适当的培训。否则,您可能会发现自己要处理一些计划外且不受欢迎的停机时间。
最重要的是,选择合适的主机
很多人可能已经注意到,此页面上的大部分建议通常由您的房东处理。这就是为什么最重要的是,要确保您的服务器具有容错能力,您可以做的最好的事情就是选择一个优先考虑此类事情的主机。这样,您就可以绝对确定您的资料在您需要时随时可用,而且您不必处理失去访问权限的问题。