LFCA: Cloud-Verfügbarkeit, Leistung und Skalierbarkeit lernen – Teil 14

Im vorherigen Thema unserer LFCA-Serie haben wir eine Einführung in Cloud Computing gegeben, die verschiedenen Arten und Clouds sowie Cloud-Services erläutert und Sie durch einige der mit Cloud Computing verbundenen Vorteile geführt.

Wenn Ihr Unternehmen immer noch auf der traditionellen IT-Computing-Umgebung basiert, ist es an der Zeit, aufzusteigen und in die Cloud zu wechseln. Es wird geschätzt, dass bis Ende 2021 über 90% der Gesamtarbeitslast in der Cloud verarbeitet werden.

Zu den wichtigsten Vorteilen des Einsatzes von Cloud-Computing gehören verbesserte Leistung, hohe Verfügbarkeit und Skalierbarkeit. Tatsächlich haben wir diese als einen der Hauptvorteile der Nutzung von Cloud-Technologie angesprochen.

In diesem Thema konzentrieren wir uns auf Cloud-Verfügbarkeit, Leistung und Skalierbarkeit und versuchen zu verstehen, wie diese drei zusammenkommen, um Kundenanforderungen zu erfüllen und sicherzustellen, dass Benutzer jederzeit und von jedem Ort der Welt auf ihre Daten zugreifen können, wie sie es benötigen.

1. Cloud-Verfügbarkeit

Die IT-Anwendungen und -Dienste einer Organisation sind entscheidend, und jede Serviceunterbrechung kann sich nachteilig auf den Umsatz auswirken. Die Erwartung der Kunden ist, dass die Dienste rund um die Uhr von jedem Ort aus zugänglich sind. Und das ist es, was die Cloud-Technologie bieten soll.

Hohe Verfügbarkeit ist das ultimative Ziel des Cloud-Computings. Es strebt danach, die maximale Betriebszeit der Dienste eines Unternehmens auch bei Störungen sicherzustellen, die durch unerwartete Serverausfälle oder Netzwerkdegradation verursacht werden können.

Hohe Verfügbarkeit wird durch redundante und ausfallsichere Systeme ermöglicht. Dies geschieht in einer Cluster-Umgebung, in der mehrere Server oder Systeme dieselben Aufgaben ausführen und somit Redundanz bieten.

Wenn ein Server ausfällt, können die anderen weiterhin laufen und die Dienste bereitstellen, die vom betroffenen Server angeboten werden. Ein perfektes Beispiel für Redundanz ist die Datenreplikation über mehrere Datenbankserver in einem Cluster. Sollte der primäre Datenbankserver im Cluster ein Problem haben, wird ein anderer Datenbankserver trotz des Ausfalls die benötigten Daten für die Benutzer bereitstellen.

Redundanz beseitigt einen einzelnen Ausfallpunkt und stellt sicher, dass eine Verfügbarkeit von 99,999 % der Dienste und Anwendungen gewährleistet ist. Clustering bietet auch eine Lastverteilung zwischen den Servern und stellt sicher, dass die Arbeitslast gleichmäßig verteilt wird und kein Server überlastet wird.

2. Cloud-Skalierbarkeit

Ein weiteres Merkmal des Cloud-Computings ist die Skalierbarkeit. Skalierbarkeit ist die Fähigkeit, Cloud-Ressourcen an sich ändernde Anforderungen anzupassen. Einfach ausgedrückt können Sie Ressourcen nahtlos erhöhen oder verringern, um Bedarfsschwankungen zu decken, ohne die Qualität der Dienste oder die Betriebszeit zu beeinträchtigen.

Angenommen, Sie betreiben einen Blog, der anfängt, Hits und mehr Traffic zu bekommen. Sie können ganz einfach weitere Rechenressourcen wie Speicher, RAM und CPU zu Ihrer Cloud-Computing-Instanz hinzufügen, um die zusätzliche Arbeitslast zu bewältigen. Umgekehrt können Sie die Ressourcen bei Bedarf reduzieren. Dies stellt sicher, dass Sie nur für das bezahlen, was Sie benötigen, und unterstreicht die Skaleneffekte, die die Cloud bietet.

Skalierbarkeit ist zweifach: Vertikale Skalierung und horizontale Skalierung.

Vertikale Skalierung

Auch bekannt als ‚Skalierung nach oben‘ beinhaltet die vertikale Skalierung das Hinzufügen weiterer Ressourcen wie RAM, Speicher und CPU zu Ihrer Cloud-Computing-Instanz, um zusätzliche Arbeitslast zu bewältigen. Dies entspricht dem Herunterfahren Ihres physischen PCs oder Servers, um den RAM zu aktualisieren oder eine zusätzliche Festplatte oder SSD hinzuzufügen.

Horizontale Skalierung

Horizontale Skalierung, auch bekannt als ‚Skalierung nach außen‘, beinhaltet das Hinzufügen weiterer Server zu Ihrem Pool von bereits vorhandenen Servern, um die Arbeitslast auf mehrere Server zu verteilen. Mit horizontaler Skalierung sind Sie im Gegensatz zur vertikalen Skalierung nicht auf die Kapazität eines einzelnen Servers beschränkt. Dies bietet mehr Skalierbarkeit und weniger Ausfallzeiten.

Das Skalieren nach außen ist im Vergleich zum Skalieren nach oben wünschenswerter.

Und hier ist der Grund. Bei horizontaler Skalierung fügst du grundsätzlich weitere Ressourcen wie Server oder Speicher zu deinem bereits bestehenden Ressourcenpool hinzu. Dadurch kannst du die Leistung und Effizienz mehrerer Recheninstanzen zu einer zusammenfassen und erhältst somit eine bessere Leistung im Vergleich zu dem bloßen Hinzufügen von Ressourcen auf einem einzelnen Server. Zusätzliche Server bedeuten, dass du nicht mit einem Mangel an Ressourcen konfrontiert bist.

Darüber hinaus bietet horizontale Skalierung Redundanz und Fehlertoleranz auf eine Weise, dass selbst wenn ein Server betroffen ist, die anderen weiterhin den Zugang zu den erforderlichen Diensten gewährleisten. Vertikale Skalierung ist mit einem einzigen Fehlerpunkt verbunden. Wenn die Recheninstanz abstürzt, geht alles mit ihr unter.

Horizontale Skalierung bietet auch maximale Flexibilität im Vergleich zu vertikaler Skalierung, bei der Anwendungen als eine große Einheit erstellt werden. Dies macht es schwieriger, Abschnitte des Codes zu verwalten, zu aktualisieren oder zu ändern, ohne das gesamte System neu starten zu müssen. Das Skalieren ermöglicht die Entkopplung von Anwendungen und erlaubt eine nahtlose Aktualisierung mit minimaler Ausfallzeit.

3. Cloud-Leistung

Die Gewährleistung der Anwendungsleistung, die den Kundenanforderungen entspricht, kann eine ziemliche Herausforderung sein, insbesondere wenn du mehrere Komponenten in verschiedenen Umgebungen hast, die sich ständig miteinander austauschen müssen.

Probleme wie Latenz sind wahrscheinlich aufzutreten und beeinflussen die Leistung. Es ist auch nicht einfach, die Leistung vorherzusagen, wenn Ressourcen von verschiedenen Entitäten gemeinsam genutzt werden. Dennoch können Sie durch die Umsetzung der folgenden Maßnahmen weiterhin hohe Leistung erzielen und über Wasser bleiben.

1. Cloud-Instanz

Stellen Sie sicher, dass Sie die richtigen Cloud-Instanzen mit ausreichend Ressourcen verwenden, um die Arbeitslasten Ihrer Anwendungen und Dienste zu bewältigen. Für ressourcenintensive Anwendungen stellen Sie sicher, dass Sie genügend RAM, CPU und Speicherressourcen für Ihre Cloud-Instanz bereitstellen, um einen möglichen Ressourcenmangel zu vermeiden.

2. Lastenausgleicher

Implementieren Sie einen Lastenausgleicher, um den Netzwerkverkehr gleichmäßig zwischen Ihren Ressourcen zu verteilen. Dadurch wird sichergestellt, dass keine Ihrer Anwendungen von der Nachfrage überfordert wird. Nehmen wir an, Ihr Webserver erhält viel Verkehr, der Verzögerungen verursacht und die Leistung beeinträchtigt.

A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.

3. Caching

Verwenden Sie Caching-Lösungen, um den Zugriff von Anwendungen auf Dateien zu beschleunigen. Caches speichern häufig gelesene Daten und eliminieren somit ständige Datenabfragen, die die Leistung beeinträchtigen können. Sie reduzieren Latenzzeiten und Arbeitslasten, da die Daten bereits zwischengespeichert sind und somit die Antwortzeiten verbessern.

Das Caching kann auf verschiedenen Ebenen implementiert werden, wie z.B. auf Anwendungsebene, Datenbankebene. Beliebte Caching-Tools sind Redis, Memcached und Varnish Cache.

4. Leistungsüberwachung

Zuletzt sollten Sie die Leistung Ihrer Server und Anwendungen überwachen. Cloud-Anbieter stellen native Tools zur Verfügung, die Ihnen helfen können, Ihre Cloud-Server über einen Webbrowser im Auge zu behalten.

Zusätzlich können Sie eigenständig kostenlose und Open-Source-Überwachungstools installieren, die Ihnen helfen können, den Überblick über Ihre Anwendungen und Server zu behalten. Beispiele für solche Anwendungen sind Grafana, Netdata und Prometheus, um nur einige zu nennen.

Zusammenfassung

Wir können nicht genug betonen, wie wichtig Verfügbarkeit, Skalierbarkeit und Leistungsfähigkeit in der Cloud sind. Diese drei Faktoren bestimmen die Qualität des Dienstes, den Sie von Ihrem Cloud-Anbieter erhalten, und ziehen letztendlich die Grenze zwischen dem Erfolg oder Misserfolg Ihres Unternehmens.

Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/