Настройка двух серверов для интернет-магазина (Magento)
-
10-07-2019 - |
Вопрос
Я разрабатываю интернет-магазин с Magento.Сайт будет иметь высокий трафик и потребует установки двух серверов: тестового и производственного.
У меня вопрос: как с этим справляются интернет-магазины, в частности Magento?
У меня была идея:
- Отключить производственный сайт
- Пустая база данных тестирования
- Скопируйте данные из производственной базы данных.(Может быть )
- Тест
- Скопируйте файлы и базу данных на производственный сайт.
Я знаю, что Magento предлагает вариант Enterprise, но этот сценарий я бы хотел написать сам.
Решение
Вам не нужно отключать производственный сайт.
Я бы посоветовал (и вы должны уметь это написать) запустить на производственном сайте. mysqldump -u root -ppassword db_name > db_name.sql
для создания копии базы данных.затем запустите rsync (вы можете получить его как для Linux, так и для Windows) в каталоге файлов, чтобы синхронизировать с тестовой машиной любые файлы, которые вы хотите скопировать (изображения?)
После того, как вы проведете какое-либо тестирование, которое хотите запустить в производство, вы можете сделать это одним из двух способов.либо (и я предпочитаю этот метод) сохраните все изменения, внесенные вами в базу данных, в файле sql, запустите его на рабочем сайте и в то же время синхронизируйте все измененные файлы.или вы можете использовать MySQL для регистрации всех запросов в файл, а затем воспроизвести их на рабочем сайте.
Лучше не сносить производственную площадку, если в этом нет необходимости.
Другие советы
Вам нужен главный/подчиненный MySQL с подчиненным устройством, читающим из подчиненной базы данных, но записывающим в живую.Это можно настроить в файле local.xml.У вас должна быть возможность запустить rsync для файлов с --exclude для файлов var/session и var/cache.Также вы можете --исключить логотип, если это сервер разработки.Затем логотип можно изменить на «тест», чтобы не путать его с Live.
На самом деле, если вы внесете изменения в базу данных, вам нужно будет перевести сайт в автономный режим (хотя бы на несколько секунд), пока вы переключитесь со старого кода на новый, и запустить скрипт миграции базы данных.
Возможно, вам будет интересно это узнать
Postgres имеет транзакционный DDL:если вы обертываете свой сценарий миграции в транзакцию и что-то ломается посередине, все происходит откат (включая DROP TABLE)
postgres не нужно переписывать таблицу для добавления столбца (MySQL это делает, и это довольно медленно)
Если вы используете MyISAM, вы обречены по многим причинам, одна из которых заключается в том, что выполнение резервного копирования отключит ваш сайт на несколько минут.