Такие разборы я делаю регулярно, этот лежит в канале вместе с обсуждением.

31 января 2017: удаление, после которого нечего было вернуть

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

Инженер чистил сломанную реплику и запустил удаление на боевой базе. Процесс остановили через секунду-две, но около 300 ГБ данных уже были удалены. Ни один из пяти настроенных способов резервирования не работал. Сервис лежал около 18 часов, шесть часов данных потеряны безвозвратно.

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

Почему это сработало так плохо: два слоя тишины

Коротко: бэкап, который ни разу не разворачивали, - это просто файл, а уведомление, которое не доходит, равно отсутствию уведомления.

Ошибка с удалением могла случиться у любого. Дорогой её сделала тишина вокруг копий, и она двухслойная.

Механика такая: защита, которую проверяют только по статусу «настроено», со временем превращается в декорацию. Работает она или нет, выясняется в единственный день, когда она нужна.

Если свести урок к одной строке: защита существует, когда её запускали и она сработала. Всё остальное - намерение.

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

Где у меня то же самое, только меньше

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

Конвейер новостей об ИИ (ночью собирает и проверяет новости об ИИ и готовит пост дня для Telegram) работает по расписанию с 30 августа 2026 года. Утром я открываю панель, и там либо лежит пост, либо нет. Риск в том, что утро без поста можно принять за утро без новостей. По механике это та же ситуация, что и с выгрузкой в S3 из истории GitLab: сбой, о котором никто не сказал вслух.

НЕВОД (мой контент-завод: из одной темы пишет статью и посты под каждую площадку и публикует после моей кнопки) ничего не отправляет наружу без моего одобрения. Это защита в одну сторону. Вопрос, который я задаю себе про другую: чем пустая очередь одобрения отличается от остановившегося завода, если смотреть только на саму очередь.

Джарвис (главный агент-оркестратор: живёт на сервере, управляется из Telegram и руководит остальными моими системами) живёт на сервере. А всё, что живёт на сервере, держится на копиях, и они либо проверены восстановлением, либо нет.

У меня нет ни 300 ГБ, ни 18 часов простоя. Но с историей GitLab нас роднит одна механика: молчание легко принять за норму.

Как этот дефект выглядит в автоматизациях и у ИИ-агентов

Коротко: сценарий по расписанию легко собрать и так же легко оставить без присмотра, а агент к тому же умеет ответить гладко там, где инструмент ничего не вернул.

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

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

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

Что я поменял у себя после этого

Коротко: четыре правила, и все они про проверку факта, а не про наличие настройки.

Это решения, которые я принял для своих систем. Это не отчёт о выполненном.

  1. Бэкап считается сделанным после проверки восстановления. Файл появился - ещё не результат. Результат: архив распакован, содержимое сверено, нужная вещь открылась.
  2. У ночной автоматики есть проверяемый артефакт и допустимый возраст. Слово «запущено» говорит только о том, что процесс стартовал. Живость доказывает свежий файл или запись, дата которых не старше нормы.
  3. Канал уведомлений проверяется искусственной поломкой на тестовой копии. Я смотрю, дошло ли сообщение до меня и за какое время. Письмо, настроенное где-то там, проверкой не считается.
  4. Для агентов пустой результат инструмента означает неизвестность. Где ошибка стоит денег или клиента, итог выносит код по проверяемому признаку. Модель может вердикт только ухудшить.

Как считать эффект от такой автоматики, я разбирал отдельно: ИИ агенты автоматизация: три совета, которые я проверил цифрами. Там речь о времени, здесь о риске, но принцип один: сначала замер.

Что проверить на этой неделе

Коротко: три действия по порядку, и всё это делается на тестовой копии, а не на рабочей системе.

  1. Составьте список всего, что у вас запускается само: сценарии по расписанию, ночные выгрузки, агенты с триггером. Без списка нечего проверять.
  2. Сломайте одно нарочно, но только в тестовой копии или тестовой среде. Подставьте неверный адрес в копии сценария и дождитесь сообщения. Сообщения нет - у вас тот же дефект, что был у GitLab. Рабочие сценарии и реальные ключи для этого не трогайте.
  3. Разверните последнюю копию на чистом месте и откройте то, что внутри. Проверки «файл есть» мало. Засеките, сколько это заняло.

Полный список проверок - в следующем разделе.

Что ты уносишь

Коротко: чек-лист из 9 пунктов, каждый проверяется глазами, и по нему видно, где у вас тишина.

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

  1. Каждому ночному сценарию соответствует запись в журнале запусков за последние 7 дней. Откройте журнал и найдите запуск за каждую ночь. Пропущенная ночь - сигнал.
  2. Последний файл выгрузки моложе суток. Откройте папку с копиями и отсортируйте файлы по дате изменения. Дата верхнего файла должна быть сегодняшней или вчерашней.
  3. Размер последнего файла выгрузки не нулевой и сопоставим с предыдущим. Сравните размеры двух последних файлов. Размер, упавший вдвое или ставший нулём, - сигнал сбоя выгрузки.
  4. Копия лежит на другом носителе или в другом месте, чем оригинал. Сравните путь или адрес назначения с адресом основной системы. Копия на том же диске не переживёт смерть этого диска.
  5. Копию развернули на чистом месте, и нужные данные открылись. Восстановите её на другой машине или в отдельном контейнере, откройте любой сценарий и убедитесь, что он на месте. Запишите время восстановления.
  6. Если у системы есть ключ шифрования учётных данных, он записан в менеджере паролей. В папке с копиями посмотрите только список имён файлов: файла с ключом или файла настроек окружения рядом с копией быть не должно.
  7. Уведомление об ошибке доходит до вас за приемлемый срок. Сломайте тестовый сценарий и засеките время до сообщения. Не дошло - адрес или канал настроены неверно.
  8. Уведомление приходит туда, где вы смотрите каждый день. Откройте этот канал и убедитесь, что в нём нет сотни непрочитанных. Сигнал, утонувший в потоке, равен отсутствующему.
  9. Агент не пишет итог об успехе, когда инструмент вернул пустоту. В тестовой копии подмените ответ инструмента пустым и посмотрите, что агент напишет в итоге. Если текст уверенный и без оговорок, добавьте проверку пустого результата в код.

Напиши мне: что можно собрать у тебя

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

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

Можно собрать проверку копий и уведомления о сбоях под ваш набор сценариев. Напишите мне в личку кодовое слово «АГЕНТЫ АВТОМАТИЗАЦИИ», и я пойму, что вы пришли из этой статьи.