SRE. Рецепты выживания в продакшене для инженера по надежности. Наталья Савенкова

Читать онлайн.
Название SRE. Рецепты выживания в продакшене для инженера по надежности
Автор произведения Наталья Савенкова
Жанр
Серия
Издательство
Год выпуска 2024
isbn



Скачать книгу

пользователя. Скорость вашей рассылки сыграет здесь злую шутку – чем быстрее ваш очень производительный сервис всё отправит, тем больше одновременной нагрузки создадут мобильные клиенты на всю вашу систему.

      Осознайте, что будет происходить в таких сценариях, сколько нагрузки на кого будет создано, и поговорите с ними, чтобы они об этом знали и подготовились.

      19. Прогнозируйте неответы реалтаймовых источников

      Итак, мы подготовились к нашей рассылке, помогли подготовиться коллегам, чьи сервисы будем использовать в процессе обработки запросов. Выпускаем кракена!

      Вы завариваете себе ромашковый чай и начинаете удовлетворённо наблюдать за скоростью рассылки, за графиком растущего на ваш сервис трафика, несущего вам богатство… всё отлично!

      Система-то сложная – бэкенд ходит реалтайм в другие бэкенды (назовём их источники). В этот момент становится очень важно уметь различать ситуацию разового неответа источника на запрос от ситуации его полной поломки.

      В случае разового неответа повтор запроса (перезапрос) в источник даст нужный результат.

      А в случае полной поломки перезапрос может сделать ещё хуже. Например, если у него есть очередь, в которую ваш перезапрос будет заботливо сложен в ожидании обработки. Источник лежит – очередь растёт…

      Истинные джентльмены собирают статистику неответов и на основании неё считают вероятность успеха запроса: насколько хорошо отвечает источник в принципе за последний интервал времени. Назовём это "вероятность ответа". На основе этих данных вы можете предположить вероятность его ответа на текущий запрос. Если она мала, то, возможно, не стоит и пытаться.

      В этом смысле можно варьировать схемы, но суть не меняется – копите и анализируйте данные.

      20. Правильно экспериментируйте с сетью

      Современные приложения используют такую базовую сущность, как сеть передачи данных. Если вы, конечно, не делаете какое-то особое приложение, у которого требуется обеспечить сетевую изоляцию – в этом случае вам понадобятся другие советы.

      Каналы передачи данных имеют сразу несколько свойств, влияющих на работу вашей системы. Например, скорость передачи данных. В конце концов, она может работать, а может не работать. Частота отказов является таким же свойством вашей сетевой инфраструктуры.

      Если вы уже начали проводить испытания стабильности вашей системы, то скорее всего у вас уже есть нагрузочное тестирование, тестирование отключения каких-то компонентов. Следующий важный шаг – это изучение влияние работоспособности сети на работу вашей системы.

      Интересно, что разные ухудшения в сетевой инфраструктуре способны вызывать разные эффекты в вашей сложной системе. Например, при внезапном исчезновении сети во время обработки запроса один компонент может послать другому компоненту повторную попытку (перезапрос). Но в ситуации, когда один компонент начал получать данные на свой запрос, а сеть в это время отключилась,