Почему 100% Uptime — это иллюзия, и при чем тут демон Лапласа?

Привет, %username%! В работе SRE и при проектировании систем часто приходится сталкиваться с утопичным требованием бизнеса: «Наш сервис должен работать всегда, нам нужен 100% SLA». Звучит как отличная амбициозная цель, но на практике она недостижима. И чтобы изящно объяснить почему, отлично подходит мысленный эксперимент из начала XIX века — концепция демона Лапласа.

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

Так вот, чтобы гарантировать 100% Uptime сложной распределенной системы, инженеру нужно буквально стать таким демоном Лапласа. Тебе пришлось бы заранее знать:

  • Точное состояние каждого транзистора, диска и кулера на тысячах серверов;
  • Маршрут и судьбу каждого сетевого пакета от мобилки пользователя до твоего балансировщика;
  • Любую, даже самую безумную комбинацию пользовательского ввода;
  • Случайные космические лучи, меняющие биты в памяти (bit flip), и вероятность того, что пьяный экскаваторщик перерубит магистральный кабель провайдера.

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

Именно поэтому в SRE мы осознанно отказываемся от идеи 100% надежности:

  • Мы устанавливаем реалистичные SLO (например, 99.9%), чтобы честно зафиксировать допустимый уровень отказов и не обманывать ни себя, ни клиентов;
  • Мы используем Error Budgets, признавая, что оставшиеся доли процента — это легальное пространство для хаоса, а также наш бюджет на релизы и эксперименты;
  • Вместо попыток предвидеть вообще всё, мы строим устойчивые к отказам системы и снижаем MTTR, чтобы падать безопасно и восстанавливаться быстро.

Отказ от 100% Uptime — это не инженерная слабость. Это зрелое понимание законов природы и устройства сложных систем.

А как у тебя обстоят дела с ожиданиями бизнеса? Приходилось ли тебе отговаривать стейкхолдеров от SLA в 100% и какие аргументы ты для этого использовал? Какой самый непредсказуемый сбой или "черный лебедь" разрушил твой идеальный аптайм? Делись историями в комментариях!

#SRE #DevOps #Observability #incidents #ErrorBudget #SLO #SiteReliabilityEngineering #Architecture