Versione breve:
Quando possibile, orizzontale è migliore perché ha più possibilità di scala; verticale è limitato dalla quantità di risorse che è possibile inserire in una singola istanza. Ma alcune applicazioni non possono essere ridimensionate in orizzontale, e per quelle applicazioni verticale è la scelta migliore.
Versione lunga:
Può andare in orizzontale?
Molte applicazioni non sono progettate per andare orizzontalmente. Un'applicazione che utilizza i file locali, ad esempio, non può condividerli con un'istanza su un altro sistema. Se i file sono resi disponibili a un altro sistema utilizzando, ad esempio, NFS, il blocco file disponibile potrebbe non essere sufficiente per contesa e coordinamento delle risorse.
Progettare un'applicazione per essere orizzontale impone complessità. E persino un'applicazione definita in orizzontale - ad esempio un livello Web con un numero di macchine che funziona con un server di database di back-end - potrebbe avere dei limiti. È possibile che ogni front-end Web consuma 1/10 della capacità del server di database, quindi cosa succede quando lo si amplifica fino a 11? Il database diventa un collo di bottiglia. Tornate al passaggio 1 e ripetete il lavoro di architettura orizzontale che avete fatto per applicare anche il server di database, e il sistema esegue nuovamente i funghi in complessità.
I sistemi orizzontali sono difficili. I sistemi verticali sono di default. Pertanto, spesso il ridimensionamento verticale è l'unica cosa che puoi lanciare davanti a un DDoS.
Vince con il ridimensionamento orizzontale
Se puoi andare in orizzontale, tuttavia, ci sono un certo numero di vittorie che lo rendono superiore.
-
Costo : se hai bisogno di 10, due scatole 5x sono un po 'più costose di una scatola 10x. Ma se hai bisogno di 20, quattro scatole 5x sono probabilmente più economiche di una scatola 20x.
-
Capacità - Il ridimensionamento verticale ha dei limiti; non ci può essere nulla come una scatola 50x, ma dieci scatole 5x sono realizzabili. La memoria arriva solo in stick così grandi e puoi inserire così tanti in una scheda madre ...
-
Percorso : se si dispone di una soluzione verticale, si è generalmente limitati a un datacenter e al massimo a una piccola serie di reti in arrivo. Se si dispone di una soluzione orizzontale e può diffondersi su più siti, quindi aumenta notevolmente la ridondanza dell'operatore disponibile per te.
-
Robustezza : per definizione, se hai progettato la tua app come orizzontale, probabilmente l'hai progettata per far fronte a uno o più nodi componenti che non sono più disponibili. Una volta ottenuto ciò, la perdita di sottoinsiemi della tua architettura distribuita orizzontalmente è sopravvissuta.