it-swarm.com.de

Was ist der Unterschied zwischen Skalierbarkeit und Elastizität?

Ich habe gehört, dass viele Leute beide Begriffe austauschbar verwenden. Meiner Meinung nach gibt es jedoch Unterschiede zwischen ihnen:

SKALIERBARKEIT- Fähigkeit eines Systems, die Arbeitslast seiner aktuellen Hardwareressourcen zu erhöhen (scale up);

ELASTIZITÄT- Fähigkeit eines Systems, die Arbeitslast seiner aktuellen und zusätzlichen (dynamisch hinzugefügten On-Demand) Hardwareressourcen zu erhöhen (scale out);

Die Elastizität hängt stark von Anwendungen ab, die in der Cloud bereitgestellt werden. 

Habe ich den Unterschied zwischen diesen beiden nicht-funktionalen Softwaremerkmalen richtig verstanden? Kann jemand konkrete Beispiele nennen, so könnten wir eine deutlichere Grenze zwischen diesen beiden Begriffen ziehen?

45

Skalierbarkeit ist die Fähigkeit des Systems, größere Lasten aufzunehmen, indem lediglich Ressourcen hinzugefügt werden, die entweder die Hardware stärker machen (skalieren) oder zusätzliche Knoten hinzufügen (skalieren).

Elastizität ist die Fähigkeit, die Ressourcen anzupassen, die zur dynamischen Bewältigung von Lasten erforderlich sind, die normalerweise im Verhältnis zum Scale-Out liegen. Wenn die Last steigt, skalieren Sie also, indem Sie mehr Ressourcen hinzufügen, und wenn die Nachfrage nachlässt, schrumpfen Sie zurück und entfernen nicht benötigte Ressourcen. Die Elastizität ist vor allem in Cloud-Umgebungen von Bedeutung, in denen Sie Pay-per-Use zahlen und nicht für Ressourcen zahlen möchten Sie brauchen zum einen derzeit nicht und möchten bei Bedarf die steigende Nachfrage decken.

40

_

Skalierbarkeit: "Erhöhen" der Kapazität, um die "zunehmende" Arbeitslast zu bewältigen. 

Elastizität: "Erhöhen oder Verringern" der Kapazität, um die Arbeitsbelastung "Erhöhen oder Verringern" zu bewältigen.


Skalierbarkeit: In einer Skalierungsumgebung können die verfügbaren Ressourcen überschritten werden, um die "zukünftigen Anforderungen" zu erfüllen. 

Elastizität: In der elastischen Umgebung entsprechen die verfügbaren Ressourcen den "aktuellen Anforderungen" so gut wie möglich. 


Skalierbarkeit: Die Skalierbarkeit passt sich nur an die "Erhöhung der Arbeitslast" an, indem die Ressourcen "inkrementell" bereitgestellt werden.

Elastizität: Die Elastizität passt sich sowohl der Erhöhung der Arbeitslast als auch der Verringerung der Arbeitslast an, indem Ressourcen auf "autonome" Weise "bereitgestellt und deprovisioniert" werden. 


Skalierbarkeit: Die Erhöhung der Arbeitslast wird durch Erhöhung der Leistung einer einzelnen Computerressource oder durch Erhöhung der Leistung durch eine Gruppe von Computerressourcen erreicht. 

Elastizität: Unterschiedliche Workloads sind mit dynamischen Schwankungen bei der Verwendung von Computerressourcen verbunden. 


Skalierbarkeit: Skalierbarkeit ermöglicht es einem Unternehmen, die erwarteten Anforderungen an Dienstleistungen mit "langfristigen strategischen Anforderungen" zu erfüllen. 

Elastizität: Elastizität ermöglicht es einem Unternehmen, unerwartete Änderungen in der Nachfrage nach Dienstleistungen mit "kurzfristigen, taktischen Bedürfnissen" zu befriedigen.


Skalierbarkeit: Es "erhöht" die Kapazität für eine Umgebung, in der die Arbeitsbelastung zunimmt.

Diese Skalierbarkeit kann "Skalieren" oder "Skalieren" sein. 

(Beispiel: 

Scaling Up - die Fähigkeit eines einzelnen Servers erhöhen

Skalieren - erhöhen Sie die Fähigkeit, indem Sie dem einzelnen Server mehrere Server hinzufügen.)

Elastizität: Es ist die Fähigkeit, die Fähigkeit zu erhöhen, nach Belieben zu dienen. 


Skalierbarkeit: Um ein Gleichnis zu verwenden, ist "Skalieren" eine Person, die ihre Befähigung zur Befriedigung der steigenden Anforderungen erhöht, und "Skalieren" bildet ein Team, das den steigenden Anforderungen gerecht wird.

Elastizität: Um ein Gleichnis zu verwenden, erhöht oder verringert ein Filmschauspieler sein Körpergewicht, um den unterschiedlichen Bedürfnissen der Filmindustrie gerecht zu werden.

_

28
AnandG

Wenn jemand eine Plattform oder Architekturscalessagt, bedeutet dies normalerweise, dass die Hardwarekosten linear mit der Nachfrage steigen. Wenn beispielsweise ein Server 50 Benutzer verarbeiten kann, können 2 Server 100 Benutzer und 10 Server 500 Benutzer verarbeiten. Wenn Sie alle 1.000 Benutzer haben, müssen Sie die doppelte Anzahl von Servern haben, dann kann gesagt werden, dass Ihr Designnichtskaliert, da Ihnen schnell das Geld ausgeht, wenn Ihre Benutzerzahl wächst.

Mit Elastizität wird beschrieben, wie gut Ihre Architektursichin Echtzeit an die Arbeitslast anpassen kann. Wenn Sie beispielsweise stündlich einen Benutzer für Ihre Site angemeldet hätten, bräuchten Sie wirklich nur einen Server, um dies zu erledigen. Wenn jedoch plötzlich 50.000 Benutzer gleichzeitig angemeldet sind, kann Ihre Architektur dann schnell (und möglicherweise automatisch) neue Webserver bereitstellen, um diese Belastung zu bewältigen? Wenn ja, könnte man sagen, dass Ihr Designelastischist.

20

In Bezug auf AWS :

Skalierbarkeit bezieht sich auf die Fähigkeit Ihrer Ressourcen, ihre Größe oder Menge zu erhöhen oder zu verringern. 

Es gibt eine Menge Infrastruktur, um so etwas zu erreichen, also ist es keine leichte Aufgabe.

Viele der Services in AWS sind standardmäßig skalierbar. Dies ist einer der Gründe, warum AWS so erfolgreich ist. 

Die Skalierbarkeit ist ziemlich einfach zu definieren, weshalb ihr einige Aspekte der Elastizität oft zugeschrieben werden. 


Elastizität ist die Fähigkeit Ihrer Ressourcen, entsprechend den angegebenen Kriterien, häufig CloudWatch , zu skalieren. 

Dies geschieht, wenn ein Lastenausgleichsmodul Instanzen hinzufügt, wenn eine Webanwendung viel Verkehr erhält. 

Skalierbarkeit ist für die Elastizität erforderlich, jedoch nicht umgekehrt.

Nicht alle AWS-Dienste unterstützen Elastizität, und auch die, die häufig auf eine bestimmte Weise konfiguriert werden müssen. 

Es mag überflüssig erscheinen, aber die Dienste in AWS, die mit Elastizität beginnen, unterstützen häufig die Elastizität.

-

In resume können Sie mit Scalability Ihre Ressourcen erhöhen oder verringern. Durch die Elastizität können diese Vorgänge automatisch gemäß den konfigurierten Regeln ausgeführt werden. 

0
coderade

Aus meinem begrenzten Verständnis dieser Konzepte ein Beispiel:

Angenommen, wir haben ein System mit fünf Computern, das fünf Arbeitseinheiten ausführt. Wenn wir eine weitere Arbeitseinheit benötigen, müssen wir einen weiteren Computer verwenden. Das ist ein skalierbares System, aber es ist nicht elastisch. Jemand muss den anderen Computer holen. Wenn ein neuer Computer gekauft wird und die zusätzliche Arbeitseinheit nicht mehr benötigt wird, bleibt das System mit einer redundanten Ressource hängen. 

Nehmen wir nun an, dass das gleiche System anstelle der eigenen Computer einen Cloud-Dienst verwendet, der für seine Anforderungen geeignet ist. Im Idealfall stellt die Cloud dem System eine andere "Recheneinheit" zur Verfügung, wenn die Arbeitslast eine Arbeitseinheit überschreitet. Wenn die Arbeitslast zurückgeht, wird die Cloud die Bereitstellung dieser Recheneinheit ohne weiteres beenden. Dies ist eine Situation, in der ein System sowohl skalierbar als auch elastisch ist. 

0
zohar

Elasticityist die Fähigkeit eines Systems, seine Berechnungs-, Speicher-, Netzwerk- usw. Kapazität basierend auf festgelegten Kriterien, wie der Gesamtlast des Systems, zu erhöhen (oder zu verringern).

Sie können beispielsweise ein Backend-System implementieren, das anfangs 1 Server in seinem Cluster hat. Sie können jedoch so konfiguriert werden, dass dem Cluster eine zusätzliche Instanz hinzugefügt wird, wenn die CPU-Auslastung aller Server im Cluster pro Minute einen bestimmten Schwellenwert überschreitet (z. B. 70%). ). 

Auf ähnliche Weise können Sie Ihr System so konfigurieren, dass Server aus dem Backend-Cluster entfernt werden, wenn die Systemlast abnimmt und die durchschnittliche CPU-Auslastung pro Minute unter einen von Ihnen definierten Schwellenwert fällt (z. B. 30%).

Als ein anderes Beispiel können Sie Ihr System so konfigurieren, dass der gesamte Speicherplatz Ihres Backend-Clusters um eine Reihenfolge von 2 erhöht wird, wenn mehr als 80% des insgesamt verfügbaren Speichers verwendet wird. Wenn aus irgendeinem Grund zu einem späteren Zeitpunkt Daten aus dem Speicher gelöscht werden und beispielsweise der gesamte belegte Speicher unter 20% sinkt, können Sie den insgesamt verfügbaren Speicherplatz auf den ursprünglichen Wert reduzieren.

Einige Systeme (z. B. ältere Software) sind jedoch nicht verteilt, und möglicherweise können sie nur einen CPU-Kern verwenden. Auch wenn Sie die Rechenkapazität, die Ihnen auf Anfrage zur Verfügung steht, erhöhen können, kann das System diese zusätzliche Kapazität in keiner Form nutzen. Solche Systeme sindnicht skalierbar. Einscalable- System kann jedoch eine erhöhte Rechenkapazität verwenden und mehr Last bewältigen, ohne die Gesamtleistung des Systems zu beeinträchtigen. 

Ein skalierbares System hängt jedoch nicht von der Elastizität ab. Traditionell konnten IT-Abteilungen ihre vorhandenen Server durch neuere Server mit mehr CPUs, RAM und Speicher ersetzen und das System auf die neue Hardware portieren, um die zusätzliche verfügbare Rechenleistung zu nutzen.

Cloud-Umgebungen (AWS, Azure, Google Cloud usw.) bieten Elastizität, und einige ihrer Kerndienste sind auch sofort skalierbar. Wenn Sie eine skalierbare Software erstellen, können Sie sie außerdem in diesen Cloud-Umgebungen bereitstellen und von der elastischen Infrastruktur profitieren, mit der Sie die verfügbaren Rechenressourcen bei Bedarf automatisch erhöhen oder verringern können.

0
Behrang

Die Elastizität hängt mit den kurzfristigen Anforderungen eines Dienstes oder einer Anwendung und deren Variation zusammen. Die Skalierbarkeit unterstützt jedoch langfristige Anforderungen.

0
Aboozar Rajabi