Skalierbare Webarchitektur

Was ist Skalierbarkeit?
Skalierbarkeit ist die wünschenswerte Eigenschaft eines Systems, Netzwerks oder Prozesses, die seine Fähigkeit anzeigt, ohne Qualitätsverlust zu reagieren und sich anzupassen, oder das kontinuierliche Beschäftigungswachstum fließend zu bewältigen, um bereit zu sein, größer zu werden, ohne die Qualität der angebotenen Dienstleistungen zu verlieren .
Man könnte sagen, wie groß die Fähigkeit unseres Systems ist, einen höheren Arbeitsaufwand mit Änderungen oder Erweiterungen zu unterstützen, die in Bezug auf Kosten, Zeit, Zeit und Komplexität vertretbar sind.
Arten der Skalierbarkeit
Generell kann man von vertikaler und horizontaler Skalierung oder einer Kombination aus beidem sprechen.

Vertikale Skalierung


Es besteht im Wesentlichen darin, die Kapazität eines oder mehrerer spezifischer Elemente unserer Architektur zu erhöhen, zum Beispiel den Speicher unseres zentralen Servers zu erweitern oder die CPUs durch andere schnellere zu ersetzen. Zusammenfassend lässt sich sagen, dass Sie die Kapazitäten des Servers erhöhen, was bei der Virtualisierung sehr üblich ist und wir sagen, dass der Server zu diesem Zeitpunkt 30% des verfügbaren RAMs haben wird.

Horizontale Skalierung


Es ist diejenige, die wir im Tutorial detailliert beschreiben werden, basiert auf der Erhöhung der Anzahl der Knoten, die dieselbe Aufgabe ausführen, indem unterschiedliche Planungsarten verwendet werden. Wenn wir beispielsweise einen gesättigten Webserver haben, fügen wir einen weiteren hinzu, um die Last auszugleichen.
Arten von Webarchitekturen basierend auf Ebenen.
Wir werden über Architekturen sprechen, die mit Linux-Systemen angewendet werden können, mit Open-Source-Tools werden wir von den einfachsten zu einigen ziemlich fortschrittlichen gehen, die horizontale Skalierbarkeit und Ausfallsicherheit bieten. Alle diese Architekturen können in jedem angewendet werden PaaS oder mit eigener Infrastruktur.

1. Ein-Ebenen-Architektur


Es ist das einfachste von allen, bei dem es nur einen Server mit Apache und MySQL gibt, auf den aus der Ferne zugegriffen werden kann. Es kommt sehr häufig auf Seiten mit geringer Zugriffsmarge oder Testumgebungen vor, bietet keine Toleranz gegenüber Fehlern und es ist schwierig, es horizontal zu verwenden.

2. Zweistufige Architektur


Diesmal haben wir die Datenbank vom Webserver getrennt und bieten ein wenig Fehlertoleranz. Auf diese Weise kann der Webserver bei einem Ausfall der Datenbank datenbankunabhängig Inhalte statisch anbieten. Und falls der Webserver ausfällt, können wir immer noch auf die Informationen zugreifen, indem wir einen neuen Webserver erneut einrichten.Das Design weist einige Mängel auf, da es nicht sehr skalierbar ist.

3. Dreischichtige Architektur


Dieses Mal verwenden wir einen Load Balancer, der alle Anfragen von Benutzern empfängt. Dieses Mal bieten wir ein skalierbareres Design an, sodass wir bei steigender Auslastung weitere Webserver hinzufügen und skalieren können. Wir können sogar Autoscaling anwenden, sodass Webserver bei einer bestimmten Auslastung oder zu Stoßzeiten automatisch hinzugefügt werden. Das Problem bei diesem Design ist, dass wir unsere Datenbank sättigen können.

4. Vierschichtige Architektur


Jetzt verwenden wir einen Load Balancer und einen Memcached, um das System skalierbarer zu machen. Mit diesem Design können wir zusätzlich zur Fehlertoleranz so viele Datenbanken und Webserver wie nötig hinzufügen. Wir können die Last zwischen den Datenbanken aufteilen mit KASSANDRA bietet eine Multi-Node-Implementierung. Dieses Design ist viel komplexer, aber ich füge eine viel größere Fehlertoleranz und die Möglichkeit hinzu, alle seine Ebenen zu skalieren.

5. Fünfstufige Architektur


Der Inhalt einer Webseite kann in statische und dynamische unterteilt werden. Zum Beispiel teilen wir die Webschicht in einen Apache-Server und einen anderen mit JAVA-Anwendungen auf, auf denen Jetty oder JBoss ausgeführt wird. Apache stellt den statischen Inhalt bereit, während der Anwendungsserver den dynamischen oder spontanen Inhalt verarbeitet. Ein Beispiel hierfür kann der FAQ-Bereich einer Support-Website sein, da es sich lediglich um statische Inhalte handelt, die von APACHE / NGINX bearbeitet werden können.

VERGRÖSSERN

6. Sechsstufige Architektur


Wir können etwas eleganter sein und ein Content Delivery Network (CDN) hinzufügen, oder was in AWS bekannt ist Amazon CloudFront-CDNWir haben beispielsweise eine E-Learning-Website und unsere Benutzer laden die Leitfäden als PDF oder Videos von unserer Website herunter. Wir können die gesamte Bandbreite für Downloads einsparen, indem wir sie von einem CDN anbieten, das sich darum kümmert. Der Rest des Webs kann auf unserer Infrastruktur ausgeführt werden.

VERGRÖSSERN

SchlussfolgerungenWir haben mehrstufige Architekturen gesehen, die je nach Webverkehr angewendet werden können. Es ist ratsam, zukunftsorientierte Architekturen zu schaffen, die die Fehlertoleranz skalieren und aufrechterhalten können, um Einbrüche im Web aufgrund fehlender Ressourcen oder des Ausfalls eines unverzichtbaren Knotens zu vermeiden. Indem wir einige dieser Designs zusammen mit anderen Empfehlungen wie Backups und Auto-Deployments erstellen, können wir eine Website mit 99,9 fehlertoleranter Uptime anbieten.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave