bilibili《安全生产之B站混沌工程平台的建设与落地实践》

如何获得讲师PPT:

扫码关注公众号,后台回复Q117即可获得讲师PPT哟~

还能一键订阅后续精彩活动内容~

走出故障迷局的三重奏:逃生、复盘和推演

Q&A环节答疑:

1、混沌工程是如何控制生产环境的爆炸半径?

爆炸半径的控制主要分为两方面。首先,是事前控制,即在部署过程中,我们仅部署在单个可用区,这意味着在理想情况下,故障影响范围最多只涉及半个区域,从而大大减少了潜在的风险。其次,针对可能的需求情况,我们在半个区域内部署了隔离的资源池,确保混沌行为仅发生在特定资源池内,进一步缩小了影响范围。这两点通过精细的运营部署方式,严格地控制了爆炸半径。
此外,我们还采取了产品化的控制手段。在业务演练过程中,我们不直接提供用户拼凑演练参数的功能,以避免误操作对集群造成冲击,影响其他业务。相反,我们提供了两种选择方式:一是基于容器的机制,用户可以选择特定的容器或染色环境的容器,以控制爆炸半径;二是针对整体应用的演练,用户可以提前将流量切换到备用机法,确保在无流量的情况下进行演练,从而完全控制影响范围。
最后,我们还采取了兜底措施。我们接入了各种监控告警系统,一旦监控或告警出现异常,平台将立即终止所有实验,确保演练不会引发更广泛的问题。通过这种方式,我们全面保障了系统的稳定性和安全性。

2、实验撤销机制是怎么样的,怎么保证实验的影响能够被完全撤销?

实验本身的可撤销性是我们关注的重点,为此我们设立了巡检任务。巡检任务的核心在于持续监控实验的进展,确保其正常运行。一旦发现异常或实验不再需要,我们会立即执行销毁操作,确保实验不会继续运行。同时,我们采取了三重确认机制,即巡检、销毁和再巡检,以确保销毁操作确实成功执行。
然而,有时会出现销毁操作成功但实验仍然存在的问题,这可能是由于系统本身的故障或异常。在这种情况下,平台会触发告警机制,将问题推送到工作群,以便我们迅速进行人工介入。人工介入时,我们会利用BCM agent等工具,直接缩小问题范围,甚至登录到机器层面进行干预,以确保业务的快速恢复。
除了技术层面的保障,业务层面的问题也同样重要。例如,实验可能引入脏数据或导致数据异常,这类问题在撤销实验后可能仍然存在。因此,业务方需要自行制定保障措施,如灰度演练、流量切换或紧急预案等,以规避潜在风险。
在平台接入时,我们会向用户强调灰度演练的重要性,即先从影响较小的一两台机器开始实验,逐步扩大范围。这是因为实验的影响与业务影响并不完全等同,例如实验可能只是进行了流量调整,但对业务而言可能产生更大的影响。因此,通过灰度演练和流量控制等方式,业务方可以更好地规避潜在风险,确保业务的稳定运行。

本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。

(0)
上一篇 2024年4月22日 下午5:27

相关推荐

发表评论

登录后才能评论