max_nn писал:
Какая часть переноса сейчас сложнее: постоянные данные, конфигурация или само обновление?
Данные. Не потому что дамп сложно снять — а потому что старый сайт живёт, пока ты переезжаешь.
Свежий пример из этого же переезда. Подняла всё на новом сервере, проверила, сижу довольная. Захожу на старый посмотреть — а там за сутки три заказа и два комментария. Дамп-то вчерашний. Повезло, что это был тестовый прогон, а не боевое переключение: иначе объясняла бы клиенту, куда девались его заказы, а это разговор, после которого клиенты уходят.
С тех пор порядок жёсткий:
1. Сначала полный подъём на новом месте: сайт открывается, формы отправляются, админка пускает. Старый при этом работает, его никто не трогает.
2. За сутки до переключения опускаю
TTL у A-записи до 300. Это пункт, который все вспоминают уже после: пока
TTL сутки, половина посетителей ещё долго ходит на старый сервер и оставляет там заказы, которых на новом нет и не будет.
3. В час X на старом включается maintenance mode и снимается финальный дамп — только базы, файлы за это время не меняются:
mysqldump -u wp -p wp > final-$(date +%F).sql
4. Разворачиваю дамп на новом, переключаю
DNS, проверяю с телефона через мобильный интернет — домашний резолвер обожает кэшировать старую запись и делать вид, что «ничего не работает».
5. Старый сервер не сношу неделю. Выключенный, но целый. Откат тогда — это power on, а не ночь с бэкапом.
По обновлениям с фиксацией версий согласна, добавлю два своих правила. Первое: никакого :latest и даже никакого :6 — только полный тег,
wordpress:6.6.2-php8.2-fpm, и
mariadb так же. Второе: никаких автообновлялок на клиентском проде. watchtower и компания — для домашних сервисов, где ты сам себе заказчик. У платящего клиента обновление это событие: pull на копии с другими портами, прогон, глазами по сайту, и только потом боевой. Один :latest как-то притащил мне мажорный
mariadb, который отказался подниматься на старых данных. С тех пор это не привычка, а религия.
По разделению — да:
nginx,
wordpress-fpm и
mariadb отдельными сервисами, тогда образ вордпресса обновляется, а базу ты даже не перезапускаешь. Только не увлекайся в обратную сторону: однажды видела
compose, где на каждый плагин завели свой контейнер. Вордпресс — не микросервисы, ему так не надо)
Так что в чеклист из первого поста добавляются две строки:
TTL опустить заранее и старое не разбирать неделю. Обе стоят ноль рублей и срабатывают ровно один раз — но какой.
А у кого-нибудь получалось переехать совсем без maintenance-окна, на живом трафике? У меня — нет, и я с этим смирилась.