在测试新的主要版本时,在生产环境中有时会惊讶地发现一些新错误。为什么? 出现了什么问题? 测试环境并非始终如您期待的那样接近于生产。可能会对环境进行基础设施更改而不做文档记录,这导致环境慢慢发生偏离。

解决这些缺陷非常耗时。作为软件开发人员,了解更快地排除故障是最佳投资之一。

什么是根本原因分析?

根本原因分析(RCA)是一种可以用来排除问题的特定技术。利用这种技术,您可以使用一组特定的步骤分析手头的问题,以确定问题的主要原因。RCA 基于如下原则:只关注问题的症状而忽略问题根源毫无意义。

根本原因分析有哪些好处?

根本原因分析(RCA)是一种可以用来排除问题的特定技术。利用这种技术,您可以使用一组特定的步骤分析手头的问题,以确定问题的主要原因。RCA 基于如下原则:只关注问题的症状而忽略问题根源毫无意义。

我如何开始进行根本原因分析?

解释问题

使用橡皮鸭方法(橡皮鸭调试)简单解释您的问题。解释问题后,您会自然地整理思路。Jeff Atwood 是热门问答站点 Stack Overflow 的联合创始人,他谈到,软件开发人员好多次告诉他,在站点上写新问题,在此过程中自己找出答案,但从来没有实际提交问题。

尝试以下方法,帮助您简单阐述问题:

  1. 写下一个 Stack Overflow 问题,即使您从未提交。
  2. 提交详细的错误报告。
  3. 向同事解释。

收集日志数据(并有效地进行搜索)

然后,收集有关问题的更多数据,并从中提取洞察。在这里,日志记录和监控可以派上用场,比如崩溃日志、应用程序和服务器日志等等。您必须收集问题发生的证据,但如果可能的话,也要找出问题的持续时间和频率。

在所有数据中,您需要快速找到具体的数据点。工具可帮助您搜索和分析收集的日志数据,并且快速转化为诊断和解决问题所需的洞察。

利用“五问法”技巧

然后,确定起因,即当前问题的直接原因。切勿确定一个起因后即停止。必须利用“五问法”继续探究。以迭代的方式询问“为什么?”,直到找到问题的根源。例如,您的网站显示错误 500。

  1. 为什么? 因为 Web 框架的路由组件出现故障。
  2. 为什么? 因为它需要另一个组件,而这个组件本身出现了故障。
  3. 为什么? 因为 Web 框架的这个组件需要 intl 扩展,但该扩展不起作用。
  4. 为什么? 因为它在服务器软件更新后意外停用了。

当然,用更少的步骤就可以找到根本问题。或者您可能需要更多步骤。

让他人审查

例如代码审查,可以让另一位不带偏见的人员检查您的代码。随着时间的推移,期待审查会帮助您优化这一流程。或者更好的办法是:结对解决问题。

AWS 能为根本原因分析提供什么?

AWS 为根本原因分析提供的主要服务之一是,帮助您摄取和分析日志数据。为此,建议您使用 Amazon OpenSearch Service

了解有关 Amazon OpenSearch Service 定价的更多信息

访问定价页面
准备好开始构建了吗?
开始使用 Amazon OpenSearch Service
还有更多问题?
联系我们