Progettazione CMS: il multi-sito è una buona idea?

1

Sto costruendo un nuovo CMS con Node.js e ho una domanda. Sarebbe una buona idea aggiungere il supporto multi-sito simile a WordPress al sistema? O dovrei permettere all'utente di gestirlo tramite un proxy inverso come nginx?

Mi rendo conto che avere un singolo processo che gestisce i vhosts che condividono un singolo database può essere vantaggioso in qualche modo, ma avrebbe anche i suoi avvertimenti.

Mi piacerebbe sentire il tuo input su questo, dal momento che non riesco a decidere da solo.

    
posta voodooattack 24.02.2016 - 13:45
fonte

3 risposte

3

Ciò dipende in gran parte dalla scalabilità e (forse ancora più importante) dalla scalabilità delle piattaforme che pianifichi per l'esecuzione del tuo CMS.

Ad esempio, un server leggero ( i.e. AWS t2.micro) gestirà molto facilmente diversi siti (non centinaia, ma sufficienti) a basso volume. Tuttavia, un singolo sito ad alto volume (si pensi a Wikipedia, ecc.) È ovviamente distribuito su molti MUCH server più pesanti (non al plurale).

Dove questo diventa un problema, è nella capacità di un sito di scalare . Diciamo che il blog politico di qualcuno (in esecuzione sul tuo nuovo CMS) viene collegato dalla CNN. In circa cinque minuti passa da poche decine di accessi al giorno a centinaia al secondo. Ora, ovviamente la scalabilità della piattaforma sottostante dipende dalla tua piattaforma (AWS, Azure, che effettivamente la ospita su un vero computer sotto la tua scrivania , ecc.), Ma la capacità del tuo CMS di sfruttare le risorse in una situazione del genere è MOLTO influenzato dall'hosting di più siti invece di avere un'istanza dedicata.

C'è anche l'elemento umano da considerare. Supponiamo che la tua istanza multi-sito stia ospitando siti di diversi utenti ... Ora quando il blog politico di Fred diventa virale, anche il sito Web di Delicious Biscuits di Aunty May rallenta (o va anche offline completamente). Questo è molto più difficile da spiegare alla povera vecchia zia May che se Fred fosse il titolare di tutti i siti virtuali nell'istanza ( cioè la popolarità del blog di Fred fatta da il sito di prenotazione di scrap di Fred andare offline).

Ovviamente ci sono vantaggi in termini di prestazioni che possono essere ottenuti da cose come il pooling di connessioni DB, ecc. per sistemi multi-sito (altrimenti non esisterebbero). Ma assicurati che i siti possano essere promossi man mano che diventano più popolari (e richiedono più risorse). Un piccolo sito che inizia come una voce virtuale in un sistema multi-sito potrebbe un giorno diventare un colosso (forse non così grande come Wikipedia, ma comunque) che richiede più server e database dedicati.

Nel complesso, vorrei provare a dare un'occhiata ai casi d'uso / utenti previsti / ecc. Quanto è probabile che ci siano siti popolari (presumibilmente improbabili, ma mai impossibili), quanto è probabile che un utente desideri avere più siti virtuali su questo CMS? Per quel numero di utenti vale lo sforzo di sviluppo extra? La maggior parte (o tutti) di quegli utenti facilmente sanno come / essere disposti a usare solo nginx per gestirlo se non lo facessi multi-site?

    
risposta data 27.02.2016 - 19:23
fonte
1

Non vorrei unire la logica del software multi sito / multi-tenant con la disponibilità e l'architettura di bilanciamento del carico.

La logica multi tenant è implementata dal CMS, il bilanciamento del carico è implementato dal software o dal servizio di bilanciamento del carico hardware.

Guida al bilanciamento del carico Node.js: link

D'altra parte l'architettura multi-tenant diventa molto complicata come ha detto Ryan. Ad esempio, in un ambiente aziendale sicuro per garantire la riservatezza dei dati, è necessario memorizzare i dati sensibili di ciascun titolare in database separati.

La risposta alla tua domanda dipende principalmente dalle tue esigenze, ma in base alla mia esperienza prima o poi devi implementare una sorta di logica multi sito / multi-tenant.

    
risposta data 29.02.2016 - 03:59
fonte
0

Dipende. Tersosauros ha dato una risposta eccellente.

Sto lavorando per raggiungere l'obiettivo. CMS solo una parte di esso alla fine. link

Se si dice una piccola azienda con circa quattro dipendenti. (grafico, programmatore, modello, ragioniere / telefono) o alcuni di questi. Potresti finire per comprare uno di questi pacchetti più grandi da una società di hosting che ti permette di vendere i tuoi domini su un singolo account come fare. E molto probabilmente arrivano a ... alcune mamme / pop locali che vogliono il sito web wordpress, joomla, phpbb, opencart, ecc ... potrebbero funzionare. e non un uso veramente pesante dei siti. Ma tutti vogliono piccoli gadget di base. E si finisce per lanciare un singolo codice sorgente e andare a fare errori di tipo multi-tenant multi sito. Solo per rendere più facili le tue ore. Quando arriva il momento di occuparsi di aggiornamenti / correzioni di sicurezza, ecc ...

Direi preoccupazione per il multi sito / multi tenant in un secondo momento. e concentrarsi sui cms. Lo scripting può diventare piuttosto complesso, e tabelle di database extra e controlli extra, ecc ... per gestire le cose correttamente. E basta una persona per volere qualcosa di speciale da buttar fuori le cose.

    
risposta data 28.02.2016 - 17:41
fonte

Leggi altre domande sui tag