什么是根本原因分析?
在测试新的主要版本时,在生产环境中有时会惊讶地发现一些新错误。为什么? 出现了什么问题? 测试环境并非始终如您期待的那样接近于生产。可能会对环境进行基础设施更改而不做文档记录,这导致环境慢慢发生偏离。
解决这些缺陷非常耗时。作为软件开发人员,了解更快地排除故障是最佳投资之一。
根本原因分析(RCA)是一种可以用来排除问题的特定技术。利用这种技术,您可以使用一组特定的步骤分析手头的问题,以确定问题的主要原因。RCA 基于如下原则:只关注问题的症状而忽略问题根源毫无意义。
根本原因分析有哪些好处?
根本原因分析(RCA)是一种可以用来排除问题的特定技术。利用这种技术,您可以使用一组特定的步骤分析手头的问题,以确定问题的主要原因。RCA 基于如下原则:只关注问题的症状而忽略问题根源毫无意义。
我如何开始进行根本原因分析?
解释问题
使用橡皮鸭方法(橡皮鸭调试)简单解释您的问题。解释问题后,您会自然地整理思路。Jeff Atwood 是热门问答站点 Stack Overflow 的联合创始人,他谈到,软件开发人员好多次告诉他,在站点上写新问题,在此过程中自己找出答案,但从来没有实际提交问题。
尝试以下方法,帮助您简单阐述问题:
- 写下一个 Stack Overflow 问题,即使您从未提交。
- 提交详细的错误报告。
- 向同事解释。
收集日志数据(并有效地进行搜索)
然后,收集有关问题的更多数据,并从中提取洞察。在这里,日志记录和监控可以派上用场,比如崩溃日志、应用程序和服务器日志等等。您必须收集问题发生的证据,但如果可能的话,也要找出问题的持续时间和频率。
在所有数据中,您需要快速找到具体的数据点。工具可帮助您搜索和分析收集的日志数据,并且快速转化为诊断和解决问题所需的洞察。
利用“五问法”技巧
然后,确定起因,即当前问题的直接原因。切勿确定一个起因后即停止。必须利用“五问法”继续探究。以迭代的方式询问“为什么?”,直到找到问题的根源。例如,您的网站显示错误 500。
- 为什么? 因为 Web 框架的路由组件出现故障。
- 为什么? 因为它需要另一个组件,而这个组件本身出现了故障。
- 为什么? 因为 Web 框架的这个组件需要 intl 扩展,但该扩展不起作用。
- 为什么? 因为它在服务器软件更新后意外停用了。
当然,用更少的步骤就可以找到根本问题。或者您可能需要更多步骤。
让他人审查
例如代码审查,可以让另一位不带偏见的人员检查您的代码。随着时间的推移,期待审查会帮助您优化这一流程。或者更好的办法是:结对解决问题。
AWS 如何支持您的根本原因分析?
AWS 为根本原因分析提供的主要服务之一是,帮助您摄取和分析日志数据。为此,建议您使用 Amazon OpenSearch Service。 Amazon OpenSearch Service 可让您轻松执行交互式日志分析、实时应用程序监控、网站搜索等工作。 OpenSearch 是一款开源的分布式搜索和分析套件,衍生自 Elasticsearch。 Amazon OpenSearch Service 可以安全地实时搜索、监控和分析业务和运营数据,适合应用程序监控、日志分析、可观察性和网站搜索等使用案例。
立即创建账户,开始在 AWS 上使用根本原因分析。