Построение архитектуры CMS - централизовано или нет - PullRequest
2 голосов
/ 09 июля 2009

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

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

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

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

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

Каким путем ты пойдешь и почему?

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

Ответы [ 2 ]

2 голосов
/ 09 июля 2009

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

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

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

1 голос
/ 09 июля 2009

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

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