跳转到主要内容
Chinese, Simplified

今年早些时候,第四届“混乱社区日”在纽约市的工作台举行。当天的主要内容包括:混沌工程的主题大量来自其他领域,软件工程师可以从中学到很多东西;理解和交换心理模型对于在系统内建立弹性至关重要;可观察性是进行混沌实验的先决条件; “游戏日”是一种有价值的方法,可以让工程师在非紧急情况下练习处理故障。

在Chaos社区日组织者,Verica首席执行官Casey Rosenthal和Netflix混乱团队前工程经理的欢迎之后,当天的第一位发言人是Nora Jones,她谈到了“Chaos Engineering Traps”。斯莱克的混沌工程和人为因素负责人琼斯开始讲话时说,混沌工程来自几个不同来源的概念和想法,包括弹性工程,以及航空,外科和执法等行业。她认为软件工程师不会谈论这个问题,因此错过了跨学科的学习机会。

与John Allspaw在QCon伦敦分享的想法相呼应,她表示,交换关于我们合作系统的心理模型至关重要。混沌工程也是公司范围内的努力,必须考虑安全性并提前沟通。

混沌工程的所有阶段都很重要,值得同等重视。 例如,开始阶段允许交换心智模型,我们可以开始识别彼此模型之间的任何差距

琼斯提出了一系列“陷阱”,引入了诸如通过计算发现的漏洞数量来衡量混沌工程成功的谬误,工程师必须解决发现的所有问题的信念,以及“除非你超越游戏日,否则它不是真正的混沌工程”。在沙箱环境中进行实验“。她认为在演讲结束时提出的3号陷阱是最重要的:没有规定的混沌工程公式。感兴趣的读者可以从由James策划的InfoQ Chaos Engineering emag中了解更多信息。

在接下来的演讲中,Auxon首席执行官Nathan Aschbacher告诫说,由于工程师现在正在增加用于控制机械系统的软件层,这些软件之前已被很好地理解 - 例如飞机 - 这可能导致创建复杂的系统,失败模式更难理解。他认为“混沌工程是关于表现未知的未知数”,但也提醒工程师在寻求理解系统时应该从第一原理出发。 Aschbacher说,显然“从了解你已知的知识开始受益......”

Adding software to control mechanical systems can create complex systems.

舞台旁边是Charity Majors,蜂窝的联合创始人兼首席技术官,她开始讲话时提出混沌工程“真的只是一个新的营销术语,用于测试产品”。 Majors认为,我们对软件开发生命周期的想法是在分布式系统时代“应该升级”,并讨论了虽然混沌工程非常有益,但工程师也应该投资于生产前测试。重申一整天讨论过的核心理念,她指出在团队中共享心理模型对于创建软件时的成功至关重要:

我们应该考虑像国家电网这样的分布式系统。它必须是模块化的。你无法在头脑中保持整个系统的准确模型

专业人士指出,混沌工程有一些先决条件,例如从基础层面理解你的系统,并且还有能力观察它:“没有可观察性,你就没有混沌工程。你只是有混乱“.Tammy Butow之前曾在QCon伦敦讨论过混沌工程的类似先决条件。

Observability is a prerequisite for chaos engineering.

舞台旁边是Charity Majors,蜂窝的联合创始人兼首席技术官,她开始讲话时提出混沌工程“真的只是一个新的营销术语,用于测试产品”。 Majors认为,我们对软件开发生命周期的想法是在分布式系统时代“应该升级”,并讨论了虽然混沌工程非常有益,但工程师也应该投资于生产前测试。重申一整天讨论过的核心理念,她指出在团队中共享心理模型对于创建软件时的成功至关重要:

我们应该考虑像国家电网这样的分布式系统。它必须是模块化的。你无法在头脑中保持整个系统的准确模型

专业人士指出,混沌工程有一些先决条件,例如从基础层面理解你的系统,并且还有能力观察它:“没有可观察性,你就没有混沌工程。你只是有混乱“.Tammy Butow之前曾在QCon伦敦讨论过混沌工程的类似先决条件。

Architect to reduce MTTR

接下来,Google的Padma Gopalan提供了有关Google内部团队如何在灾难恢复培训(DiRT)中发挥作用的见解。 她开始讲述DiRT和混沌工程的概念如何分享许多相似之处,并且它们在相似的时间出现在共享的想法中。 Gopalan表示,工程师在谷歌运行DiRT会议的原因是,这使他们能够在紧急情况下遇到受控情景下的缓解和故障响应流程。 她分享了几个DiRT场景,其中一个例子如下所示:

DiRT at Google.

Gopalan还描述了“Catzilla”,一种自动化的DiRT工具,在Google内部使用(见下图)。

 

Catzilla -- automated DiRT tool at Google.

她继续说,在进行任何生产测试之前,工程师必须为他们的测试设定明确的目标,并确保逐步建立对故障注入方案的信心:“从1%失败开始,然后5%......或者测试 开发环境,然后升级,然后刺激“。 工程师必须关注支持服务水平目标(SLO)的客户体验,并确保能够检测和缓解面向客户的问题,并确保回滚快速运行。

Gopalan全天与许多其他发言人一致,他们表示,混沌工程在很大程度上是整个组织的努力,实验计划和时间以及缓解策略必须得到很好的沟通。

 

 

Article
知识星球
 
微信公众号
 
视频号