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

Чтение книги онлайн.

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

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

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

вот другая история: один из источников данных начал отдавать сломанный json, на котором ломался парсер и всё падало.

      Или вот ещё история: один из источников по ошибке начал отдавать такой объём данных в ответе, что в цепочке передачи данных переполнялся один из буферов и снова всё падало.

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

      Мораль такова: вообще не знаешь, что и где может произойти, поэтому подготовиться к этому невозможно.

      Решение: умейте отключать компоненты в системе. Это намного быстрее, чем собрать и выкатить релиз. Достаточно найти место, которое всё ломает и выключить его, а потом спокойно заниматься решением проблемы, фиксами и релизами.

      Для реализации такой штуки есть разные способы:

      – админка, через которую вы можете управлять конфигами

      – база данных, в которой лежит конфигурация (это удобно, но менее надёжно)

      – система управления конфигами, типа Ansible

      – файлик в хранилище файлов, который вы туда руками положили, а бекенд его скачивает иногда

      – в конце концов, можно файлик закачать прям в контейнер, если нет ничего вообще

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

      33. Ставьте маленькие дефолты

      Маленькая заметка о щедрости и здравомыслии.

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

      Чтобы настройки настраивать, в них нужно писать какие-то значения. Чтобы писать разумные значения, нужно иметь представление о последствиях, что вообще бывает редко. Поэтому в основном люди оставляют значения по умолчанию (дефолты), а когда с ними что-то идёт не так, то идут разбираться, что это за настройки и какие значения там нужно выставлять. Значения по умолчанию для того и созданы – уменьшать когнитивную нагрузку на пользователя.

      Возьмите себе за правило: не использовать безлимиты никогда, ставить минимально необходимые значения по умолчанию.

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

      В-третьих, вы используете эффект привязки – особенность оценки неизвестных числовых значений человеком, из-за которой эта оценка смещается в сторону ранее воспринятых чисел.

      Представьте себе, что в вашем продакшене создание контейнеров для новых сервисов происходит через UI, в котором нужно выбрать количество cpu, по умолчанию равное 16 cpu. В итоге у вас все многочисленные

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