Перед переездом все обсуждают, как всё пройдёт хорошо. Заметно реже обсуждают, что делать, если пойдёт плохо. План отката — это заранее записанный ответ на вопрос «как вернуть всё как было». Он нужен не потому, что мы ждём провала, а потому что решение о возврате приходится принимать быстро и на нервах, а в таком состоянии люди плохо придумывают порядок действий.
Что такое план отката
Это короткая инструкция: какие действия и в каком порядке вернут проект в рабочее состояние на старой площадке. Она пишется до переезда, в спокойной обстановке, и состоит из конкретики — что поменять, где, в каком порядке и кто это делает.
Ключевое слово — «заранее». План, который придумывают в момент аварии, планом не является.
Почему «вернём DNS обратно» — это не план
Самая распространённая иллюзия звучит так: если что-то пойдёт не так, мы просто переключим DNS обратно на старый сервер, и всё станет как было. На практике мешают три вещи.
DNS возвращается не мгновенно. Это та же история, что и при переезде: часть посетителей ещё какое-то время будет попадать на новый сервер. Если TTL заранее не снижен, речь идёт о часах.
За время работы на новом сервере появились новые данные. Заказы, регистрации, комментарии, загруженные файлы, письма. Если вернуться на старую базу как есть, всё это исчезнет. Причём тихо: никакой ошибки никто не увидит, просто заказов не будет.
Старая площадка может быть уже не в том состоянии. Её нередко начинают чистить сразу после переезда: отключают службы, снимают лицензии, освобождают ресурсы. Возвращаться становится некуда.
Из чего состоит рабочий план
- Точка возврата. К какому именно состоянию возвращаемся: дата и время снимка, где он лежит, кто умеет его развернуть.
- Действия с DNS. Какие записи менять, на какие значения, какой TTL стоит прямо сейчас.
- Что делать с данными, накопленными на новом сервере. Выгрузить заказы за период, забрать письма, сохранить загруженные файлы. Даже при срочном возврате эти данные должны быть куда-то сложены, а не потеряны.
- Кто принимает решение. Один человек, имя которого записано заранее. Не «решим вместе» — в три часа ночи это не работает.
- Кого предупредить: клиентов, свою поддержку, платёжный сервис.
- Сколько времени займёт откат. Если шесть часов — это надо знать до переезда, а не выяснять в процессе.
Точка невозврата
В любом переезде есть момент, после которого откат перестаёт быть простым. Обычно это первый принятый на новом сервере заказ или первое пришедшее туда письмо. До этого момента возврат почти бесплатный. После — это уже не откат, а слияние данных, и оно требует времени и аккуратности.
Хороший план честно называет эту точку. Тогда решение «продолжаем или возвращаемся» принимается вовремя, а не тогда, когда возвращаться уже дороже, чем чинить.
Когда откатываться, а когда чинить на месте
Не всякая проблема требует отката. Опечатка в конфигурации, не заработавший плагин, съехавшая вёрстка — это чинится там же, где случилось.
Откат оправдан, когда:
- данные теряются или повреждаются прямо сейчас;
- проект недоступен, а причина непонятна и не находится за разумное время;
- проблема массовая — не проходит оплата, не отправляются письма, не открываются страницы у всех подряд.
Полезно договориться заранее: «если через два часа не заработало — откатываемся». Такой срок снимает самое тяжёлое — необходимость принимать решение тогда, когда все уже устали и жалко потраченных усилий.
Коротко
План отката почти никогда не пригождается, и это нормально. Он нужен не для того, чтобы им воспользовались, а чтобы решение о переезде принималось спокойно — с понятной ценой ошибки.
В наших миграциях план отката — обязательная часть подготовки, наравне с планом самого переезда. Мы проговариваем его до начала работ, чтобы в момент переключения никто ничего не додумывал.