第五部分 进化
根据定义,人类无法很好地理解一个复杂的系统,从而对其输出做出准确的预测。混沌工程当然也是一个复杂的系统,它的实践、需求和商业环境相互影响。尽管如此,已经出现了明确的趋势,勾勒出这一实践的未来方向及其在更广泛行业中的地位。本书的这一部分讲述了这些趋势。
本部分的第一章,即第16章"持续验证",将混沌工程置于一个更大的软件实践类别中。"与 CI/CD(持续集成/持续交付)一样,该实践也是出于驾驭日益复杂的系统的需要而诞生的。企业没有时间或其他资源来验证系统的内部机制是否按预期运行,因此他们转而验证系统的输出是否符合预期。"许多公司已经接受了 "持续验证"(CV)这一术语,并且对 "CI/CD/CV "全套实践的兴趣与日俱增,尤其是在大规模运行软件系统的公司。
下一章,即第 17 章"让我们进入网络物理系统",将从软件半步跨入网络物理系统(CPS)的硬件领域。"事实证明,当你把大量经验丰富的跨学科人员聚集在一起,在足够长的时间内开展类似于[失效模式及影响分析]这样的活动时,他们实际上做得相当不错,他们的经验和迭代器的数量足以挤出非常多的不确定性"。内森-阿什巴赫(Nathan Aschbacher)探讨了在结果会对我们周围的物理世界产生直接影响,甚至可能关系到生死存亡的情况下,CPS 需要考虑的问题。
在第 18 章"HOP 遇到混沌猴 "中,Bob Edwards 将 我们带出了软件世界,带入了制造业。人类与组织绩效(HOP)改进制造业系统的方法与混沌工程学有着许多共同的基础,这种重叠可以帮助我们了解我们领域的实践。"混沌工程方法教我们修改模拟控制室的参数和软件,以便在模拟中更好地体现现场的实际退化状态"。
对于软件工程师来说, ,大多数混沌工程实践都集中在应用层。关于堆栈中另一层的视角,我们有数据库公司 PingCap 的 Liu Tang 和 Hao Weng 撰写的第 19 章"数据库上的混沌工程"。本章是全书技术深度最深的一章,带领我们了解混沌工程在数据库TiDB中的应用,以提高其容错特性。"在 TiDB 中,我们应用混沌工程学观察系统的稳定状态,提出假设,进行实验,并用实际结果验证这些假设"。
这部分的最后一章将我们带入了网络安全领域。在亚伦 Rinehart 的第20 章"安全混沌工程案例 "中,我们看到了混沌工程在安全方面的应用,从系统安全的角度来看,安全是可用性的另一面。如今,人们在讨论混沌工程时,大多从可靠性和正常运行时间的角度进行讨论。随着亚伦进入这一领域,这种情况可能很快就会改变。在不久的将来,混沌工程可能会在安全领域大显身手。
在各个行业和学科中,混沌工程学都找到了立足点,并影响着人们对复杂系统安全特性的理解。本书这一部分的章节将阐明其中的几个角落。