💾 Бэкап, который никогда не был бэкапом
Однажды в один из проектов пришла тревога: "Мы потеряли часть данных!" 😱
Сначала паника, ребята бегают, ищут кто и что удалил. Система вроде работает, но часть таблиц пустует ⚠️
⚡️ Риск был серьёзный: клиенты могли потерять доступ к важной информации, восстановить её без резервной копии почти нереально.
🔍 Проверка показала: бэкапы, которые настроил предыдущий инженер, ничего толком не сохраняли. Скрипт просто создавал пустые дампы с таймстемпом и писал «успешно».
То есть месяцами все считали, что бэкапы есть, а на деле — фальшивка 👻
🛠 Первым делом сделали "фаст-фикс":
– подняли более старые дампы, которые считались бэкапом;
– восстановили из них базу на тестовом сервере;
– временно отключили проблемный скрипт.
Часть данных всё равно оказалась потеряна, а те что остались — не бэкапировались должным образом. Но быстрое решение сработало — устранив "симптомы" и выиграв время для комплексного решения проблемы.
✅ Итоговое решение:
– переписали скрипты бэкапа;
– настроили хранение копий в двух независимых местах;
– добавили ежедневный мониторинг наличия бэкапов и тестовое восстановление раз в неделю;
– сделали документ с инструкцией и ответственными.
💡 Опыт: бэкап — это не "галочка в CI". Он реально должен работать. Проверяй, восстанавливай, доверяй только проверенным данным.
И да, никогда не останавливайся только на "фаст-фиксах" — не маскируй симптомы, а исправляй ошибки на 100%.
А у вас бывало, что "бэкап" на деле оказался фикцией? 😅
#факап #бэкап #devops #codetogo #itshchen
Однажды в один из проектов пришла тревога: "Мы потеряли часть данных!" 😱
Сначала паника, ребята бегают, ищут кто и что удалил. Система вроде работает, но часть таблиц пустует ⚠️
⚡️ Риск был серьёзный: клиенты могли потерять доступ к важной информации, восстановить её без резервной копии почти нереально.
🔍 Проверка показала: бэкапы, которые настроил предыдущий инженер, ничего толком не сохраняли. Скрипт просто создавал пустые дампы с таймстемпом и писал «успешно».
То есть месяцами все считали, что бэкапы есть, а на деле — фальшивка 👻
🛠 Первым делом сделали "фаст-фикс":
– подняли более старые дампы, которые считались бэкапом;
– восстановили из них базу на тестовом сервере;
– временно отключили проблемный скрипт.
Часть данных всё равно оказалась потеряна, а те что остались — не бэкапировались должным образом. Но быстрое решение сработало — устранив "симптомы" и выиграв время для комплексного решения проблемы.
✅ Итоговое решение:
– переписали скрипты бэкапа;
– настроили хранение копий в двух независимых местах;
– добавили ежедневный мониторинг наличия бэкапов и тестовое восстановление раз в неделю;
– сделали документ с инструкцией и ответственными.
💡 Опыт: бэкап — это не "галочка в CI". Он реально должен работать. Проверяй, восстанавливай, доверяй только проверенным данным.
И да, никогда не останавливайся только на "фаст-фиксах" — не маскируй симптомы, а исправляй ошибки на 100%.
А у вас бывало, что "бэкап" на деле оказался фикцией? 😅
#факап #бэкап #devops #codetogo #itshchen
🔥3👍1💯1
🌀 Петля авторизации
В одном проекте пользователи стали жаловаться: "Мы заходим в систему — и нас сразу выкидывает обратно". Казалось бы, обычный баг, но происходил он не у всех и не всегда 🤯
Сначала мы грешили на браузеры. Проверяли Chrome, Firefox, Edge — у кого-то всё норм, у кого-то авторизация превращалась в бесконечный цикл: логин → редирект → снова логин ⚠️
⚡️ Проблема усугублялась: часть сотрудников просто не могла работать. Начальство нервничало, клиенты злились. Давление росло.
🔍 Разобрали логи: видно, что токен создаётся, но валидация его сразу же рубит. Почему? Оказалось — на одном из серверов время шло "с отставанием" на 7 минут 🕰. Токен, который только что был выдан, этот сервер считал "ещё не действительным".
В итоге пользователь влетал в петлю: один сервер пускает, второй выкидывает.
🛠 Решение:
– синхронизировали время на всех узлах через NTP;
– добавили мониторинг дрифта времени.
После фикса система наконец-то перестала "жевать" пользователей. И да — мы ещё долго вспоминали, что одна маленькая рассинхронизация убила половину логики авторизации 😅
✅ В завершение дополнили решение:
– внесли правило: без синхронизации сервис не стартует;
– сделали тулзу для массовой синхронизации времени и простую инструкцию.
💡 Вывод: время — критичный фактор. Если в распределённой системе часы идут по-разному, никакая логика не спасёт.
А у вас были баги "по часам"? Когда всё ломалось из-за тайминга или синхронизации?
#факап #авторизация #devops #codetogo #itshchen
В одном проекте пользователи стали жаловаться: "Мы заходим в систему — и нас сразу выкидывает обратно". Казалось бы, обычный баг, но происходил он не у всех и не всегда 🤯
Сначала мы грешили на браузеры. Проверяли Chrome, Firefox, Edge — у кого-то всё норм, у кого-то авторизация превращалась в бесконечный цикл: логин → редирект → снова логин ⚠️
⚡️ Проблема усугублялась: часть сотрудников просто не могла работать. Начальство нервничало, клиенты злились. Давление росло.
🔍 Разобрали логи: видно, что токен создаётся, но валидация его сразу же рубит. Почему? Оказалось — на одном из серверов время шло "с отставанием" на 7 минут 🕰. Токен, который только что был выдан, этот сервер считал "ещё не действительным".
В итоге пользователь влетал в петлю: один сервер пускает, второй выкидывает.
🛠 Решение:
– синхронизировали время на всех узлах через NTP;
– добавили мониторинг дрифта времени.
После фикса система наконец-то перестала "жевать" пользователей. И да — мы ещё долго вспоминали, что одна маленькая рассинхронизация убила половину логики авторизации 😅
✅ В завершение дополнили решение:
– внесли правило: без синхронизации сервис не стартует;
– сделали тулзу для массовой синхронизации времени и простую инструкцию.
💡 Вывод: время — критичный фактор. Если в распределённой системе часы идут по-разному, никакая логика не спасёт.
А у вас были баги "по часам"? Когда всё ломалось из-за тайминга или синхронизации?
#факап #авторизация #devops #codetogo #itshchen
👍1🔥1💯1