指导工具选择的需求
本节课讨论了选择合适工具使用的相关要求。
选择工具的要求
在开始定义和运行混沌实验之前,我们需要先选择一个工具。混沌工程目前尚不是一个成熟且发展完善的市场领域。尽管如此,我们仍有一些可用的工具可供选择。我们无法使用所有工具,至少在这门课程中不行。那样会耗费太多时间,课程将永远无法结束。因此,我们只能从中挑选一个。
在选择工具之前,让我们先了解几个我认为重要的要求。
开源
该工具必须是开源的。我非常相信开源的价值。这并不意味着我们使用的每样东西都必须是开源的。在某些情况下,使用软件的企业版或服务是合适的。但在本课程中,我希望确保所选工具是免费且开放的。因此,开源是本课程的基本要求。
支持 Kubernetes 内外运行
只要可行且实用,该工具应在 Kubernetes 内部和外部都能运行。虽然本课程聚焦于 Kubernetes,但如果能选择一个不仅能在 Kubernetes 内部,也能在外部进行混沌工程的工具,那就更好了。你可能需要直接破坏节点,或者调整集群及整体基础设施的其他方面。
为什么我们聚焦于 Kubernetes?
这引出了一个问题:既然我们希望工具能在 Kubernetes 内外都适用,为何还要专注于 Kubernetes 呢?如果我演示如何在 AWS 上进行混沌工程,你可能会说需要 Azure 的示例;或者你更倾向于 Google Cloud,或是基于 VMware 的本地集群。为所有这些(以及其他)平台提供示例几乎是不可能的,那将需要开设多门课程。因此,我不想局限于某个特定的托管平台(例如仅限 AWS 或仅限 Azure),因为那样会缺乏包容性。我希望课程的覆盖面尽可能广泛。所以,课程聚焦于 Kubernetes,因为它几乎可以在任何地方运行。你在本课程中学到的内容,在大多数 Kubernetes 发行版和任意云服务商上基本都能适用。