弹性工程:REDeploy会议的笔记



当世界各地的会议都在寻找在线最佳格式时,是时候记住它们(以及我们所有人)在前病毒时代的生活了。去年年底,我参加了致力于Resilience Engineering REDeploy 2019会议。很长时间以来,我一直试图了解如何将该术语翻译成俄语,直到我发现该术语已长期用于不成文的壁ni(如“弹性工程”)中。此外,有必要写一个弹性的定义,但是用一个简单的句子很难做到这一点。事实证明,六个月前提出的主题与我们的新现实非常相关。

首先,重要的是要了解,复原力工程是一门跨学科的科学领域,其目的是研究,形式化和形成实践,以提高复杂的社会技术系统为应对异常情况和事故做好准备,适应和提高其能力的能力。去适应。

多年来,在软件开发过程中一直占据着世界的机械图景-相信我们能够开发不会崩溃的软件,并且如果发生事故,它将有一些根本原因,可以纠正。以防止将来再次发生此类错误-因此,由于错误的数量当然是正确的,最后,更正所有导致事故的错误(请参阅优秀文章开发,运营和决定论)。

同样的“工程”方法也适用于人们在事故中的交互方式:足以创建一些工具,人们可以使用它来解决问题(不会犯错误)。

但是要注意的是,软件会继续更新,变得复杂,分散和分支化,并且发生的事故没有单一原因(此外,它们甚至可能位于系统外部),并且正在进行通信以纠正此事故的人员可以犯此错误。错误。

因此,要避免系统中的错误和事故,实际上并不是不可能完成任务,而是要为人员和系统做好准备,以使潜在事故对系统,其用户和创建者的影响最小。

长期以来,软件开发一直不受其他“离线”工程学科的欢迎,而由于事故而“减少危害”的做法已在该领域使用了很长时间。而且,与防止事故发生的公用事业和技术解决方案相比,这些做法更可能涉及人员。

因此,工程弹性所提出的问题如下:
  1. 为了更好地了解事故过程中人际交流中可能发生和不能发生的事情,应该考虑人际互动的文化,社会特征是什么?如何改善适应和沟通的过程?反之亦然,如何使情况变得更糟?
  2. 为了使系统在发生事故时更加灵活和稳定,我们可以应用其他学科的哪些知识?
  3. 如何组织培训和人与人之间的互动,以便在发生事故的情况下,对于那些将要消除的人来说,其伤害和压力都最小。
  4. 哪些技术解决方案,实践可以应用于此?我们如何通过有意识的行动来提高系统的稳定性及其对事故的适应性?


会议是关于这个的。下面-一些发言者谈论的话题。

关于骨骼和弹性工程的出色弹性的一些观察。理查德·库克


首先,必须说一下说话者的人。 Richard Cook是一名医生,科学家,并且是IT弹性工程的主要“推动者”之一。他与David Woods和John Olspau(实际上是作为推荐人发起DevOps的人)一起共同创立了Adaptive Capacity Labs,这是一家在其他组织中实施可持续性工程的公司。

应当注意,REDeploy不是IT会议,并且此报告是一个生动的例子。

该报告的大部分内容是对骨折如何愈合的详细分析,骨折的愈合是复原力的原型。骨骼本身未正确融合。医学研究了如何治疗骨折,了解愈合过程。实际上,医学甚至不治疗骨骼本身,它创造了促进愈合的过程。

一般而言,治疗史可分为两个方向:
  • 治疗是为骨骼愈合创造最有利条件的过程(在治疗过程中,我们使用石膏以使骨骼不动)。
  • 作为“改善”愈合过程的过程进行治疗(在生化水平上理解-愈合过程如何进行,我们使用可加速其愈合的药物)。


实际上,这里的主要论点是报告的整个学科都是“程序性的”:为什么我们需要了解事故期间社会技术过程是如何发生的?

了解“治疗”机制(例如,解决紧急情况)的工作方式后,我们至少可以安排这样的有利条件,以使事故造成最小的损失,并最大程度地加快解决事故的过程。我们无法防止骨折的情况,但是我们可以改善愈合过程。

大规模接受失败的艺术。阿德里安·霍恩斯比


现在,是有关AWS基础架构中容错性发展的技术报告。
在不涉及技术功能(您可以在演示文稿中看到它们)的情况下,我们将考虑该报告的主要主题。 AWS在构建各种系统的过程中会开发架构,同时考虑到事故可能迟早会发生的事实,因此,系统架构的设计应限制发生事故时的“爆炸半径”。例如,客户端数据库,存储分为“单元”组,一个客户端创建的负载仅影响该单元的用户。单元副本中的客户端不复制主单元,而是混合在一起,从而将影响半径限制为最小。







通过增加此类组合的数量,我们可以降低发生影响时客户参与的风险。



适应水下。罗尼·陈(Ronnie Chen)


来自Twitter经理的报告,该经理在潜水过程中对安全功能进行技术深海潜水方面具有丰富经验。

团队深潜是一项高风险的工作。而且,如果仅在完全消除此类风险的情况下从潜水的可能性出发进行组织,则根本不会进行任何深海潜水。可能会以某种方式发生问题,这是正常的-演讲者总体上将有意识地冒险作为发展人类潜力的一种方法进行了比较。如果我们减轻风险,这将限制我们的潜力。同样,任务是组织最容易解决的情况,以防这些风险得以实现。

在冒险活动中,您如何尝试承受团队承受的压力?

一组潜水员的互动规则示例:
  • 参与者之间可靠且持续的交流和最大程度的心理安全:每个团队成员都必须感到安全,任何潜水参与者都可以随时停止潜水(并且严禁收费)。
  • 接受错误。任何人都可能犯错误,而在工作过程中错误是不可避免的。指责错误也是不可接受的。
  • 团队可以根据变化的条件重新定义项目的目标,并确定项目在潜水过程中是否成功。
  • , .
  • — . , , .
  • ( ) , root cause ( ), , .


The Practice of Practice: Teamwork in Complexity. Matt Davis


在发生事故的情况下,工程师基本上是直观的,并且将报告中的直觉与即兴演奏进行了比较。即兴演奏是一种直观播放音乐的过程,但是这种直觉是建立在经验之上的-音阶知识,以前即兴演奏的经验,团队合作。此外,这是一个双向过程:直觉是建立在经验的基础上,而过程是建立在对直觉行为的分析之上的(在音乐中-写出组成乐谱的注释,在技术中-描述纠正事故的过程)。

两种教导/形成直觉的方式:
-验尸不是将来指责或预防问题的手段,而是培训和分享经验的手段。定期以事后报告/事故报告的形式分享您解决事故的经验,以便与他人分享您解决问题的经验。
-混沌工程是在受控环境中产生经验的一种方式。通过在需要解决的系统中人为地制造事故,我们与将要处理其解决方案的工程师形成了直觉的经验。同时,我们可以通过限制系统影响的半径来确定要在其中发展能力的必要堆栈。

这是给我的最难忘的报告。在我看来,现在看来这些都是非常有用的事情,而总体看来,所有现实都已经崩溃了,“另当别论”。也许有些观点可以帮助您从新的角度看待现实和事故。

而且比这里的博客更普通,我保留了电报频道,订阅:-)

All Articles