决定一项服务的合理可用性目标时,成本是很重要的考虑因素。
服务就能很好地体现出这种取舍,因为成功与失败直接通过赢利和亏损体现。在为每一项服务确定可用性目标时,可以考虑如下的问题∶
●构建和运维可用性再多一个"9"的系统,收益会增加多少?
● 额外的收入是否能够抵消为了达到这一可靠性水平所付出的成本?
为了使这个权衡等式更精确,假设一项业务中每一个请求的价值是一样的,考虑如下的成本与收益∶
可用性目标∶99.9%→ 99.99%
增加的可用性∶0.09%
服务收入 ∶100万美元
改进可用性后的价值∶100 万美元 ×0.0009 = 900 美元
在这种情况下,如果可用性提高一个"9"的成本不到 900 美元,这就是合理的投资。但是,如果成本超过 900 美元,那么成本将超过预计增加的收入。
当我们无法简单地解释可靠性和收入的关系时,可能会更难设置这些目标。这时,考虑在互联网中ISP的背景误差率可能是个不错的实用策略。如果从最终用户的角度测算故障,那么让服务的误差率低于背景误差率就是可能的。这些误差将归入给定用户的互联网链路的噪声当中。虽然ISP和各种应用协议之间差距很大(比如,TCPvs.UDP、IPv4vs.IPv6),但是我们测算的 ISP的背景误差率基本在 0.01% 和1%之间。
除了可用性,其他指标也可以用来确定服务的风险容忍度。了解哪些指标是重要的,哪些指标是不重要的,可以为我们在讨论风险承受能力时提供帮助。
Google 系统的服务延迟是一个典型的例子。当 Google 发布 Web搜索服务时,服务的一个很关键的特点就是速度快。AdWords 是将 显示在搜索结果旁边的系统。该系统的一个关键要求就是 不能拖慢用户的搜索体验。这是每一代 AdWords系统的一个不变的目标。
AdSense,允许出版商将JavaScript代码插入到自己的网站中的上下文 ,有一个非常不同的延迟目标。对于AdSense而言,延迟的目标是避免在插入上下文 时影响到第三方页面。这个特定的延迟目标依赖于给定的发布者的页面呈现速度。这意味着AdSense 的 一般可以比 AdWords 的 慢数百毫秒。
这种宽松的服务延迟要求允许我们在构建系统时做出一些明智的权衡(例如,使用的服务资源的数量和位置),这能够帮我们节省大量成本。换句话说,相对延迟不敏感的AdSense 服务,使得我们能够通过合并需求较少的地理区域来降低运营开销。
|