Pokémon Go上线启示:为何“为扩展而构建”与“为故障而构建”同样重要

F5生态系统 | 2016年7月18日
wener-pokemon

过去很多年来,DevOps和云领域一直流行一句口号:“为故障而构建”。其理念是,太多企业因容量相关的性能问题而遭遇代价高昂的停机,并损失收入(以及生产力),因此应将应用和基础设施设计为能够应对故障,避免这些可怕的问题再次出现。嘿,发现我的双关了吗?没错,我独自在办公室远程办公,有时得自娱自乐一下。

先不说这个冷笑话,Pokémon Go最近大获成功(您听说过,对吧?),但也让许多人感到极其沮丧。尤其是那些孩子兴奋不已、恨不得马上出发的家长,却因需求量过大,账号创建先是暂时停止,随后又受到严格限流,无法如愿。

可怕

现在,有些人可能会提到Amazon首席技术官Werner Vogels提出愿意帮助该公司解决容量问题,并据此认为他们一开始并未“上云”,这才是问题的根源。但这种说法的前提是他们确实没有上云,而目前我还无法确定这一点。说真的,根据Wikipedia上的最新信息,这家增强现实开发商“每天处理超过2亿次游戏操作,用户在现实世界中与真实和虚拟对象进行互动”。我认为这次可以对他们宽容一点,至少那些了解这对系统交互和数据包传输意味着什么的人应该可以。最新消息称是“服务器问题”,但得了吧,我们都知道,“服务器”只是技术圈的代称,实际指的是“分布在应用和网络基础设施中的15个不同组件”。

无论如何,这里的根本启示并不是云必然更善于应对突如其来的成功。云或许确实更适合,但并非仅仅因为它是云,而是因为云在设计上不仅允许故障,还能够扩展。

我无法判断Niantic Labs为何未能满足需求。原因可能是容量不足,在这种情况下,云会是一个不错的选择;也可能是应用和基础设施并非为扩展而构建,在这种情况下,云或许根本帮不上忙。重点并不是要挑他们做了什么或没做什么的毛病。真正的重点是,他们充分体现了应用世界中的一个现实:组织在为成功做好准备的同时,也应同样重视为故障做好准备。而且要应对的不只是逐步取得的成功,还包括像Pokémon Go那样一夜之间迅速爆红的情况。

因为一旦发生这种情况,谁都不希望这种“成功带来的失败”传遍整个互联网。

数据源是可扩展性问题的常见根源。资深Twitter用户应该还记得,这个社交媒体平台早期一直饱受数据库可扩展性问题困扰。为应对庞大用户规模带来的挑战,PayPal很早就开始积极倡导将分片作为一种扩展策略。如今,这项技术已成为一种通用方法,适用于数据库、性能服务和应用程序。NoSQL数据源的兴起,部分得益于其可扩展性优于传统关系型数据库。

可扩展性问题的另一个根源完全在于基础设施。云端自动扩缩容不仅要能自动增加计算资源,还要能提升“应用端点”的容量。任何依靠扩展来增加容量的架构都需要某种负载均衡服务。增加计算资源后,必须将其注册到负载均衡服务。这需要使用API和脚本,并实施自动化和编排。这些组件必须在实际需要之前部署到位,否则当需求增长而需要增加容量时,就会出现延迟。

任何应用架构,无一例外,都应将负载均衡服务列为必备组件。负载均衡服务本身支持在两个应用实例之间进行故障转移,既能满足“面向故障构建”的需求,也能支持成功所必需的“面向扩展构建”。但不要以为只需在应用(或微服务,如果您采用微服务架构)前部署负载均衡服务即可。运维团队还必须建立自动化机制(脚本)和编排流程,以便在需求出现时通过自动扩展满足需求。如今,实现扩展的关键在于架构,而非算法。因此,必须提前考虑架构,以免架构债务积重难返,最终只能受制于现有架构。

坦率地说,Niantic Labs在构建可应对故障的系统方面做得不错。出现容量不足问题时,用户看到的是友好的提示消息,而不是我经常遇到的默认HTTP状态码页面。这些消息幽默风趣,孩子也很容易阅读和理解(这一点我很清楚,因为我8岁的孩子每隔20分钟就会给我们念一遍)。但他们没有预料到,产品可能会取得如此出人意料的成功。这也提醒大家,构建可扩展的系统与构建可应对故障的系统同样重要。

因为如果不这样做,火箭队就会获胜。

分享
标签: 2016

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。