本文原作者:Niall Murphy
我们真的理解可靠性,或者明白为何需要它吗?
这听起来或许有些奇怪。在我们这个社群里,一个普遍的共识是:无法访问的在线服务毫无价值。但稍加思索便会明白,这根本不是事实。你自己几乎每天都在经历电脑故障。在某些场景下,甚至似乎习以为常;对于网络服务,用户早已习惯刷新页面,或者(遇到更棘手的问题时)清除缓存、重启浏览器,乃至重启整台机器。就连服务提供商自身也内置了重试机制。
任何人与计算机的交互中,都难免夹杂着一些“和稀泥”的成分。即便出现较长时间的停机,只要系统短暂宕机几分钟,人们几乎总会选择回归,并且会展现出更强的耐心——当然,这还得看所提供服务的独特性如何。
这事儿虽是偶然,却颇具启示意义:几年前,我曾与一家颇具名望的公司有过一次对话。当时他们坦言,并未在可靠性上投入任何资金,因为他们特定的客户群体别无选择。因此,他们投入在可靠性上的时间,本可用于营收增长的时间,便打了水漂——这笔投入他们觉得划不来。
当时我暗自倒吸一口凉气,但自那以后我常常思考这个问题。如今,我将这个问题转向我们——作为一个社群、一个行业:我们能否就这一观点提出任何实质性的反驳?我们能否用数据来支撑它?能否理解其中的权衡?能否就品牌形象提出除情感诉求之外的其他论点?能否给出一个真正合理的解释,说明那些曾被指责不可靠的公司如今为何价值数百亿,更不用说那些无法访问网站会导致实际经济损失、宕机时常持续数小时,但用户量、营收和利润却持续增长的公司了?
我不喜欢这样,但我觉得这是事实:在一个上涨的市场中,如果一家公司可以选择获取新客户或留住老客户,那么所有的经济激励都会指向客户获取,因为每一个失去的客户都会被更多的新客户所取代。当然,一个系统性地不可靠的平台最终会失去和你获取的客户一样多的客户,但你有时间去修复这个问题,而且客户往往不愿意更换,即使服务很差。
产品开发者都明白这一点,这也是我们沟通之所以如此困难的原因。然而,我们至今还没有一套令人完全满意的方式来讨论这些权衡取舍;可靠性的真正价值,尤其是在那些市场不景气、非网络环境或其他SRE(站点可靠性工程师)并不常见的领域,很难清晰地表达出来。SLO(服务等级目标)模型本意是能够精确地阐述特定用户群体在整体上能够容忍多少不可用性,但实际上并不够充分;在通常的使用场景下,它无法区分(比如)20分钟几乎完全不可用或两小时断断续续不可用的状况。从用户体验的角度来看,这两种情况实际上差异很大,从潜在的收入角度来看,也可能存在显著区别。
我们手头掌握着一些零星的数据点,它们勉强勾勒出一种思路的轮廓——这种思路或许能帮助我们理解,并有力论证为何在时间与资源有限的情况下,甚至更糟,在市场上涨的背景下,仍要投入时间保障可靠性。然而,我们距离完全掌握这一切,还差得远呢。
因此,这究竟令人担忧还是天赐良机,全看你的视角了。