Construindo arquitetura CMS - centralizada ou não - php, sistema de gerenciamento de conteúdo

Eu tenho um servidor dedicado e preciso deconstruindo uma nova versão do meu PHP5 CMS pessoal para meus clientes. Deixando de lado questões sobre se devo considerar o uso de código aberto, preciso de suas opiniões sobre a arquitetura do CMS.

Primeira abordagem (já que o servidor está completamente emmeu controle) é criar um sistema centralizado que possa suportar vários sites a partir de um único painel de administração. A idéia básica é que eu possa fazer login como superusuário, criar um novo site (tecnicamente ele cria uma nova raiz da web e um novo banco de dados e talvez outras coisas), atribuir módulos e plug-ins para clientes específicos ou desenvolver novos se necessário. Se o cliente fizer logon neste painel, ele verá e poderá gerenciar apenas o conteúdo do site.

Eu já vi esse sistema (era compilação personalizada),é muito bom corrigir erros e novos recursos afetam todos os clientes instantaneamente, sem a necessidade de corrigir todos os CMS que também podem estar em outro servidor de hospedagem ...

O aspecto negativo que vejo é a escalabilidade - e se precisar adicionar um segundo servidor, como mesclá-los para manter o núcleo único.

O segundo é clássico - CMS independente para cada cliente.

Para que lado você vai e por quê?

Obrigado pelo seu tempo.

Respostas:

2 para resposta № 1

Se você tivesse um sistema central para todosclientes, a escalabilidade pode se tornar mais fácil. Você pode ter um grande servidor de banco de dados e vários servidores Web idênticos (provavelmente atrás de um balanceador de carga), e dessa forma não precisa se preocupar em dividir os clientes em servidores diferentes. Seus recursos são agrupados para que um cliente tenha um dia com tráfego pesado, ele pode ser ocupado por vários servidores, em vez de colocar um servidor (e todos os outros sites de clientes) de joelhos.

Você pode obter sessões PHP para trabalhar em váriosservidores usando "sessões complicadas" em sua configuração de balanceamento de carga ou fazendo com que o PHP armazene os dados em algum lugar acessível a todos os servidores (por exemplo, um banco de dados).

Manter os arquivos de aplicativos da web sincronizados com uma base de código não deve ser muito difícil, existem ferramentas como o rsync que você pode usar para ajudá-lo.


1 para resposta № 2

Realmente depende dos tipos de sites.Dito isso, sugiro que você considere usar o software de controle de versão para gerenciar várias instalações. Na prática, isso pode oferecer o mesmo que com uma abordagem centralizada, mas oferece a liberdade de adiar a atualização de um único (ou vários) sites.


Perguntas relacionadas
Cardápio