Sono diversi.
La scalabilità, generalmente, si riferisce a quando il throughput atteso è di diversi ordini di grandezza maggiore.
Ad esempio, se scrivo un sito web che tiene traccia delle mie finanze e voglio ottimizzarlo per la velocità, potrei decidere di conservare TUTTI i dati in memoria. Ciò significa che il mio sito web può rispondere più rapidamente - non è necessario estrarre i dati dal disco (dimentichiamo, per il momento, cosa succede quando il mio server viene riavviato).
Per un utente, questo potrebbe essere altamente ottimizzato. Tuttavia, manca di scalabilità; quando il mio sito Web raggiunge 1.000.000 di utenti, mantenere tutti i dati in memoria non è più un'opzione.
La maggior parte dei problemi di scalabilità si verificano quando un sistema è suddiviso su più server.
Le cose si comportano diversamente in grandi volumi: i database potrebbero non essere più adatti a un singolo server; taglia il tuo database o lo replichi? Se dividi il tuo sito web su più server, usi diversi server identici, separi i dati statici da quelli dinamici, mantieni risorse specifiche su una rete di distribuzione di contenuti (CDN)? Come funzionerà il tuo sito web? Utilizzi le opzioni di bilanciamento del carico o il bilanciamento del carico DNS?
Cosa succede se un server si arresta? Se hai un server, non importa quanto sia ottimizzato, significa un'interruzione; questo va bene per 1 o 5 o 10 utenti, ma per Google? Google, in qualsiasi momento, avrà server inattivo. Non è più una questione di "un disco ha fallito, pagina un amministratore di sistema per risolvere il problema", ma "aggiungerlo alla lista, l'ingegnere di sostituzione unità fallita trundle il suo carrello in giro in pochi minuti". Potrebbe non valere la pena che Google utilizzi il RAID, poiché hanno una "serie ridondante di server poco costosi".