Costruire l'architettura CMS - centralizzata o no - php, content-management-system

Ho un server dedicato e ne ho bisognocreazione di una nuova versione del mio CMS PHP5 personale per i miei clienti. Mettendo da parte le domande se dovrei considerare l'uso dell'open source, ho bisogno delle tue opinioni sull'architettura CMS.

Primo approccio (poiché il server è completamente inil mio controllo) è costruire un sistema centralizzato in grado di supportare più siti da un singolo pannello di amministrazione. L'idea di base è che sono in grado di accedere come superutente, creare un nuovo sito (tecnicamente crea una nuova radice Web e un nuovo database e forse altre cose), assegnare moduli e plug-in per un cliente specifico o svilupparne di nuovi se necessario. Se i clienti accedono a questo pannello, vede e può gestire solo il contenuto del loro sito.

Ho visto un tale sistema (era personalizzato),è molto bello correggere i bug e le nuove funzionalità interessano istantaneamente tutti i clienti senza la necessità di patchare ogni CMS che può anche essere su un altro server di hosting ...

L'aspetto negativo che posso vedere è la scalabilità: cosa succede se avrò bisogno di aggiungere un secondo server, come li unirò per mantenere un singolo core.

Il secondo è classico: CMS autonomo per ogni cliente.

In che modo andrai e perché?

Grazie per il tuo tempo.

risposte:

2 per risposta № 1

Se dovessi avere un sistema centrale per tutticlienti, la scalabilità potrebbe diventare più semplice. Puoi avere un grande server di database e diversi server Web identici (probabilmente dietro un bilanciamento del carico) e in questo modo non devi preoccuparti di dividere i client in server diversi. Le tue risorse sono raggruppate in modo che se un client ha un giorno con traffico intenso può essere occupato da più server, piuttosto che mettere in ginocchio un server (e tutti i siti di altri client).

Puoi far sì che le sessioni PHP lavorino su piùserver utilizzando "sessioni permanenti" nella configurazione di bilanciamento del carico o facendo in modo che PHP memorizzi i dati in un luogo accessibile a tutti i server (ad esempio un database).

Mantenere i file dell'applicazione Web sincronizzati con una base di codice non dovrebbe essere troppo difficile, ci sono strumenti come rsync che potresti usare per aiutarti.


1 per risposta № 2

Dipende molto dai tipi di siti.Detto questo, suggerirei di prendere in considerazione l'utilizzo del software di controllo versione per gestire più installazioni. In pratica, questo può darti lo stesso di un approccio centralizzato, ma ti dà la libertà di rimandare l'aggiornamento di un singolo (o un numero di) siti.


domande correlate
Menu