Что такое анализ первопричин (Root Cause Analysis, RCA)?
Что такое анализ первопричин (RCA)?
Когда вы тестируете новые крупные релизы, вы иногда можете быть удивлены появлением новых ошибок в производственной среде. Почему? Что пошло не так? Испытательные среды не всегда бывают настолько близки к производственным, как вы надеетесь. Изменения инфраструктуры могут быть внесены в среду без документального подтверждения, в результате чего среды постепенно отдаляются друг от друга.
Устранение дефектов отнимает много времени. Научиться быстрее устранять неполадки – одна из лучших инвестиций, которые вы можете сделать как разработчик программного обеспечения.
Анализ первопричин (RCA) – это особая техника, которую можно использовать для устранения проблем. С помощью него вы анализируете проблему, используя определенный набор шагов для поиска основной причины. В основе RCA лежит принцип, согласно которому бесполезно устранять симптомы проблемы, игнорируя ее истоки.
Каковы преимущества анализа первопричин?
Анализ первопричин (RCA) – это особая техника, которую можно использовать для устранения проблем. С помощью него вы анализируете проблему, используя определенный набор шагов для поиска основной причины. В основе RCA лежит принцип, согласно которому бесполезно устранять симптомы проблемы, игнорируя ее истоки.
Как приступить к анализу первопричины?
Объясните суть проблемы
Используйте метод «резиновая утка» (отладка по принципу «резиновая утка»), чтобы просто объяснить свою проблему. Объясняя что-то, вы будете вынуждены упорядочить свои мысли. Джефф Этвуд, сооснователь популярного сайта вопросов и ответов Stack Overflow, рассказывает о том, сколько раз разработчик программного обеспечения рассказывал ему о том, как написать новый вопрос на сайте, найти ответ на него самостоятельно и никогда не задавать вопрос.
Попробуйте использовать следующие подходы, которые помогут вам просто сформулировать проблему:
- Напишите вопрос Stack Overflow - даже если вы никогда его не отправите.
- Составьте детализированный отчет об ошибках.
- Объясните это коллеге по работе.
Соберите данные журнала (и выполните эффективный поиск в нем)
Затем соберите больше данных о проблеме и сделайте из них выводы. Здесь могут пригодиться записи журналов и мониторинг: журналы сбоев, журналы приложений и серверов и все, что у вас имеется. Необходимо собрать доказательства возникновения проблемы, а также выяснить, если возможно, как долго она появлялась и с какой частотой.
Среди всех этих данных вам нужно быстро найти конкретные сведения. Инструменты помогают искать и анализировать собранные данные журналов и превращать их в аналитические данные, позволяющие быстрее диагностировать и устранять проблемы.
Используйте технику «пяти почему»
Затем следует определить «причинный фактор» – непосредственную причину рассматриваемой проблемы. При этом не следует выявлять только один причинно-следственный фактор, а затем останавливаться. Вы должны пойти дальше, используя технику «пяти почему». Задавайте вопросы «почему?» последовательно, пока не доберетесь до корня проблемы. Например, ваш сайт показывает ошибку 500.
- Почему? Потому что маршрутизатор веб-платформы вышел из строя.
- Почему? Потому что для работы ему требуется другой компонент, который также неисправен.
- Почему? Потому что для этого компонента веб-платформы требуется расширение intl, которое не работает.
- Почему? Потому что оно было случайно отключено после обновления программного обеспечения сервера.
Конечно, до основной проблемы можно добраться за меньшее количество шагов. Или за большее.
Найдите дополнительную пару глаз
Подобно обзору кода, попросите другого, непредвзятого человека взглянуть на ваш код. Со временем предвкушение проверки поможет вам усовершенствовать свой процесс. Или, что еще лучше, займитесь устранением проблем вдвоем.
Как AWS может помочь вам в анализе первопричин?
Одним из основных предложений AWS для анализа первопричин является помощь в получении и анализе данных журналов. Для этого мы рекомендуем Сервис Amazon OpenSearch. Сервис Amazon OpenSearch упрощает интерактивный анализ журналов, мониторинг приложений в режиме реального времени, поиск на веб-сайтах и многие другие процессы. OpenSearch – это комплект с открытым исходным кодом для распределенного поиска и аналитики, созданный на базе Elasticsearch. Сервис Amazon OpenSearch безопасно разблокирует функции поиска в режиме реального времени, мониторинга и анализа деловых и операционных данных для таких примеров использования, как мониторинг приложений, аналитика журналов, отслеживание и поиск на веб-сайтах.
Начните анализ первопричин на AWS, создав аккаунт уже сегодня.