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

Tim*_*ddy 11 reporting high-availability metrics cdn

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

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

管理层决定我们采用最坏的情况来衡量可用性。因此,如果我们的源服务器出现问题,但 CDN 提供的内容还不错,我们仍然会受到可用性的影响。反过来也是一样。我的想法是,只要“用户体验”成功,我们就不要不必要地惩罚自己。毕竟,CDN 可以提高性能和可用性!

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

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

想法?

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

小智 2

简而言之,我想说你应该明确定义什么是“可用”与“不可用”,并根据它来衡量自己。例如,您可以为网站制定 1 秒“折叠”和 3 秒完全呈现页面的客户端性能 SLA。当您未满足性能 SLA 时,您应将其视为该时间段内的可用性故障。是否访问 CDN 并不重要——用户体验才是最重要的。

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

至于当 CDN 宕机时你是否应该承担“责任”:绝对是。如果 75% 的点击量会进入 CDN,那么您 75% 的客户体验就依赖于它们。您有责任为客户提供良好的体验,因此如果 CDN 出现问题,您需要使用工程资源来证明问题并与提供商联系。

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