| |

The Hard Thing About Hard Things (Ben Horowitz)

Книга Бена Хоровица — это рассказ о том, как выживать в кризисах, технических долгах и организационных провалах. Хотя автор пишет про управление компанией (Horowitz — сооснователь Andreessen Horowitz и бывший CEO Loudcloud/Netscape), его идеи идеально ложатся на реалии SRE.

Почему? Потому что Site Reliability Engineering — это постоянное балансирование между:

  • Стабильностью и скоростью («Можно ли выкатить фичу, если p99 latency выросла?»)
  • Контролем и доверием («Как дать Dev-командам свободу, не ломая продакшен?»)
  • Техническим долгом и инновациями («Чинить легаси или переписывать на Go?»)

«Никого не волнуют твои проблемы» (и это нормально)

Цитата из книги:

«Когда ты в кризисе, никто не придёт тебя спасать. Никто. Ты сам должен найти выход.»

Как это относится к SRE?

  • Когда упал продакшен, бизнес не хочет слышать про «сложную архитектуру» — им нужно решение.

  • Когда разработчики залили баг, объяснения типа «это не наша зона ответственности» не работают.

Что делать?

Фокусироваться на решении, а не на оправданиях. Готовиться к войне в мирное время:

  • Документировать runbooks для всех критичных сервисов.

  • Проводить regular chaos tests, чтобы знать слабые места.

«Худшее решение — это никакого решения»

Хоровиц пишет: «Даже плохое решение лучше, чем паралич анализа».

Пример из SRE-практики:

Ситуация: База данных перегружена, но команда неделю спорит: «Шардировать или кэшировать?». Проблема: Пока идёт дискуссия, пользователи страдают. Решение по Хоровицу:

  • Выбрать самый быстрый вариант (например, добавить read-only реплику).

  • Зафиксировать техдолг и запланировать долгосрочное решение.

«Нанимайте под профессиональные слабости, а не сильные стороны»

Неочевидный совет от Хоровица:

«Если ты отлично разбираешься в инфраструктуре, найми того, кто знает то, чего не знаешь ты.»

Применяем к SRE-командам:

  • Если ваша команда сильна в мониторинге, но слаба в capacity planning — ищите эксперта по прогнозированию нагрузок.

  • Если все говорят «у нас нет проблем с безопасностью», но никто не проводит pentest — пора брать Security Engineer.

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

«Правило 90/90»: почему технический долг убивает

Хоровиц рассказывает про «правило 90/90» в разработке:

«Первые 90% кода делаются за 90% времени. Оставшиеся 10% — ещё за 90% времени.»

Аналог в SRE:

  • Вы можете быстро накрутить алерты в Prometheus, но настроить точные SLO окажется в 10 раз сложнее.

  • Можно запустить Kubernetes, но отполировать его под 99.99% доступности — это отдельный ад.

Как бороться? Честно оценивать трудозатраты (не говорить «сделаем за неделю», если нужен месяц). Выделять «дни техдолга» (например, 20% времени на улучшение мониторинга).

«Военное и мирное время для компании» (и для SRE)

Хоровиц разделяет два режима работы компаний:

  • «Военное время» (кризис, борьба за выживание).

  • «Мирное время» (стабильность, развитие).

Как это выглядит в SRE?

Критерий Военное время (кризис) Мирное время (стабильность)
Приоритет «Любой ценой поднять продакшен!» «Улучшить архитектуру для будущего»
Риски Роллбэки, костыли Постепенные улучшения
Коммуникация Жёсткий контроль, частые стендапы Делегирование, долгосрочное планирование

Ошибка: Действовать в «мирном» режиме, когда всё горит (или наоборот).

Вывод: почему SRE должны прочитать эту книгу?

«The Hard Thing About Hard Things» — это не про успехи, а про провалы. И SRE, как никто другой, знают, что:

  • Надёжность строится на тысячах мелких решений.

  • Идеальных систем не бывает — есть только компромиссы.

  • Лидерство — это не про контроль, а про принятие сложных решений.

Финалка:

«Если ваша система никогда не падает — вы либо врете, либо переплачиваете за инфраструктуру.»

Похожие записи

  • |

    SLI Compass: точность и детализация

    SLI Compass: точность и детализация Ментальная модель для оценки существующих SLI и новых Оригинал: SLI Compass: Fidelity and Granularity by Alex Ewerlöf Индикатор уровня обслуживания (Service Level Indicator, SLI) — основополагающая концепция в области обеспечения надёжности. При правильном применении он количественно оценивает уровень обслуживания с точки зрения пользователя в соответствии с бизнес-целями. Однако разные SLI…

  • |

    Волшебные файлы Git

    Оригинал: Git’s Magic Files by Andrew Nesbitt. Продолжение моего поста о расширении функциональности Git. Git ищет в вашем репозитории несколько специальных файлов, которые управляют его поведением. Это не файлы конфигурации в .git/, а зафиксированные файлы, которые перемещаются вместе с вашим кодом и влияют на то, как Git обрабатывает ваши файлы. Если вы разрабатываете инструмент для…

  • | |

    An Elegant Puzzle: Systems of Engineering Management

    Отличная книга. Советую всем, кто имеет отношение к работе с инженерными командами. Блог автора: https://lethain.com/ Команды Менеджеру должно репортить от шести до восьми человек. Если менеджеру репортит больше девяти человек — он больше тренер, а не менеджер: просто даёт советы и подстраховывает, но не управляет. Команды меньше четырёх человек — не команды. Команды из одного-двух…

  • Resilience Engineering

    Resilience Engineering (инженерия устойчивости) — это подход к проектированию и управлению системами, который фокусируется на их способности предвидеть, адаптироваться и восстанавливаться после сбоев, а не просто избегать их. В отличие от традиционных методов, которые стремятся к «идеальной» надежности (SRE), Resilience Engineering (RE) признает, что сбои неизбежны, и делает упор на устойчивость системы к неожиданным событиям и к…

  • |

    Как я боролся с OOM Killer в моем приложении

    Одно из моих приложений (это скрипт, который автоматизирует некоторые действия на некотором сайте, имитируя действия человека, использует Puppeteer для управления браузером, сохраняет сессию через cookies и работает в фоновом режиме (headless)) падал по OOM-killer. Скрипт работает на сервере с 1 CPU и 1 Gb RAM со всеми вытекающими. … Apr 09 10:49:54 v2542187.example.ru systemd[1]: myapp.service:…

  • |

    Grafana + Prometheus: обнаружение аномалий

    В предыдущей статье мы рассмотрели обнаружение аномалий с помощью правила 3 сигм в Influx. Теперь сделаем то же самое в Grafana + Prometheus. Краткое напоминание: правило 3 сигм Правило трех сигм утверждает, что приблизительно все наши «нормальные» данные должны находиться в пределах трех стандартных отклонений (σ) от среднего значения (μ) ваших данных. В этой статье исследуется, как мы можем измерять…