2012-03-06 26 views
40

Ho sentito molte persone usare entrambi i termini in modo intercambiabile. Tuttavia, a mio parere non v'è differenza tra loro:Qual è la differenza tra scalabilità ed elasticità?

SCALABILITÀ - capacità di un sistema per aumentare il carico di lavoro sulle sue risorse hardware attuali (scala fino);

ELASTICITA - capacità di un sistema per aumentare il carico di lavoro sulle sue risorse hardware attuali e ulteriori (aggiunto in modo dinamico a richiesta) (scala out);

L'elasticità è strettamente correlata alle applicazioni distribuite su cloud.

Ho la differenza tra queste due caratteristiche del software non funzionale, giusto? Qualcuno può dare esempi specifici, quindi possiamo tracciare un confine più distintivo tra questi due termini?

risposta

19

Di solito, quando qualcuno dice una bilancia architetturale o piattaforma, significa che i costi hardware aumentano in modo lineare con la domanda. Ad esempio, se un server può gestire 50 utenti, 2 server possono gestire 100 utenti e 10 server possono gestire 500 utenti. Se ogni 1.000 utenti riceve, è necessario il doppio della quantità di server, quindi si può affermare che il tuo progetto non ha una scala non, poiché verrai rapidamente a corto di soldi man mano che il numero degli utenti aumenterà.

L'elasticità viene utilizzata per descrivere quanto bene l'architettura può adattare al carico di lavoro in tempo reale. Ad esempio, se avessi un accesso utente ogni ora al tuo sito, allora avresti davvero bisogno di un solo server per gestirlo. Tuttavia, se tutto ad un tratto, 50.000 utenti si collegano tutti contemporaneamente, la tua architettura può fornire rapidamente (e possibilmente automaticamente) nuovi server web al volo per gestire questo carico? Se è così, si potrebbe dire che il tuo design è elastico.

+0

La scalabilità si sta comportando come in precedenza in caso di aumento del carico di lavoro aggiungendo risorse aggiuntive o prestazioni migliori rispetto a prima in caso di aumento del carico di lavoro aggiungendo risorse aggiuntive? –

35

La scalabilità è la capacità del sistema di sopportare carichi più grandi semplicemente aggiungendo risorse o rendendo l'hardware più forte (scalare verso l'alto) o aggiungere nodi aggiuntivi (scalare).

L'elasticità è la capacità di adattare le risorse necessarie per far fronte ai carichi in modo dinamico di solito in relazione alla scalabilità orizzontale. In questo modo, quando il carico aumenta, la scala viene aggiunta aggiungendo più risorse e quando la domanda diminuisce, si rimpicciolisce e si rimuovono le risorse non necessarie. L'elasticità è per lo più importante negli ambienti cloud in cui si paga per l'uso e non si vuole pagare per le risorse che non sono attualmente necessarie da un lato e si desidera soddisfare la crescente domanda quando necessario dall'altro.

+0

È "ridimensionabile ed elastico" ridondante? Qualcosa può essere elastico senza essere scalabile? –

+2

qualcosa può avere scalabilità limitata ed essere elastico, ma in generale elastico significa sfruttare la scalabilità e aggiungere dinamicamente la rimozione delle risorse. –

+0

La scalabilità si sta comportando come in precedenza in caso di aumento del carico di lavoro aggiungendo risorse aggiuntive o prestazioni migliori rispetto a prima in caso di aumento del carico di lavoro aggiungendo risorse aggiuntive? –

19

_

Scalabilità: "Aumentare" la capacità di soddisfare la "crescente" carico di lavoro.

Elasticità: "Aumentare o ridurre" la capacità di far fronte al carico di lavoro "crescente o ridotto".


Scalabilità: In un ambiente di scala, le risorse disponibili può superare per soddisfare le "esigenze future".

Elasticità: Nell'ambiente elastico, le risorse disponibili corrispondono alle "richieste attuali" il più fedelmente possibile.


Scalabilità: scalabilità si adatta solo al "aumento del carico di lavoro" con "provisioning" le risorse in modo "incrementale".

Elasticità: L'elasticità si adatta sia al "carico di lavoro in aumento" che al "carico di lavoro diminuisce" delle risorse di "provisioning e deprovisioning" in modo "autonomo".


Scalabilità: crescente carico di lavoro è servita con l'aumento della potenza di una singola risorsa computer o con l'aumento del potere da un gruppo di risorse del computer.

Elasticità: Il carico di lavoro variabile viene offerto con variazioni dinamiche nell'utilizzo delle risorse del computer.


Scalabilità: scalabilità consente un aziendale per soddisfare le richieste previste per servizi con "a lungo termine, i bisogni strategici".

Elasticità: L'elasticità consente a un'azienda di soddisfare cambiamenti imprevisti nella domanda di servizi con "esigenze tattiche a breve termine".


Scalabilità: E ' "aumento" la capacità di servire un ambiente in cui il carico di lavoro è in aumento.

Questa scalabilità potrebbe essere "Scaling Up" o "Scaling Out".

(Esempio:

Scaling Up - aumentare la capacità di un singolo server

Scaling out - aumentare la capacità con l'aggiunta di più server per il singolo server.)

Elasticità: E ' è la capacità di "scalare o ridimensionare" la capacità di servire a volontà.


Scalabilità: Per utilizzare una similitudine, "scaling up" è un individuo sempre più il suo potere per soddisfare le crescenti richieste, e "scaling out" sta costruendo una squadra per soddisfare le crescenti esigenze.

Elasticità: Per utilizzare una similitudine, un attore cinematografico che aumenta o riduce il peso corporeo per soddisfare le diverse esigenze dell'industria cinematografica.

_

0

elasticità si riferisce ai requisiti a breve termine di un servizio o un'applicazione e la sua variazione, ma scalabilità supporta esigenze a lungo termine.

0

Dalla mia limitata comprensione di tali concetti, un esempio:

Dire che abbiamo un sistema di 5 computer che fa 5 unità di lavoro, se abbiamo bisogno di un'altra unità di lavoro da fare che dovremo usare un altro computer. Questo è un sistema scalabile ma non elastico. Qualcuno dovrà andare a prendere quell'altro computer. Inoltre, se viene acquistato un nuovo computer e l'unità di lavoro extra non è più necessaria, il sistema rimane bloccato con una risorsa ridondante.

Ora, diciamo che lo stesso sistema utilizza, anziché i propri computer, un servizio cloud adatto alle sue esigenze. Idealmente, quando il carico di lavoro sale di un'unità di lavoro, il cloud fornirà al sistema un'altra "unità di calcolo", quando il carico di lavoro arretra, il cloud smetterà di fornire quella unità di elaborazione. Questa è una situazione in cui un sistema è sia scalabile che elastico.

Problemi correlati