1. Инструменты
Нет никаких способов отладки отключения, если нет способа извлечь информацию из ваших систем. Вам понадобится какая-то инструмент, чтобы дать вам представление о том, что происходит на внутренней стороне ваших систем. Это может быть максимально базовым, как файлы журнала, или как продвинуты как некоторые из удивительных инструментов наблюдаемости, которые существуют в наши дни.
Я ясно помню, как он подавляет для меня, как новый разработчик, чтобы попытаться перемещаться по инструментам, которые у нас есть. Потребовалось довольно некоторое время, прежде чем я был несколько удобным с поиском наших журналов. Есть просто так много информации, может быть трудно узнать, с чего начать.
Один из способов вы можете получить более комфортно с вашим инструментом, делая небольшие упражнения. На прошлой неделе я организовал сеанс для моей команды именно этой целью. Они получили целый список вопросов о наших приложениях и должны были найти ответ. Сколько запросов мы служили последний день? Сколько из них не удалось? Какая была наиболее распространенная разбойная причина?
Это достигает трех вещей:
- Вам придется ориентироваться на пользовательских интерфейсах ваших инструментов наблюдаемости
- Вам придется найти правильную информацию, чтобы посмотреть, Будь то оповещения, приборные панели или метрики
- Вы узнаете, насколько хорошо вы можете интерпретировать информацию, которую вы получите от своих инструментов
Делать это в ситуации, когда нет давления, может быть очень ценным.
Совет 1: Удобно с вашими инструментами
2. Инфраструктура
Как только я был частью длительного отключения нашего интернет-магазина. Воздействие было значимым, весь сайт был вниз. Мы не видели никаких запросов на наших балансировщиках нагрузки, тем временем все наши клиенты получают страницы ошибок.
Никто из нас точно не знал, как наша заявка работала с этой точки зрения. Мы часто отладки производственных вопросов, исходящих из нашего приложения, но все, что произошло между браузером клиента, и наше приложение, было несколько неизвестно.
Из-за этого отключение продолжалось довольно долго. К тому времени, когда мы нашли проблему, мы уже были несколько часов в отключении. С лучшей пониманием всей всей инфраструктуры воздействие было бы ниже.
Быстрый обзор вашего приложения, документированного где-то может сделать все разницу. Знание того, как взаимодействуют компоненты вашего приложения, имеют решающее значение, особенно потому, что большинство проблем возникают при соединениях между компонентами.
Совет 2: Знай свою инфраструктуру
3. Эксперимент
Это очень полезно подходить к отладке методичным способом. Свободный Инженерная книга по надежности сайта Google Погрузив в много деталей о том, как вы можете убедиться, что ваши усилия по отладке эффективны.
Общая идея очень похожа на научный эксперимент. На каждом шагу вы формулируете гипотезу на основе информации, которую вы имеете. Затем вы проверяете, является ли эта гипотеза верна. Исходя из новой информации, которую вы только что получили, вы повторите процесс. Этот структурированный подход помогает, потому что он предотвращает создание предположений о том, что происходит.
Совет 3: Гипотезирование объяснения, проверьте эту гипотезу, повторить
4. Суммировать
Неизбежно, вы застряли в отладке в какой-то момент. Это может быть трудно иметь дело, особенно если вы чувствуете давление от чего-то сломанного.
Это время, чтобы обобщить то, что вы узнали о проблеме до сих пор. Это действительно помогает, если есть кто-то еще, поэтому они могут проверить ваше резюме для пробелов или несоответствий. Это также может помочь записать все, что вы узнаете о проблеме. Это делает его действительно легко пройти через него снова и может быть действительно интересным для оценки, например, пост-вскремя.
Вы заметите, когда вы сделаете это, вы всегда будете иметь одну из пару результатов:
- Вы упоминаете два наблюдения, которые, кажется, противоречат друг другу:
В журналах приложений нет ошибок, но я получаю страницу ошибки, когда я делаю запрос - Вы замечаете, что есть что вы еще не смотрели:
Приложение больше не может говорить с нашей базой данных, мы ничего не изменили в нашей конфигурации? - Ваши наблюдения указывают на очевидный вывод:
База данных выглядит нормально, но балансировщик нагрузки показывает ошибки, поэтому проблема, вероятно, в приложении
Во всех случаях будет легче подумать о следующей вещью расследовать.
Совет 4: При защелке, суммируйте то, что вы знаете
5. Упражняться
Скорее всего, ваши приложения не случайно ломаются каждый день. Во многих случаях существует множество безопасных охранников для предотвращения отключений ваших приложений. Это может означать, что вы выходите из сенсорных с нынешней архитектурой, наблюдаемости, инструменты для приборных панелей и метрик.
Это одна из причин, почему Pagerduty имеет еженедельный «Сбой пятницы» Отказ В них они моделируют переходы контролируемым образом. Таким образом, вы гарантируете регулярно посмотреть на производственные системы. Вы можете сохранить свои знания о системах, которые вы не трогаете, что часто свежие, и вы можете оставаться в курсе текущей настройки приложений, которые часто меняются.
Совет 5: Имитация отходов, чтобы оставаться на связи с производством
Оригинал: «https://dev.to/raoulmeyer/5-tips-on-debugging-a-production-outage-5gk7»