Come adattare l'architettura di un sito web e disporre di un hosting adatto insieme ad esso per soddisfare gli utenti in aumento? [chiuso]

0

Supponiamo che tu avvii un sito web su hosting condiviso e aumenti la popolarità che potrebbe renderlo non disponibile con l'aumento del numero di accessi.

Quindi, come sviluppatore, come faccio a capire quando vengono raggiunti i limiti e cosa posso fare al riguardo in termini di architettura con la soluzione di hosting adatta per accompagnarlo?

Questa è una domanda "olistica" a cui ho avuto difficoltà a trovare risposte e mostra dalle reazioni qui che anche altre persone non ne sono chiare.

Suppongo che sto cercando le migliori pratiche o una guida poiché si tratta di un problema molto pratico che qualcuno incontrerà se ottengono qualcosa che va sulla scala di Stackoverflow.

    
posta James P. 18.10.2017 - 02:13
fonte

1 risposta

6

Solo una breve nota sulla terminologia:

  • Il ridimensionamento su si riferisce al miglioramento dell'hardware.
  • Il ridimensionamento out si riferisce all'aggiunta di più hardware in un ambiente con bilanciamento del carico.

Nel mondo web, tendiamo a scalare i server web per gestire più carico. Se la tua applicazione è stateless (cioè senza variabili di sessione), dovresti essere in grado di clonare il server web e distribuire il carico da un sistema di bilanciamento del carico in testa allo stack della soluzione. Se è di stato (hai fatto un affare con il diavolo e hai iniziato a utilizzare lo stato di sessione), puoi ancora utilizzare il bilanciamento del carico, ma dovrai anche applicare una certa forma di stickiness di sessione al servizio di bilanciamento del carico. Con una di queste opzioni, in teoria potresti aggiungere un centinaio di server web e gestire 100 volte il traffico.

Scalare la web farm è ancora più semplice se si utilizza una soluzione di cloud / docker. I siti Web che funzionano con Docker devono utilizzare un sottoinsieme limitato di funzionalità O / S (ad esempio, compilare su .NET Core anziché su .NET framework). Ma il vantaggio è che funzionano completamente virtualmente. Invece di vivere su un computer fisico, vivono in contenitori docker, che possono essere convertiti automaticamente all'aumentare del carico.

Questo lascia il database. È più difficile scalare il database a causa della concorrenza e dei problemi di coerenza dei dati. Quindi il server di database tende a ridimensionarsi up , ad es. aggiungendo più CPU, memoria e capacità SAN.

    
risposta data 18.10.2017 - 04:02
fonte