2009-07-08 2 views
2

У меня есть выделенный сервер, и мне нужно создать новую версию моего личного PHP5 CMS для моих клиентов. Если оставить в стороне вопросы, следует ли мне использовать open source, мне нужно ваше мнение относительно архитектуры CMS.Архитектура здания CMS - централизованная или нет

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

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

Отрицательный аспект, который я вижу, - это масштабируемость - что, если мне нужно будет добавить второй сервер, как объединить их для поддержки одного ядра.

Вторая классическая - автономная CMS для каждого клиента.

Каким образом вы пойдете и почему?

Спасибо за ваше время.

ответ

2

Если у вас должна быть одна центральная система для всех клиентов, масштабируемость может стать проще. У вас может быть один большой сервер базы данных и несколько одинаковых веб-серверов (возможно, за балансировщиком нагрузки), и вам не нужно беспокоиться о том, чтобы разделить клиентов на разные серверы. Ваши ресурсы объединены, поэтому, если у одного клиента есть день с интенсивным трафиком, он может быть занят несколькими серверами, вместо того, чтобы не довести на нем один сервер (и все остальные сайты клиентов).

Вы можете заставить сеансы PHP работать на нескольких серверах либо с помощью «липких сеансов» в конфигурации балансировки нагрузки, либо путем получения PHP для хранения данных, доступных для всех серверов (например, базы данных).

Сохранение файлов веб-приложений, синхронизированных с одной базой кода, не должно быть слишком сложным, есть инструменты, такие как rsync, которые вы можете использовать, чтобы помочь вам.

1

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

+0

+1 - если у вас есть расширяемая система с кучей пользовательского кода на сайте, есть компромисс. Вы можете сделать исправление один раз, и оно распространяется через все, но тогда вам нужно протестировать исправление против всего, прежде чем вы сможете его развернуть. –

Смежные вопросы