Должен ли я использовать одну базовую кодовую базу для нескольких сайтов или одну для каждого сайта? - PullRequest
3 голосов
/ 04 января 2012

Вот ситуация:

  • Несколько сайтов создаются с использованием определенной платформы.
  • Все сайты размещены на одном сервере.
  • Каждый сайт имеет свою базу данных

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

Второй вариант - заставить каждый сайт работать со своей собственной установкой фреймворка.

за и против варианта 1:

  • Требуется только 1 база кода для структуры нескольких веб-сайтов
  • Обновления Framework мгновенно применяются ко всем веб-сайтам
  • Если 1 сайт имеет разные потребности в фреймворке или имеет код, который больше не совместим с последней версией фреймворка, то необходимы специальные патчи совместимости фреймворка. (не всегда есть время или бюджет, чтобы совместить устаревшие проекты с последней версией фреймворка)

за и против варианта 2:

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

Таким образом, вариант 1 кажется более легким в обслуживании, а вариант 2 гораздо более гибким. Я не знаю, что самое главное. Какой из 2 вариантов в целом лучший выбор? Или есть еще варианты?

Ответы [ 3 ]

5 голосов
/ 04 января 2012

Я подхожу к этому немного по-другому.

У меня будет такая структура каталогов:

/sites/
    /site1/
    /site2/
    [etc]
/framework/
    /1.0/
    /1.1/
    /1.x/
    [etc]

Тогда внутри каждого сайта есть отображение / framework, которое указывает версию платформы, которую использует сайт. Таким образом, версия фреймворка каждого сайта не зависит от других: если одному сайту требуется версия фреймворка, отличная от других (зависшая на старой версии, новая версия нужна до того, как другие сайты были протестированы с ней), то вы можете контролировать такого рода гранулярность. Точно так же изменение кодовой базы в /framwork/nightly/ (например) «автоматически» обновит все сайты с отображением их / framework, указывающим на эту передовую версию кодовой базы.

2 голосов
/ 04 января 2012

Лично у меня всегда будет каждый сайт, использующий собственную базовую кодовую базу или, по крайней мере, использующую общую кодовую базу, замороженную в установленной версии.Проблема с совместным использованием инфраструктуры заключается в том, что при каждом обновлении вам придется тестировать каждый сайт, используя эту общую кодовую базу, чтобы убедиться, что они по-прежнему работают должным образом.Что также происходит, когда платформа отказывается от функции, которую вы используете на одном из ваших сайтов?Это может помешать вам выполнить обновление, оставив вас открытыми для проблем безопасности.

Вариант 2 дает вам больше затрат на обслуживание, но, на мой взгляд, это самый безопасный подход.

0 голосов
/ 05 января 2012

Это зависит от пары факторов.

Сколько разработчиков работает на сайтах? Хорошо ли поддерживается структура, задокументирована? Есть ли * лучшая структура, доступная (лучше за счет документации, накладных расходов (объем памяти) и поддержки сообщества). Какой выбор будет выглядеть лучше через 12 месяцев или дольше.

Вариант 1 апеллирует к своей последовательности и осведомленности.

Вариант 2 привлекает своим потенциалом, обучением и будущим ростом.

...