Web 应用程序正常运行时间为 100%

Web 应用程序正常运行时间为 100%

今天我们收到了客户的一个有趣的“要求”。

他们希望 100% 正常运行场外Web 应用程序上的故障转移。从我们的 Web 应用程序的角度来看,这不是问题。它被设计为能够跨多个数据库服务器等进行扩展。

但是,从网络问题来看,我似乎无法弄清楚如何让它工作。

简而言之,应用程序将驻留在客户网络内的服务器上。内部和外部人员均可访问它。他们希望我们维护系统的异地副本,以便在他们的场所发生严重故障时立即接手并接管。

现在我们知道内部人员(信鸽?)绝对没有办法解决这个问题,但他们希望外部用户甚至不会注意到。

坦白说,我完全不知道这是怎么可能的。似乎如果他们失去互联网连接,那么我们就必须更改 DNS 以将流量转发到外部机器……当然,这需要时间。

有想法吗?

更新

我今天与客户进行了讨论,他们澄清了这个问题。

他们坚持 100% 这个数字,称即使发生洪水,应用程序也应该保持活跃。但是,只有我们为他们托管应用程序时,该要求才会生效。他们说,如果应用程序完全在他们的服务器上运行,他们会处理正常运行时间要求。你可以猜到我的反应。

答案1

这是维基百科追求九的便捷图表:

在此处输入图片描述

有趣的是,只有排名前 20 的网站中的 3 个2007 年,能够实现神话般的 5 个 9 或 99.999% 的正常运行时间的几家公司分别是雅虎、美国在线和康卡斯特。2008 年前 4 个月,一些最流行的社交网络,根本就没接近这个数字。

从图表中可以看出,追求 100% 正常运行时间是多么荒谬......

答案2

要求他们定义 100% 以及如何衡量 100% 以及衡量的时间段。他们可能指的是尽可能接近 100% 的水平。向他们提供成本。

详细说一下。多年来,我一直在与客户讨论所谓的荒谬要求。在所有情况下,他们实际上只是使用了不够精确的语言。

他们经常以看似绝对的方式描述事物——比如 100%,但实际上,经过更深入的调查,他们足够合理地进行成本/收益分析,这是在向风险缓解数据提供成本时所必需的。询问他们将如何衡量可用性是一个关键问题。如果他们不知道这一点,那么你就必须建议他们首先定义这一点。

我会要求客户定义如果网站在以下情况下瘫痪,会对业务产生什么影响/成本:

  • 在最繁忙的时段 x 小时
  • 在他们最不忙的时段 x 小时

以及他们将如何衡量这一点。

通过这种方式,您可以与他们合作确定“100%”的正确水平。我怀疑通过提出这类问题,他们将能够更好地确定其他要求的优先级。例如,他们可能愿意支付一定级别的 SLA 并牺牲其他功能以实现此目标。

答案3

你的客户疯了。100% 正常运行时间是不可能的无论你花多少钱。很简单——不可能。看看谷歌、亚马逊等。他们有几乎无穷无尽的资金投入到他们的基础设施中,但他们仍然设法停机。你需要向他们传达这个信息,如果他们继续坚持提出合理的要求。如果他们不承认这一点一些停机时间是不可避免的,那么就放弃它们吧。

话虽如此,您似乎已经掌握了扩展/分发应用程序本身的机制。网络部分将需要涉及到不同 ISP 的冗余上行链路、获得 ASN 和 IP 分配,以及深入研究 BGP 和实际路由设备,以便 IP 地址空间可以在需要时在 ISP 之间移动。

显然,这是一个非常简短的答案。您没有使用需要这种程度正常运行时间的应用程序的经验,因此如果您想接近神话般的 100% 正常运行时间,您确实需要让专业人士参与进来。

答案4

没问题——不过合同措辞略有修改:

...保证正常运行时间为 100%(四舍五入到小数点后零位)。

相关内容