Настройка двух серверов для интернет-магазина (Magento)

StackOverflow https://stackoverflow.com/questions/1644159

Вопрос

Я разрабатываю интернет-магазин с 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, вы обречены по многим причинам, одна из которых заключается в том, что выполнение резервного копирования отключит ваш сайт на несколько минут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top