Phân tích nguyên nhân gốc rễ (RCA) là gì?
Khi kiểm thử các bản phát hành quan trọng mới, đôi khi, những lỗi mới trong môi trường sản xuất sẽ khiến bạn ngạc nhiên. Tại sao lại như vậy? Đã xảy ra sai sót ở đâu? Không phải lúc nào môi trường kiểm thử cũng sát với quá trình sản xuất như bạn mong đợi. Môi trường này có thể trải qua nhiều thay đổi về cơ sở hạ tầng mà không được ghi lại, từ đó dần xuất hiện sai lệch giữa các môi trường.
Quá trình khắc phục sự cố tốn rất nhiều thời gian. Tìm hiểu cách khắc phục sự cố nhanh hơn là một trong những khoản đầu tư tối ưu của bạn trong vai trò nhà phát triển phần mềm.
Phân tích nguyên nhân gốc rễ (RCA) là một kỹ thuật đặc thù bạn có thể sử dụng để khắc phục vấn đề. Với kỹ thuật này, bạn có thể phân tích sự cố mình gặp phải bằng cách sử dụng một tập hợp các bước cụ thể để xác định nguyên nhân chính gây ra vấn đề. RCA dựa trên nguyên tắc như sau: nếu chỉ chú trọng đến dấu hiệu của vấn đề mà bỏ qua gốc rễ thì sẽ không mang lại hiệu quả.
Phân tích nguyên nhân gốc rễ có những lợi ích gì?
Phân tích nguyên nhân gốc rễ (RCA) là một kỹ thuật đặc thù bạn có thể sử dụng để khắc phục vấn đề. Với kỹ thuật này, bạn có thể phân tích sự cố mình gặp phải bằng cách sử dụng một tập hợp các bước cụ thể để xác định nguyên nhân chính gây ra vấn đề. RCA dựa trên nguyên tắc như sau: nếu chỉ chú trọng đến dấu hiệu của vấn đề mà bỏ qua gốc rễ thì sẽ không mang lại hiệu quả.
Làm cách nào để tôi bắt đầu phân tích nguyên nhân gốc rễ?
Giải thích vấn đề
Sử dụng phương pháp rubber duck (gỡ lỗi vịt cao su) để giải thích vấn đề của bạn một cách đơn giản. Thông qua hoạt động giải thích điều gì đó, bạn buộc phải sắp xếp suy nghĩ của mình. Jeff Atwood, người đồng sáng lập của trang web hỏi đáp nổi tiếng Stack Overflow, nói về số lần một nhà phát triển phần mềm đã kể ông nghe về việc viết một câu hỏi mới lên trang web, tự bản thân họ tìm ra câu trả lời trong quá trình viết câu hỏi và chưa bao giờ thực sự gửi câu hỏi lên trang web.
Hãy thử những phương pháp sau để giúp bạn diễn giải vấn đề một cách đơn giản:
- Viết câu hỏi trên trang Stack Overflow ngay cả khi bạn không bao giờ gửi câu hỏi đó.
- Gửi báo cáo lỗi chi tiết.
- Giải thích cho đồng nghiệp.
Thu thập dữ liệu bản ghi (và tìm kiếm trong dữ liệu bản ghi một cách hiệu quả)
Tiếp theo, hãy thu thập thêm dữ liệu về vấn đề rồi trích xuất thông tin chuyên sâu từ dữ liệu đó. Việc lập bản ghi và giám sát sẽ có ích trong trường hợp này, bao gồm bản ghi sự cố, bản ghi ứng dụng và máy chủ, v.v. Bạn phải thu thập bằng chứng về việc vấn đề đã xảy ra đồng thời, nếu có thể, phải tìm hiểu xem vấn đề xảy ra trong bao lâu với tần suất ra sao.
Trong tất cả dữ liệu đó, bạn cần nhanh chóng tìm ra các điểm dữ liệu cụ thể. Các công cụ có thể giúp bạn tìm kiếm và phân tích dữ liệu bản ghi đã và đang được bạn thu thập và biến dữ liệu đó thành thông tin chuyên sâu để chẩn đoán và giải quyết vấn đề nhanh hơn.
Sử dụng kỹ thuật “năm tại sao”
Tiếp theo, hãy xác định yếu tố nhân quả – nguyên nhân trực tiếp dẫn đến vấn đề bạn gặp phải. Đừng chỉ xác định một yếu tố nhân quả rồi sau đó dừng lại. Bạn phải đi sâu tìm hiểu với kỹ thuật năm tại sao. Hãy liên tục đặt câu hỏi “tại sao?” cho đến khi bạn tìm ra gốc rễ của vấn đề. Ví dụ: trang web của bạn đang hiển thị lỗi 500.
- Tại sao lại như vậy? Bởi vì thành phần định tuyến của khung trang web gặp trục trặc.
- Tại sao lại như vậy? Bởi vì trang web đòi hỏi một thành phần khác mà chính bản thân trang web gặp trục trặc.
- Tại sao lại như vậy? Bởi vì thành phần này của khung trang web đòi hỏi tiện ích mở rộng intl mà tiện ích này không hoạt động.
- Tại sao lại như vậy? Bởi vì trang web tình cờ bị vô hiệu hóa sau khi phần mềm máy chủ được cập nhật.
Tất nhiên, bạn có thể tìm ra vấn đề gốc rễ với ít bước hơn. Hoặc thậm chí bạn có thể cần nhiều bước hơn.
Kiểm tra lại
Giống như việc xem xét mã, hãy nhờ một ai đó khác và trung lập xem qua mã của bạn. Cùng với thời gian, kỳ vọng đặt vào việc xem xét sẽ giúp bạn tinh chỉnh quy trình của mình. Hoặc tốt hơn hết, hãy thực hiện khắc phục vấn đề theo đôi.
AWS có thể hỗ trợ phân tích nguyên nhân gốc rễ của bạn như thế nào?
Một trong những dịch vụ chính của AWS để phân tích nguyên nhân gốc rễ là giúp bạn tải nhập và phân tích dữ liệu bản ghi. Về phần này, chúng tôi đề xuất sử dụng Dịch vụ OpenSearch của Amazon. Amazon OpenSearch Service giúp bạn dễ dàng thực hiện phân tích nhật ký tương tác, giám sát ứng dụng trong thời gian thực, tìm kiếm trên trang web, v.v. OpenSearch là một bộ phần mềm phân tích và tìm kiếm phân tán, mã nguồn mở bắt nguồn từ Elasticsearch. Dịch vụ OpenSearch của Amazon mang lại tính năng tìm kiếm, giám sát và phân tích dữ liệu kinh doanh và vận hành một cách an toàn theo thời gian thực cho các trường hợp sử dụng như giám sát ứng dụng, phân tích bản ghi, khả năng quan sát và tìm kiếm trang web.
Bắt đầu với phân tích nguyên nhân gốc rễ trên AWS bằng cách tạo tài khoản ngay hôm nay.