Skip to Content
混沌工程
book

混沌工程

by Casey Rosenthal, Nora Jones
July 2025
Intermediate to advanced
308 pages
3h 7m
Chinese
O'Reilly Media, Inc.
Content preview from 混沌工程

第 3 章 原则概述 原理概述

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

在 Netflix 混沌工程的早期,人们并不清楚这门学科究竟是什么。当时有一些关于拔线、破坏东西或在生产中进行测试的口头禅,有许多关于如何使服务可靠的误解,而实际工具的例子却寥寥无几。混沌团队的成立就是为了创建一门有意义的学科,一门通过工具主动提高可靠性的学科。我们花了几个月的时间研究弹性工程和其他学科,以便为其他人如何参与混沌工程提出一个定义和蓝图。这个定义被作为一种宣言放到了网上,被称为 "原则"。(参见导言:关于混沌工程的起源,请参阅《导言:混沌的诞生》)。

与任何新概念一样,混沌工程有时也会被误解。下文将探讨混沌工程学的内涵外延。在"高级原理 "一节中,我们将介绍这一实践的黄金标准最后,我们来看看哪些因素会改变未来的原则。

什么是混沌工程

"原则 "定义了 这一学科,让我们知道何时在做混沌工程,如何做,以及如何做好。如今, 混沌工程的通用定义是 "促进实验以发现系统弱点"。"原理 "网站概述了 实验步骤如下:

  1. 首先,将 "稳定状态 "定义为系统的某些可测量输出,表明系统行为正常。

  2. 假设这种稳定状态在对照组和实验组中都将持续。

  3. 引入反映现实世界事件的变量,如服务器崩溃、硬盘故障、网络连接中断等。

  4. 通过寻找对照组和实验组在稳定状态方面的差异,尝试推翻假设。

这种实验构成了混沌工程的基本原则。根据设计,如何实施这些实验有很大的自由度。

实验与测试

在 Netflix,我们发现有必要首先区分的一点是,混沌工程是一种实验,而不是测试。可以说,两者都属于 "质量保证 "的范畴,但这个词在软件行业往往有负面含义。

Netflix 的其他 团队一开始会问混沌团队这样的问题:"你们就不能写一堆寻找同样东西的集成测试吗?这种想法在理论上是务实的,但在实践中却无法通过集成测试获得理想的结果。

严格来说,测试并不能创造新的知识。测试要求编写测试的工程师知道他们要寻找的系统的特定属性。如前一章所述,复杂系统对这种分析是不透明的。人类根本无法理解复杂系统中各部分之间所有可能的相互作用所产生的所有潜在副作用。这就引出了测试的一个关键特性。

测试根据现有的知识作出断言,然后运行测试,将断言的效力折叠起来,通常分为真或假。测试是对系统已知属性的陈述。

而实验则是创造新知识。实验提出一个假设,只要这个假设没有被推翻,人们就会对这个假设越来越有信心。如果假设被推翻,我们就会学到新知识。这就开启了探究,以找出我们的假设为什么是错的。在一个复杂的系统中,事情发生的原因往往并不明显。实验要么能建立信心,要么能让我们了解自己系统的新特性。这是一种对未知的探索。

在实践中,再多的测试也比不上从实验中获得的洞察力,因为测试需要人类提前提出断言。实验正式引入了一种发现新特性的方法。发现系统的新特性,完全可以将其转化为测试。这也有助于将对系统的新假设编码为新假设,从而创建类似于 "回归实验 "的东西,探索系统随时间的变化。

由于混沌工程诞生于复杂的系统问题,因此这门学科必须体现实验而非测试。从探索大规模系统可用性漏洞的角度来看,"原则 "中提炼的四个实验步骤大致符合公认的定义。

将之前概述的步骤应用于大规模系统的实际经验以及深思熟虑的反省相结合,促使 "混沌团队 "将实践推向深入,而不仅仅是实验。这些洞察力成为了 "高级原则",指导各团队的混沌工程计划走向成熟,并帮助制定了我们可以向往的黄金标准。

验证与确认 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

超越Vibe编程

超越Vibe编程

Addy Osmani
精益AI

精益AI

Lomit Patel
低代码AI

低代码AI

Gwendolyn Stripling, Michael Abel
生成式人工智能可视化

生成式人工智能可视化

Priyanka Vergadia, Valliappa Lakshmanan

Publisher Resources

ISBN: 9798341662919