【发布时间】:2019-04-10 17:19:06
【问题描述】:
我有 28 个微服务,其中一些是相互通信的。它们都是用 SpringBoot 2x 构建的,它们使用自己的资源(数据库、rabbitmq 等)。它们部署在 PCF 中。
我需要找出整个系统的弱点。那是我求助于混沌工程的时候。由于这是我的第一次,我可以就如何设计工作、我应该收集哪些指标、我可以使用的工具、我应该运行此类测试多长时间等方面提供一些帮助。
TIA
【问题讨论】:
我有 28 个微服务,其中一些是相互通信的。它们都是用 SpringBoot 2x 构建的,它们使用自己的资源(数据库、rabbitmq 等)。它们部署在 PCF 中。
我需要找出整个系统的弱点。那是我求助于混沌工程的时候。由于这是我的第一次,我可以就如何设计工作、我应该收集哪些指标、我可以使用的工具、我应该运行此类测试多长时间等方面提供一些帮助。
TIA
【问题讨论】:
完成我的研究。将其发布在这里,以便其他人可能会发现它有用。
非常好的介绍,包括如何开始你的第一个混沌实验:https://www.gremlin.com/community/tutorials/chaos-engineering-the-history-principles-and-practice/
对进行混沌实验的人员、工具和公司进行了很好的总结: https://coggle.it/diagram/WiKceGDAwgABrmyv/t/chaos-engineeringcompanies%2C-people%2C-tools-practices/0a2d4968c94723e48e1256e67df51d0f4217027143924b23517832f53c536e62
工具:
大三角帆:https://www.spinnaker.io/。 Netflix Chaos Monkey 不支持由 Spinnaker 以外的任何机构管理的部署。这使得使用 Netflix 的 Chaos Monkey 变得非常困难。
SpringBoot 的 ChaosMonkey:https://docs.chaostoolkit.org/drivers/cloudfoundry/。非常容易遵循说明。使用 Spring 配置文件轻松打开/关闭。
混沌工具包 - https://docs.chaostoolkit.org/drivers/cloudfoundry/。这个工具对我的情况特别有帮助,因为我的应用程序部署在 Cloud Foundry 中,并且这个工具有一个 CloudFoundry 扩展。相当精致,但易于遵循说明。到目前为止我最喜欢的工具。
混沌狐猴 - https://content.pivotal.io/blog/chaos-lemur-testing-high-availability-on-pivotal-cloud-foundry。这个工具有承诺,但网络管理员不会共享 AWS 凭证让我使用 Pivotal 单元。
【讨论】:
您已经找到了 Chaos Toolkit,这是我推荐用于实际实验的工具包,尤其是刚开始时。
Chaos 的基础是您需要在开始之前对其进行计划并进行适当的分析。然后你需要找出你需要什么样的信息来监控实验的结果。如果我们实现延迟,服务 X 会发生什么?监控请求、错误等。是否存在功能降级状态或只是死机?
您的问题非常广泛,因此很难回答。
确保在开始实验时尝试防止级联故障,并且始终设置停止以终止实验并在出现严重问题时回滚所有内容。
【讨论】: