@maxyc_webber
Web-программист

Перенос большого сайта. Какие бывают способы?

Предыстория
В общем дорос уже до сайтов в 25 тыс уников в сутки.
Для меня это первый такой шаг в моем опыте (8 лет). До этого были до 1 тыс уников в сутки. Были и больше сайты, когда работал в Билайне (e1.ru, local.beeline.ru, beeline.ru), но этим занимались сисадмины. Сейчас же вопрос встал мне. Сисадмина не имеем. В своих силах уверен. Вопросом интересуюсь заранее. Дата старта задачи больше чем ччерез месяц.

Задача.
Встала задача поддержки крупного сайта на битриксе. 25 тыс уников в сутки.
Первая задача это перенести на другой хостинг. База 700 мб. Файлов свыше 40 гб.
Прошу поделиться своими историями изучения данного вопроса. Прошу поделиться ссылками на статьи по этому вопросу.

А я пошел листать гугл по этому вопросу.

На текущий момент вижу следующее. Файлы, весь список, гружу в гит. вместе с базой. После загрузки на новый хостинг разворачиваю бд.
Не совсем уверен в правильности данного решения.
  • Вопрос задан
  • 2928 просмотров
Решения вопроса 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Чтобы выбрать верную стратегию миграции сайта на другой сервер, прежде всего нужно определиться - допускается ли отлючение операций записи/обновления в БД на время переноса ресурса, т.е. фактический простой? Предположим что мы начали перенос нагруженного интернет-магазина, где каждые три минуты происходит заказ. Если тупо снять дамп БД, сделать архив файлов, перегнать на другой сервак, развернуть всё это дело, то лаг по времени будет минимум минут 30, даже при условии что новая железка будет находиться в той же стойке. Пока будет происходить перенос, в старую базу уже буду записаны новый заказы. Как вариант можно на время миграции запретить создание заказов и пользователей, но простой в 30 минут (а реально 2 часа) бизнес не устраивает, поэтому на крупных проектах практикуется бесшовный переезд - сначала устанавливается балансировщик, на него переписывается DNS, а он в свою очередь проксирует трафик на старый сервер, далее поднимается второй сервак, на нём разворачивается БД, которая подлючается к БД на старом сервере как slave, скрипты синхронизируются rsync/csync, файлы выносятся в облако. В итоге получаем классическую master-slave модель. В завершении меняем роли в БД, новую делаем мастером, а старую слейвом. Тушим старый сервер.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
kompi
@kompi
nullstack devoops
База и большую часть папок - штатными средствами битрикса для бэкапов, кроме папки upload и других тяжёлых папок со статикой, - их можно с помощью rsync.
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
> Файлы, весь список, гружу в гит. вместе с базой.
Ваша уверенность в силах вас подводит. Настоящий профи никогда в своих силах не уверен.
В данном случае мысль очень вредная и не нужная. Используйте RSYNC.
Ответ написан
Самый простой способ штатным средством резервного копирования. Ваши 40Gb это вероятнее всего /upload - его просто пропустить при резервировании. И потом рсинком, ну или через git ее.
Ответ написан
Я не знаю, что другие в ответах понимают под штатными средствами, но так как в задаче не указана версия битрикса и его окружения, то идем от самого не приятного и надо использовать этот скрипт или любой другой аналог : dev.1c-bitrix.ru/community/blogs/howto/945.php
Штатное средство из админки использовать нежелательно, надежнее делать резервное копирование средствами сервера.
Ответ написан
Комментировать
@maxyc_webber Автор вопроса
Web-программист
Перенос выполнил следующими шагами:
1. сделал копию с живого сайта через rsync на новый.
2. сделал дамп БД с живого на новый.
3. развернул на новом. настроил.
4. направил на новый сервер поддомен new.site.ru
5. протестировали работу нового сервера
6. поставил заглушку на старый сервер (через переименование папок документрута)
7. погасил БД. сделал дамп.
8. rsync актуализировал новый сервер
9. обновил днс.

за ночь обновилось и утром пользователи зашли уже на новый сервер

Есть ли в моем списке неверные шаги? 1,2 пункт живьем снимал, не останавливая.
Ответ написан
Комментировать
@mnhunter81
инженер-электроник, системный администратор
"поставил заглушку на старый сервер (через переименование папок документрута)" - добрый день - просьба прокомментировать что за процедура - в процессе выполнения похожей задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы