acm-header
登录

ACM通信

实践

揭示人的性能在软件中的关键作用


坐在积木金字塔上的人影

信贷:在上面

回到顶部

四篇文章,发表在3月至5月的通信,强调在现代面向互联网的软件系统中,人是事件响应所必需的适应能力的独特来源。虽然软件工程和运维社区关注技术的复杂性是合理的,但是对人们如何进行工作的复杂性却没有给予太多关注。最终,是人类的表现使现代关键业务系统健壮和有弹性。

随着业务关键型软件系统越来越成功,它们的复杂性必然增加。具有讽刺意味的是,这种复杂性使得这些系统本身就很混乱,因此意外事件是提供更大规模和更快服务能力的一部分。13弹性工程研究212揭示了人们在混乱的系统中通过做异常响应的认知工作来产生弹性性能;在威胁到服务中断的事件期间协调联合活动;并利用从事故中吸取的教训,修改他们的系统实际如何工作和故障的模型。尽管不断变化,人们的弹性表现弥补了系统的混乱。

因此,威胁服务中断的事件是普遍存在的,是大规模提供有价值服务所需的相互依赖性日益复杂所产生的紧急副作用。不管过去的可靠性统计数据如何,事故将继续带来需要弹性性能的挑战。这是认知的工作协调跨角色,适应能力在异常可能发展成服务中断时解决异常的人。4更具体地说:现代业务关键系统的工作和它们所做的一样好,这是因为;并没有认知的工作在人们相互参与的情况下,所有的软件系统最终都会失败(考虑到它们所提供的服务的重要性,有些系统的影响越来越大)。1

回到顶部

人力绩效与软件工程“,

Richard Cook通过他富有洞察力的“线以上/线以下”图表将人类性能与软件工具联系起来。5库克指出,讨论只集中在技术上,而忽略了面向互联网的应用程序的实际运行情况。Cook文章中的图1揭示了在这条线上进行的认知工作和关节活动,并将用于开发和运营的技术和工具放置在这条线下。这里的“线”是代表的线。没有人可以直接检查或影响线下运行的流程;所有的理解和行动都是通过中介进行的表示。

这条线以下是工程师用来开发、更改、更新和操作软件的设施,这些软件能够提供有价值的服务。这包括创造企业为客户提供的价值所需的所有组件:技术堆栈、代码存储库、数据源和一系列用于测试、监视、部署和性能度量的工具,以及交付这些服务的各种方式。

图中的线以上区域包括参与保持系统运行和扩展其功能的人员。他们是准备部署新代码、监视系统活动和重新构建系统的人。这些人会问这样的问题:它现在在做什么?它为什么要这样做?它下一步会做什么?这种认知工作——观察、推断、预测、计划和干预等等——是通过与事物本身而不是与事物本身相互作用来完成的表示它们。有趣的是,一些表示(例如,仪表板)是由(并为)软件工程师和其他涉众设计的。

请注意,所有线上的演员都有心理模型下面这条线。这些模型取决于人们的角色和经验,以及他们个人的观点和知识。请注意,演员的思维模式是不同的。这是因为复杂的、高度互联的系统模型的保真度普遍存在限制。11现代软件系统也是如此,事件响应的研究证明了这一点;在事故发生期间或事后的验尸会议上,人们经常会听到这样的说法:“我不知道事情是这样的。”12Cook的概念和图表重新定义了面向互联网的系统如何运行,并被本系列的其他文章所利用。

回到顶部

系统是混乱的

系统是用有限的资源开发和运行的,它们在不断变化的环境中发挥作用。计划、程序、自动化和角色本质上是有限的;它们不能包含这些系统遇到的所有活动、事件和需求。系统在多重压力下运行,几乎总是处于降级模式。13

复杂系统的适应能力在于人。它是他们适应了不可避免的挑战、压力、权衡、资源稀缺和意外的发生。第二次世界大战中有一个俚语,它既反映了体制的状态,也反映了人们对体制运转者的接受程度:SNAFU(情况正常,一切都一团糟)。有了这个术语,士兵们承认这是通常的状态,他们的工作是使有缺陷和顽固的部分工作。如果SNAFU是正常的,那么捕捉SNAFU是必要的——弹性性能取决于在标准计划之外的适应能力,而标准计划不可避免地会崩溃。

然而技术推动,混乱的捕捉是人类最基本的一种能力,对于在这个充满变化和惊喜的世界中生存至关重要。某些职位上的某些人为捕捉SNAFU提供了基本的适应能力,尽管捕捉本身可能是局部的,对远处的视角来说是不可见的,甚至是从组织的角度进行的。9

复杂系统中的意外是不可避免的。弹性工程增强了适应能力需要对意外做出反应。一个具有适应能力的系统是准备适应的。当它遇到异常和意外时,它已经准备好改变当前的工作方式——它的模型、计划、过程、行为。11适应性是指修改计划以继续适应不断变化的情况的可能性。位于休斯顿的NASA任务控制中心是一个积极的案例研究,特别是航天飞机任务控制人员如何发展处理异常的技能,他们预计下一个将遇到的异常不太可能与他们过去实践或经历过的任何异常相匹配。10

it公司生活在一个技术、竞争对手和利益相关者都在变化的压力世界中。它们的成功需要扩大和改造基础设施,以适应日益增长的需求并开发新产品。这些因素增加了复杂性(例如,必须处理涉及第三方软件依赖的事件响应),并产生令人惊讶的异常。112基于it的公司、组织和政府知道他们将会遇到异常情况,因此需要熟练地应对变化并做好适应的准备。13

回到顶部

异常反应

玛丽莎·格雷森(Marisa Grayson)描述了她通过研究人们对不断发展的事件做出反应时的异常反应的认知工作来检查线以上关键功能的结果。6格雷森关注的是假设探索在异常反应。14假设探索始于对异常的认识(即观察到的和观察者的预期之间的差异)。这些期望来自观察者的系统模型和具体的业务环境。在大型、相互连接和部分自治的系统中,异常识别尤其困难。当监视有关可能相关的事件的不断变化的数据流时,意义构建是一项挑战。这是许多面向互联网的业务系统的标准:数据流广泛且快速流动;正常变异性高;警报过载是常见的;业务和观察以及技术高度分散。更糟糕的是,通常可用的表示需要很长的推理链,而不是支持异常行为的直接可视化。

格雷森的结果展示了从业者如何产生、修改和测试可能解释意外发现的潜在解释。她开发了一种基于线上/线下框架的假设探索图解和可视化方法。

她的图表揭示了典型的探索流程,其中产生了多个假设来解释异常,而这个集合中的假设会随着时间的推移而变化。当响应团队聚集在对情况的评估上时,他们经常修改被认为是候选假设的内容以及他们对可能性的相对信心。在她的研究中,格雷森发现,有时一个被认为已经证实的假设会随着新证据的出现而被推翻。

事后看来,人们关注的是解决事件的答案。然而,异常响应的质量直接关系到生成和考虑广泛假设的能力,以及随着时间的推移情况的变化而修改假设的能力——例如,当解决问题的干预措施最终产生额外的意外行为时。

回到顶部

联合活动中协调成本的控制

劳拉·马奎尔的文章8通过检查当事件威胁到服务中断时,跨多个角色的协调看起来是什么样子,特别是人们如何适应控制与协调解决情况所需的联合活动相关的成本,扩展线上框架。当人们在事件响应过程中与不确定性和风险搏斗时,跨角色和视角协调的价值已得到充分确立。在太空任务操作中心等危险领域处理异常就是一个例子。10但对联合行动的研究也表明,协调的成本可以抵消态势管理中多人参与和自动化带来的好处。7

然而,这一早期的研究着眼于在物理控制室中锚定的异常响应,在这些控制室中,应答者被安置在开放的工作空间中。面向互联网的软件系统以不同的方式管理,因为响应器通常是物理分布的。人们通过ChatOps渠道联系,无法观察彼此。对于地理分布的群体来说,协调的认知成本更大。Maguire的文章描述了这是如何促进和限制联合活动的。例如,增长导致了第三方软件依赖,需要在异常响应期间跨组织(和公司)边界进行协调。

在她的研究中,Maguire提出了一个问题:当从业者在不确定性、风险和压力下进行异常响应时,他们如何控制协调成本?她的研究结果基于对软件工程师如何在一系列事件响应案例中体验这些“成本”的研究。他们强调了协调角色和管理协调成本的传统方式的缺点(例如,事故指挥官、严格的程序遵循(基于事故指挥系统),以及使用IT假肢(如机器人)的努力)。马奎尔的研究揭示了当协调成本变大时,人们是如何适应的。理解这些适应性有助于设计有效的工具,改变角色,并建立组织框架,以加强联合活动,减少事件响应期间的协调成本。

回到顶部

了解是什么使事件响应有效

在我们对事件发生(和解决)的想象和事件发生的过程之间存在着巨大的差距实际上发生。3.保罗·里德(J. Paul Reed)考虑了组织如何学习缩小这一差距(参见他在本期第58页的文章)。他拓宽了视角,揭示了影响从事件中学习的因素可以是狭隘的被动的,也可以是广泛的主动的。广泛的、主动的学习与变化保持同步,不断为适应能力的来源充电,从而导致有弹性的表现。

里德的研究强调了一个重要但往往是无形的推动因素——人们对过去事件的持久记忆,以及那些当时不在场或未参与处理事件的人是如何使用这些记忆的。人们是如何理解所发生的事情的?他们如何分享事情发生的原因?为什么有些事件比其他事件更能引起组织的注意?

组织通常保留有限的资源来研究导致(或接近)严重服务退化的事件。社会、组织和监管因素限制了从这些事件中学习的可能性。相比之下,积极主动的学习弹性绩效和适应能力的重点是认知工作如何在所有的困难、有限的资源、权衡和意外情况下正常进行。以前报告中的数据和分析说明了从深入研究事件反应的认知工作中获得的潜在见解。212

在这篇文章中,以及在其他文章中,一个主题重复出现:事件是更新和修改组织生成和维持适应能力的方式的机会,以应对IT系统在新的规模上增长和运行时的意外挑战。如果你认为系统的启动、工作和成功是因为人们拥有的适应能力,那么事件可以被重新定义为随着组织/技术/基础设施的变化、增长和规模而更新和修正思维模式的持续机会。4

回到顶部

结论

这四篇文章一起提供了在表示线之上发生的事情的概要,特别是在事件响应期间。这些活动对于我们社会日益依赖的现代信息技术的建立、部署和改进是必不可少的。了解人们如何发现异常,如何合作解决事件,并从这些经验中学习,对于未来拥有更有弹性的系统是至关重要的。

人类的专业知识和现代系统的技术组成部分之间的亲密关系违背了线性分解。正如库克所展示的,这里实际上只有一个系统——这个系统是如何依赖于一种意识,即人们的适应能力有时是如何被技术促进的,有时又是如何被技术阻碍的。Grayson、Maguire和Reed的文章展示了如何通过认知工作、联合活动和主动学习的视角来看待事件,为人类技术系统如何真正工作提供了新的见解。事件是一种挑战,它揭示了系统并没有按照想象的方式工作。事件的经历和事件后的调查提供了学习机会,强调了哪些心智模式需要修正。

不过,这些文章更进一步。他们共同强调了每个人对面向互联网的软件系统的思维模式是如何需要进行重大修改的。人类的认知、协作和自适应性能是软件工程和运维的核心。随着提供关键服务所必需的软件系统的规模和复杂性不断增加,在这条线上发生的事情将继续成为所有增长、成功、不稳定和崩溃故事的中心。

理解、支持和维持上述能力需要所有涉众能够持续更新和修改他们的模型,即系统是如何混乱的,但通常是如何设法工作的。当组织重视开放性,不断重新检查系统如何真正工作时,他们可以遵循这些文章提供的具体路径,学习如何从事件中学习。

回到顶部

参考文献

1.Allspaw, j . 2016。网络工程和运营中的人为因素和人体工程学实践:在关键而不透明的自动化海洋中航行。实践中的人的因素与工效学。S. Shorrock和C. Williams,编。CRC出版社(Taylor & Francis),博卡拉顿,佛罗里达州,2016,313-322。

2.压力下的权衡:解决互联网服务中断的团队的启发式和观察。硕士论文,2015年。隆德大学,隆德,瑞典。

3.奥尔斯帕,J.我们想象中的事件与它们的实际情况之间的对比。2018年PagerDuty峰会。YouTube;https://www.youtube.com/watch?v=8DtzmV1jiyQ

4.奥尔斯帕,J.和库克,罗德。SRE认知工作。寻求SRE:关于大规模运行生产系统的对话。D.布兰克-埃德尔曼主编。奥莱利媒体,2018,441-465。

5.库克,罗德岛岛,线以上,线以下。63年ACM通讯。, 3(2020年3月),43-46。

6.异常反应中假设探索的认知工作。63年ACM通讯。4(2020年4月),97-103 ..

7.克莱因,费尔托维奇,p.j.,布拉德肖,J.M.和伍兹,D.D.联合活动的共同点和协调。组织的模拟。劳斯和鲍夫编的。威利,2005,139 - 184。

8.马奎尔,医学博士管理协调的隐性成本。63年ACM通讯。4(2020年4月),90-96。

9.佩里,S.J.和戴尔斯,R.L. 2012。地下适应:来自卫生保健的案例。认知,技术与工作, 3 (2012), 253-260;doi.org/10.1007/s10111 - 011 - 0207 - 2

10.合作倡导:异常响应中整合不同视角的策略。计算机支持的协同工作:协同计算杂志, 2(2009), 175-98。

11.弹性的四个概念和弹性工程的含义。可靠性工程与系统安全5 - 9 (2015);doi: 10.1016 / j.ress.2015.03.018。

12.2017年SNAFUcatchers应对复杂性研讨会的伍兹·d·d·斯特拉报告;https://snafucatchers.github.io/

13.伍兹,d。d。韧性是个动词。IRGC弹性资源指南(卷2):复杂互联系统的弹性领域。特朗普最初,M.-V。弗洛林和我,林科夫,编。EPFL国际风险治理中心,瑞士洛桑,2018年。https://www.researchgate.net/publication/329035477_Resilience_is_a_Verb

14.伍兹,D.D.和霍尔纳格尔,E。联合认知系统:认知系统工程中的模式。CRC出版社(泰勒和弗朗西斯),波卡拉顿,佛罗里达州,2006年。

回到顶部

作者

大卫·d·伍兹他是俄亥俄州立大学集成系统工程教授。从2000年到2003年,他针对脆性系统的危险和投资维持弹性来源的需求开发了弹性工程,作为对NASA几次事故的响应的一部分。

约翰Allspaw从事软件系统工程和运营工作超过20年。此前,他曾担任Etsy的首席技术官。他在2009年与Paul hammond的“每天10+部署:开发与运维合作”的Velocity演讲帮助开启了DevOps运动。


版权由作者/所有者持有。授权给ACM的出版物权利。
请求发布的权限permissions@acm.org

数字图书馆是由计算机协会出版的。版权所有©2020 ACM, Inc.


没有发现记录

Baidu
map