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

Я разрабатываю интернет-магазин с Magento. На сайте будет большой трафик, и потребуется две настройки сервера: Тестирование и Производство.

Мой вопрос: как интернет-магазины, особенно Magento, справляются с этим?

Идея у меня была:

  • Отключить сайт производства
  • Пустая база данных тестирования
  • Копировать данные из производственной базы данных. (Может быть)
  • Test
  • Копирование файлов и базы данных на производственную площадку

Я знаю, что Magento предлагает вариант Enterprise, но это сценарий, который я хотел бы написать сам.

Ответы [ 3 ]

0 голосов
/ 29 октября 2009

На самом деле, если вы вносите изменения в базу данных, вам потребуется перевести сайт в автономный режим (даже на несколько секунд), пока вы переключаетесь со старого кода на новый код и запускаете сценарий переноса базы данных.

Вам может быть интересно узнать, что

  • postgres имеет транзакционный DDL: если вы заверните свой сценарий миграции в транзакцию и что-то сломается в середине, все будет откатано (включая DROP TABLE)

  • postgres не нужно переписывать таблицу для добавления столбца (MySQL делает, и это довольно медленно)

  • если вы используете MyISAM, вы обречены по многим причинам, одна из которых заключается в том, что резервное копирование переводит ваш сайт в автономный режим на несколько минут.

0 голосов
/ 02 февраля 2011

Требуется master / slave mySQL с ведомым чтением из ведомой базы данных, но с записью в оперативный режим. Это можно настроить в файле local.xml. Вы должны быть в состоянии запустить rsync для файлов, используя --exclude для файлов var / session и var / cache. Также вы можете исключить логотип, если это сервер разработки. После этого логотип можно изменить на «тест», чтобы не путать его с Live.

0 голосов
/ 29 октября 2009

Вам не нужно переводить производственную площадку в автономный режим.

Что бы я посоветовал (и вы должны быть в состоянии написать сценарий) на рабочей площадке, чтобы запустить mysqldump -u root -ppassword db_name > db_name.sql для создания копии базы данных. затем запустите rsync (вы можете получить его как для Linux, так и для Windows) в каталоге файлов, чтобы rsync на тестовой машине любые файлы, которые вы хотите скопировать (images?)

После того, как вы проведете какое-либо тестирование, которое вы хотите запустить в производство, вы можете сделать это одним из двух способов. либо (и я предпочитаю этот метод) сохранить любые изменения, внесенные в базу данных, в файл sql, запустить их на рабочем сайте и одновременно синхронизировать любые измененные файлы. или вы можете использовать mysql для записи всех запросов в файл, а затем повторно воспроизвести их на производственном сайте.

Лучше не снимать производственную площадку, если вам это не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...