混沌工程:通过可控故障实验提升软件系统可靠性
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

The Translator's Words
译者序

如果五年前问一个软件工程师什么是“混沌工程”,我想对方大概率会一脸茫然。随着软件系统越来越庞大和复杂,工程师们需要面对更大的挑战,尤其是如何保证系统在应对非正常情况时表现如常。传统的单元测试和集成测试已经无法保证系统的质量,越来越多的工程师开始寻求新的测试理念和方法,这就需要混沌工程。

我所就职的PingCAP公司主要开发分布式的HTAP数据库TiDB。对于数据库这样的软件来说,它存储了用户最重要的资产——数据,因此保证数据库的容错性和正确性的重要意义也就不言而喻了。从TiDB开发伊始,我们就引入了混沌工程,几年来也积累了很多经验,并在2020年开源了我们的混沌工程平台Chaos Mesh。我在参与Chaos Mesh的开发时,参考了一些已出版的混沌工程相关的书籍,然而大部分书籍更多的是介绍混沌工程的理念、原则以及一些案例,对于如何去实践以及实现具体的故障功能,我只能摸着石头过河。幸运的是,Mikolaj的这本书有这方面的内容。在开发Chaos Mesh的JVM故障功能时,我就参考了本书的内容,受益匪浅。

Mikolaj是知名的混沌工程测试工具PowerfulSeal的创造者,在混沌工程领域有着丰富的经验和独特的见解。本书涉及的技术栈非常广,从Linux到Web应用程序,从Docker到Kubernetes,作者都设计了巧妙的案例,并提供了实施混沌工程的具体技术和方法。因此,大部分软件从业者都可以从本书中找到和工作相关的内容。不仅如此,作者还将混沌工程结合到团队管理中。

很荣幸可以承担本书的翻译工作,我从中学到了很多新的知识,也从作者风趣幽默的文字中感受到了很多乐趣。然而正如前面所说,这本书涉及的面很广,我很难对各个方面都有深入的了解,再加上精力有限,译文中难免会有错误,希望读者可以帮助指正。

最后,希望我的翻译工作能为混沌工程在国内的推广做些微薄的贡献。

王相

2022年3月27日于杭州