Construyendo arquitectura CMS - centralizada o no - php, content-management-system

Tengo un servidor dedicado y estoy en necesidad deconstruyendo una nueva versión de mi PHP5 CMS personal para mis clientes. Dejando de lado las preguntas sobre si debo considerar el uso de código abierto, necesito sus opiniones sobre la arquitectura de CMS.

First approach (since the server is completely in mi control) es construir un sistema centralizado que pueda soportar múltiples sitios desde un único panel de administración. La idea básica es que puedo iniciar sesión como superusuario, crear un sitio nuevo (técnicamente crea una nueva raíz web y una nueva base de datos, y quizás algunas otras cosas), asignar módulos y complementos para un cliente específico o desarrollar nuevos si necesario. Si el cliente inicia sesión en este panel, él / ella ve y puede administrar solo el contenido de su sitio.

He visto tal sistema (era una compilación personalizada),es muy agradable realizar correcciones de errores y las nuevas funciones afectan a todos los clientes de forma instantánea sin necesidad de parchear cada CMS que también puede estar en otro servidor de alojamiento ...

El aspecto negativo que puedo ver es la escalabilidad: ¿qué debo hacer si necesito agregar un segundo servidor? ¿Cómo puedo combinarlos para mantener un solo núcleo?

El segundo es clásico: CMS autónomo para cada cliente.

¿En qué dirección irás y por qué?

Gracias por tu tiempo.

Respuestas

2 para la respuesta № 1

Si tuvieras que tener un sistema central para todosClientes, la escalabilidad podría ser más fácil. Puede tener un gran servidor de base de datos y varios servidores web idénticos (probablemente detrás de un equilibrador de carga), y de esa manera no tiene que preocuparse por dividir a los clientes en diferentes servidores. con mucho tráfico, puede ser ocupado por varios servidores, en lugar de poner de rodillas a un servidor (y a todos los demás sitios de los clientes).

Puede obtener sesiones de PHP para trabajar a través de múltipleslos servidores, ya sea utilizando "sesiones adhesivas" en su configuración de equilibrio de carga, o bien obteniendo PHP para almacenar los datos en un lugar accesible para todos los servidores (por ejemplo, una base de datos)

Mantener los archivos de la aplicación web sincronizados con un código base no debería ser demasiado difícil, existen herramientas como rsync que puede usar para ayudarlo.


1 para la respuesta № 2

Realmente depende de los tipos de sitios.Dicho esto, sugeriría que consideres usar un software de control de versiones para administrar múltiples instalaciones. En la práctica, esto le puede dar lo mismo que con un enfoque centralizado, pero le da la libertad de posponer la actualización de un solo sitio (o varios).


preguntas relacionadas
Menú