寻求有关衡量使用 CDN 的高可用性应用程序的建议

寻求有关衡量使用 CDN 的高可用性应用程序的建议

我供职于一家财富 500 强公司,该公司一直在努力准确衡量高可用性应用程序(即 5 秒内页面导航可达 99.5% 的应用程序)的性能和可用性。我们将计划内和计划外的停机时间都考虑在内,以确定这个可用性数字。但是,我们最近添加了 CDN,这让我们的指标变得有点复杂。CDN 现在处理了我们大约 75% 的流量,而将其余流量发送到我们自己的服务器。

我们尝试衡量所谓的“真实用户体验”(即,我们的测试脚本模拟典型用户点击应用程序的情况)。这些监控脚本位于我们的网络之外,这意味着我们大约 75% 的时间都在访问 CDN。

管理层决定我们采用最坏情况来衡量可用性。因此,如果我们的原始服务器出现问题,但 CDN 可以正常提供内容,我们的可用性仍然会受到影响。反之亦然。我的想法是,只要“用户体验”成功,我们就不应该不必要地惩罚自己。毕竟,CDN 是为了提高性能和可用性而存在的!

我只是想知道是否有人知道其他财富 500 强公司如何计算其可用性数字?例如,我查看了 apple.com,其中一家使用 CDN 的店面似乎从未出现过故障(除非即将发布重大产品公告)。如果有一些确凿的事实数据就太好了,因为我认为我们不需要不必要地在这些指标上伤害自己。我们根据这些数字做出商业决策。

然而,我可以说,鉴于这些指标对管理层来说是可见的,问题会得到很快处理和解决(阅读:我们很快就解决了繁文缛节。)不幸的是,作为一名开发人员,我不希望管理层认为应用程序的启动或关闭是因为一些外部因素(即 CDN)影响了这些数字。

有什么想法吗?

(我错误地将这个问题发布在 StackOverflow 上,提前为交叉发布道歉)

答案1

从理论上讲,我认为你应该明确定义什么是“可用”和“不可用”,并以此来衡量自己。例如,你可以为网站制定一个客户端性能 SLA,即 1 秒内“翻页”,3 秒内完全呈现页面。当你没有达到性能 SLA 时,你应该将其视为该时间段内的可用性故障。你是否使用 CDN 并不重要——用户体验才是最重要的。

但是,由于您每 5 分钟只进行一次测量,因此分别测量 CDN 和主站点的点击量似乎是合理的,并计算出 75% 的可用性来自 CDN,25% 来自主站点。这里的困难在于 75% 只是一个平均值。为了在给定的时间段内准确分配责任,您需要知道何时其中一个站点或另一个站点实际上不面向客户,例如,在计划更改期间或在检测到问题后采取手动操作。您还需要考虑当主站点或 CDN 之一关闭时会发生什么。客户是否获得 HTTP 500,还是他们只是透明地故障转移到工作站点?很大程度上取决于您的负载平衡解决方案。您描述的“最坏情况”指标似乎过于简单。问问自己,“我们的客户经历了什么?”

至于当 CDN 出现故障时您是否应该承担“责任”:当然。如果 75% 的点击量都来自 CDN,那么 75% 的客户体验也取决于它们。您有责任为客户提供良好的体验,因此如果 CDN 出现问题,您需要使用您的工程资源来证明这一点并与提供商进行跟进。

需要考虑的另一件事是,当主站点长时间不可用时会发生什么。正如您所描述的那样,CDN 听起来像是主站点上内容的静态副本。如果主站点长时间处于关闭状态,CDN 可能会开始变得陈旧。因此,您的 SLA 的一部分可能是新鲜度:1 秒到“折叠”,3 秒到完全呈现的页面,内容不超过 15 分钟。

答案2

我同意 user44700 的观点,最好将服务器可用性测试与 CDN 可用性测试分开,并分别跟踪这两个独立测试。您的真实可用性将是服务器可用性 * CDN 可用性,因为如果其中一个出现故障 - 您就会认为您的页面/网站已出现故障。这也会降低您使用任何监控供应商的成本。

我不会采用创建一个浏览器测试并查看哪些项目失败的路线,虽然它可以工作,并且一些公司(如 Catchpoint)有“内容可用性”的概念 - 但它可能不是您在这种情况下想要的。例如,假设您的网页调用 CDN 来获取文件,结果出现 404,大多数监控解决方案都会告诉您这是一次失败 - 但真的是 CDN 失败了吗?那个文件重要吗?也许有人只是忘记删除一些用户没有注意到的遗留引用。

您可以阅读此博客文章以获得更多想法: http://blog.catchpoint.com/2010/07/21/true-availability-of-a-webpage/

答案3

SLA 报告应准确反映实际情况。如果您从用户角度衡量可用性,并且只有进行衡量的服务器遇到问题,则在 SLA 中报告该问题将无法反映用户体验。

我可以理解想要对源信息保持高标准,即使不准确也应该进行报道但要注明原因。

如果你们无法达成一致,也许有一个技术解决方案可以降低测量服务器的故障率。

如果信息被报告为中断但事实并非如此,那么报告有什么价值?

在我的环境中,我们从多个来源进行报告。外部监控方法从外部角度报告可用性,并报告我们的内部中断记录系统,该系统是人工输入的,并考虑了最准确反映情况的多种因素。

答案4

Pingdom 很好:http://www.pingdom.com/

相关内容