Мы Удалили Нашу Базу Данных Мы Удалили Нашу Базу Данных_blur

Мы Удалили Нашу Базу Данных

Какой лучший способ начать нашу серию статей о Разработке, если не рассказом о полном хаосе?

Да, мы умудрились удалить нашу базу данных. Но ничего так не учит, как настоящая катастрофа, верно?

Проблемы Масштабирования: Будьте Готовы к Трафику

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

Наш сервис неожиданно упал, когда на него пришло намного больше трафика, чем мы ожидали. До этого момента все было ок, а на следующий день серверы просто плавились. Мы не настроили авто-масштабирование, база данных еле справлялась, а приложение тормозило. Это был тот самый момент, когда пришлось задуматься и пересмотреть всю нашу инфраструктуру.

Чтобы такого больше не повторилось, мы решили избавиться от простого Docker + Nginx и перейти на Kubernetes с распределением нагрузки между нашими серверами.

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

Бэкапы, Которых Не Было

В процессе настройки новой инфры мы... забыли об одном важном моменте — о бэкапах базы данных.

Мы были так увлечены настройкой всего остального, что не настроили автоматическое резервное копирование базы данных. "Настроим потом, когда миграцию закончим," — сказали мы. Знаменитые слова.

Удаление Сервера

В процессе очистки старого, мы решили сэкономить и удалили ненужные сервера. И где-то в этом процессе... кто-то (не будем называть имена, но это были мы) случайно стер сервер базы данных блога.

Мы смотрели на экран пару минут, надеясь, что это ошибка кэша или какая-то шутка терминала. Но нет, базы данных не было. Совсем.

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

Отчаянная Попытка Восстановления

Включился режим паники. Начали искать резервные копии. Ничего.

Тогда кто-то выдал гениальную идею: Google Search Console.

Google сохраняет проиндексированные страницы со всем контентом. Потратив несколько часов, мы вручную вытаскивали кэш Google, по кусочкам, восстанавливая статьи. Не идеально, но сработало.

Урок Усвоен

Если после этой истории у вас останется хотя бы один вывод, пусть это будет:

  1. Всегда, ВСЕГДА делайте бэкапы. Автоматизируйте их. Проверяйте. Храните в нескольких местах. Просто сделайте это.

  2. Будьте осторожны с деструктивными командами. Дважды, трижды проверяйте перед rm -rf или удалением чего-то в продакшене.

  3. Имейте план отката. Миграции могут пойти не так. Убедитесь, что можно откатиться без катастроф.

  4. Контроль доступа. Может, не стоит давать всем доступ к SSH, чтобы не удаляли сервера в продакшене.

Вот такая вот история. Мы восстановили 100% контента — урок усвоен. А вы можете посмотреть и другие статьи, уверены что найдете что-то интересное!

star background

Ваш ребенок —
герой сказки

Представьте себе восторг вашего ребенка, когда он узнает, что стал главным героем уникальной сказки.

Создать сказку Ваш ребенок —<br /> герой сказки