Перейти к основному содержимому

Как устроен мониторинг бэкапов?

Почему это важно?

Мониториг бэкапов позволит быть уверенным, что в нужный момент страховка сработает.

Советы

№1

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

100% способ убедиться в надёжности бекапов — учения: взять и восстановить копию продакшена где-нибудь рядом с основной площадкой. Способ этот — ручной, а значит, дорогой и медленный. Чтобы не проводить учения каждую неделю, бекапы нужно мониторить. Самый простой (и бесплатный) вариант — healthchecks.io.

Сервис работает по принципу мёртвой руки — вы задаёте периодичность бекапов и получаете эндпоинт, который нужно дёргать с этой периодичностью. Сделали бекап — дёрнули эндпоинт. Если ваш скрипт не дёрнет эндпоинт за нужный период, вы получаете уведомление. Получается, что этим вы покрываете все возможные неисправности. Неважно, сломался доступ к БД, закончилось место на диске, скрипт упал: результат один — недёрнутый эндпоинт и уведомление. Только (set -e) не забывайте.

Фёдор Борщёв

№2

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

Александр Глобов

№3

Идея в том, чтобы иметь набор автоматических тестов, которые выполняются на продакшн данных. К примеру можно проверять эндпоинты на предмет того, что за время последнего бекапа добавился минимум один заказ, один отзыв, один товар (и тому подобное, в зависимости от бизнес логики). Тогда можно на рядом стоящем инстансе разворачивать бекап и запускать такие тесты. В случае провала тестов отправлять нотификацию. Процесс можно полностью автоматизировать и по логике это должно сильно повысить качество проверки.

Евгений Гарбуз