2014-11-03 2 views
-1

В настоящее время у меня есть серия из 15 сайтов, работающих от 15 экземпляров одной и той же кодовой базы и распространяется на четыре выделенных сервера. Каждый сайт отличается незначительно, с другой темой, а некоторые настройки и переводы изменены в соответствии с экземпляром, но в остальном они идентичны.Запуск нескольких пользовательских сайтов с одной кодовой базы

Вот пример того, что я имею в виду:

  • Сервер 1
    • сайт 1
    • сайт 2
    • сайт 3
    • сайт 4
  • Сервер 2
    • сайт 5
    • сайт 6
    • сайт 7
    • сайт 8
  • Сервер 3
    • сайт 9
    • сайт 10
    • Si, т.е 11
    • сайта 12
  • Сервер 4
    • сайта 13
    • сайта 14
    • сайта 15

Когда был только один сервер, это было довольно легко управлять, но теперь, с 15 (и ростом) экземпляров различных вариантов сайта, становится кошмаром для управления и обновления.

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

Мне нужно, чтобы я мог консолидировать все эти данные, не убивая производительность. Я думал, что могу запустить серверы баз данных на двух серверах, кеш (например, лак) на одном, а nginx - на одном, но это не кажется очень масштабируемым.

Есть ли лучший способ, которым я не хватает?

+0

И должно быть не менее 15 различных способов реализации решения. –

+0

Кроме того, возможно, есть лучший способ развертывания? В настоящее время я регистрируюсь на каждом сервере и запускаю собственный скрипт, чтобы справиться с этим, на каждом экземпляре. – Juice

+0

@EngineerDollery Возможно, вы могли бы предложить несколько из ваших самых рекомендуемых? :) – Juice

ответ

0

хостинг

Я рекомендовал бы использовать/найма PaaS (платформа как услуга) или IaaS (инфраструктура как услуга). Таким образом, кто-то другой будет управлять оборудованием и услугами, и вам придется беспокоиться только о своем коде. Самое замечательное в том, что платформа масштабирует ваше приложение до ваших потребностей.(Но плохой код -> плохая производительность будет стоить вам много денег, хотя)

Посмотри на AWS, например: http://aws.amazon.com/

обновление

Кроме того, я бы рекомендовал использовать систему контроля версий для обновления сайтов.

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

Хотя я бы посоветовал сохранить ваш пользовательский код отдельно от вашего базового кода! (это нужно легко разделить).

Так что просто создайте сценарий, который делает Git Pull, и вы будете автоматизированы для своих обновлений! (сделайте так, чтобы вы могли запускать это из административного сервера на своем сайте и весь свой набор!)

надеюсь, что это поможет!

Совет: всегда работайте в другой отрасли, а затем в своей производственной ветви, и просто выпускайте: Merge в производственную отрасль, когда у вас есть стабильная версия.