Wenn Sie mit Cloud Computing oder normalen skalierbaren hochverfügbaren Anwendungen arbeiten, hören Sie normalerweise zwei Terminologien, die als Scale Out und Scale Up oder oft als horizontale Skalierung und vertikale Skalierung bezeichnet werden. Ich habe darüber nachgedacht, Grundlagen abzudecken und mehr Klarheit für Entwickler und IT-Spezialisten zu schaffen.
Was ist Skalierbarkeit?
Skalierbarkeit ist die Fähigkeit eines Systems, Netzwerks oder Prozesses, eine wachsende Menge an Arbeit zu bewältigen, oder sein Potenzial, vergrößert zu werden, um diesem Wachstum gerecht zu werden. Beispielsweise wird ein System als skalierbar angesehen, wenn es in der Lage ist, seine Gesamtleistung unter erhöhter Last zu erhöhen, wenn Ressourcen (normalerweise Hardware) hinzugefügt werden.
Ein System, dessen Leistung sich nach dem Hinzufügen von Hardware proportional zur hinzugefügten Kapazität verbessert, wird als skalierbares System bezeichnet.
Dies wird anwendbar sein oder jedes System wie :
- Kommerzielle Websites oder Webanwendungen, die eine größere Benutzergruppe haben und häufig wachsen,
- oder die sofort eine hohe Anzahl von Benutzern für eine hochkarätige Veranstaltung oder Kampagne bedienen müssen.
- oder ein Streaming-Ereignis, das sofortige Verarbeitungsfunktionen benötigt, um Streaming für eine größere Gruppe von Benutzern in einer bestimmten Region oder weltweit bereitzustellen.
- oder Eine sofortige Arbeitsverarbeitung oder Datenverarbeitung, die höhere Rechenanforderungen erfordert, die für einen bestimmten Job üblich sind.
Skalierbarkeit kann in verschiedenen Dimensionen gemessen werden, wie zum Beispiel:
- Administrative Skalierbarkeit: Die Möglichkeit für eine zunehmende Anzahl von Organisationen oder Benutzern, ein einzelnes verteiltes System einfach gemeinsam zu nutzen.
- Funktionale Skalierbarkeit: Die Fähigkeit, das System durch Hinzufügen neuer Funktionen mit minimalem Aufwand zu verbessern.
- Geografische Skalierbarkeit: Die Fähigkeit, Leistung, Nützlichkeit oder Benutzerfreundlichkeit unabhängig von der Expansion von der Konzentration in einem lokalen Gebiet zu einem stärker verteilten geografischen Muster aufrechtzuerhalten.
- Skalierbarkeit laden: Die Fähigkeit eines verteilten Systems, seinen Ressourcenpool einfach zu erweitern und zu verkleinern, um schwerere oder leichtere Lasten oder eine Anzahl von Eingaben aufzunehmen. Alternativ die Leichtigkeit, mit der ein System oder eine Komponente geändert, hinzugefügt oder entfernt werden kann, um sich ändernden Lasten gerecht zu werden.
- Skalierbarkeit der Generation: Die Fähigkeit eines Systems, durch die Verwendung neuer Komponentengenerationen zu skalieren. Heterogene Skalierbarkeit ist dabei die Möglichkeit, die Komponenten verschiedener Anbieter zu nutzen.
Scale-Out/In / Horizontale Skalierung:
Horizontal skalieren (oder vergrößern/verkleinern) bedeutet, einem System weitere Knoten hinzuzufügen (oder Knoten daraus zu entfernen), z. B. einen neuen Computer zu einer verteilten Softwareanwendung hinzuzufügen.
Pros:
- Die Last wird auf mehrere Server verteilt
- Selbst wenn ein Server ausfällt, gibt es Server, die die Anforderungen oder die Last verarbeiten.
- Sie können je nach Nutzungsmuster oder Auslastung weitere Server hinzufügen oder reduzieren.
- Perfekt für hochverfügbare Webanwendungen oder Stapelverarbeitungsvorgänge.
Nachteile:
- Sie benötigen zusätzliche Hardware / Server zur Unterstützung. Dies würde die Infrastruktur- und Wartungskosten erhöhen.
- Sie müssten zusätzliche Lizenzen für das Betriebssystem oder die erforderliche lizenzierte Software erwerben.
Skalieren nach oben / Unten / Vertikal Skalieren:
Vertikal skalieren (oder nach oben / unten skalieren) bedeutet, einem einzelnen Knoten in einem System Ressourcen hinzuzufügen (oder Ressourcen daraus zu entfernen), wobei in der Regel CPUs oder Arbeitsspeicher zu einem einzelnen Computer hinzugefügt werden.
Vorteile
- Möglichkeit, CPU / RAM / Speicher virtuell oder physisch zu erhöhen.
- Ein einziges System kann alle Ihre Daten- / Arbeitsverarbeitungsanforderungen erfüllen, wobei ein zusätzliches Hardware-Upgrade durchgeführt wird.
- Minimale Kosten für das Upgrade
Nachteile
- Wenn Sie physisch oder virtuell mit Limit ausgereizt sind, haben Sie keine anderen Optionen.
- Ein Absturz kann zu Ausfällen Ihrer Geschäftsverarbeitungsaufträge führen.
Wir haben ausführlich über beide Ansätze in der Skalierbarkeit gesprochen, je nach Bedarf müssen Sie den richtigen Ansatz wählen. Heutzutage hohe Verfügbarkeit von Cloud-Computing-Plattformen wie Amazon AWS / Microsoft Azure usw., Sie haben viele flexible Weisen, auf einer Wolkenumwelt auszuskalieren oder zu vergrößern, die Sie mit praktisch unbegrenzten Betriebsmitteln versieht, vorausgesetzt, dass Sie fähig sind, entsprechend auszuzahlen.