SRE. Рецепты выживания в продакшене для инженера по надежности. Наталья Савенкова
Чтение книги онлайн.
Читать онлайн книгу SRE. Рецепты выживания в продакшене для инженера по надежности - Наталья Савенкова страница 11
![SRE. Рецепты выживания в продакшене для инженера по надежности - Наталья Савенкова SRE. Рецепты выживания в продакшене для инженера по надежности - Наталья Савенкова](/cover_pre1333357.jpg)
Или вот ещё история: один из источников по ошибке начал отдавать такой объём данных в ответе, что в цепочке передачи данных переполнялся один из буферов и снова всё падало.
И вот ещё пример: в одном из блоков был оптимизирован алгоритм сортировки элементов с учетом весов, но когда все веса элементов оказались равными нулю, он начал уходить в бесконечный цикл.
Мораль такова: вообще не знаешь, что и где может произойти, поэтому подготовиться к этому невозможно.
Решение: умейте отключать компоненты в системе. Это намного быстрее, чем собрать и выкатить релиз. Достаточно найти место, которое всё ломает и выключить его, а потом спокойно заниматься решением проблемы, фиксами и релизами.
Для реализации такой штуки есть разные способы:
– админка, через которую вы можете управлять конфигами
– база данных, в которой лежит конфигурация (это удобно, но менее надёжно)
– система управления конфигами, типа Ansible
– файлик в хранилище файлов, который вы туда руками положили, а бекенд его скачивает иногда
– в конце концов, можно файлик закачать прям в контейнер, если нет ничего вообще
Не надо слишком усложнять, выбирайте подходящее для вашей ситуации решение.
33. Ставьте маленькие дефолты
Маленькая заметка о щедрости и здравомыслии.
Представьте себе, что в вашей системе есть какие-то настройки. Или, возможно, вы предоставляете систему другим, и в ней есть какие-то настройки.
Чтобы настройки настраивать, в них нужно писать какие-то значения. Чтобы писать разумные значения, нужно иметь представление о последствиях, что вообще бывает редко. Поэтому в основном люди оставляют значения по умолчанию (дефолты), а когда с ними что-то идёт не так, то идут разбираться, что это за настройки и какие значения там нужно выставлять. Значения по умолчанию для того и созданы – уменьшать когнитивную нагрузку на пользователя.
Возьмите себе за правило: не использовать безлимиты никогда, ставить минимально необходимые значения по умолчанию.
У этого подхода есть несколько позитивных эффектов. Во-первых, люди начинают немного погружаться в смысл настройки, когда им нужно поднять её значение. Начинают хотя бы стремиться к осознанному выбору нового значения. Во-вторых, чем чаще они его поднимают, тем больше задумываются о тенденции.
В-третьих, вы используете эффект привязки – особенность оценки неизвестных числовых значений человеком, из-за которой эта оценка смещается в сторону ранее воспринятых чисел.
Представьте себе, что в вашем продакшене создание контейнеров для новых сервисов происходит через UI, в котором нужно выбрать количество cpu, по умолчанию равное 16 cpu. В итоге у вас все многочисленные