Web App erstellen:
Wie entwickelt man eine skalierbare Web Applikation

Facebook hatte im Jahr 2004 bereits eine Million User. Mitte 2016 hatte sich die Zahl der User bereits auf 1,7 Milliarden erhöht.

Sobald die User Facebook aufrufen, wollen sie umgehend auf ihren newsfeed zu oder zu den ihnen wichtigen Themen geleitet werden. Oder sie möchten etwas in der Community veröffentlichen, weshalb sie schnell etwas schreiben wollen. Und genau das tun sie. Es ist die Skalierbarkeit der Aktion.

Leitsätze für ausbaufähige Websites- kritische Tipps für ihre Entwicklung

Bevor über die Designarchitektur entschieden wird, sind die folgenden Planungsrücksichten kritisch zu betrachten

Verfügbarkeit

Für ein Unternehmen, das seinen Ruf wahren muss, ist eine Website lebenswichtig, die jederzeit erreichbar ist. Das gilt vor allem für die großen Online Einzelhändler. Selbst eine kurze Zeit, in der die Website nicht verfügbar ist, können Einnahmen in Millionenhöhe verloren gehen. Das gilt für SAAS, Online- Herausgeber und jedes andere Unternehmen mit Webanwendung.
Andauernde Verfügbarkeit kann aber nur garantiert sein, wenn bereits bei der Entwicklung daran gedacht wird, dass die Website sowohl gegen Hackerangriffe wie auch gegen technische Ausfälle geschützt ist. Zudem sollte bei einem Ausfall eine sofortige Wiederherstellung des Systems erfolgen.

Leistung

Eine ausbaufähige Website mit einer geringen Leistungsfähigkeit kann das SEO Ranking negativ beeinflussen. Die Leistung muss auf eine schnelle Antwort wie auch auf ein schnelles Wiederfinden gesteigert werden, um ein höheres Niveau zu erreichen.

Zuverlässigkeit bei der Wiederauffindung

Wenn ein Benutzer nach bestimmten Daten sucht, sollte er diese Informationen innerhalb kürzester Zeit auch bekommen. Zudem sollten die Daten so oft wie möglich aktualisiert werden. Die User sollten zudem die Sicherheit haben, dass sie einmal im Internet gefundene Daten jederzeit wieder aufrufen können.

Bedienbarkeit

Das System der Web App muss leicht zu bedienen wie auch aufrechtzuerhalten und zu aktualisieren sein. Alle Probleme können leicht erkannt werden.

Betriebskosten

Diese bestehen nicht nur aus der Hardware und der Software. Dazu gehören auch die Entwicklungskosten, zudem die Kosten, um das System am Laufen zu hat. Die gesamten Betriebskosten umfassen alles, was dazu gehört, die Website zu besitzen und das System am Laufen zu halten.

Es ist wichtig, alle diese Regeln zu befolgen, damit der Erfolg und das Wachstum einer Web App garantiert ist. Aber trotz aller Regeln muss eine gewisse Flexibilität herrschen, um sich an die gegebene Situation anzupassen. Wenn sich der Betreiber dafür entscheidet, das Höchstleistungsproblem durch die Anschaffung zusätzlicher Server zu beheben, erhöht das die Betriebskosten und kann die Handhabung erschweren.

Architektonische Grundlagen

Es hat sich im Laufe der Zeit nicht als klug erwiesen, von Anfang an auf die volle Leistungsbereitschaft zu setzen statt zunächst mit einer grundsoliden Architektur das System aufzubauen. Dabei muss natürlich eine etwaige Leistungssteigerung im Auge behalten werden. Das spart Zeit und finanzielle Mittel ein, die später besser für eine Leistungserweiterung eingesetzt werden können.

Diese Kernfaktoren machen die Leistungssteigerung später einfacher

Dienstleistungen

Es gibt zwei Dienstleistungen, die den Benutzern einer Website ermöglicht werden sollten – das Lesen und das Schreiben. So dient beispielsweise eine große Website, die Fotos anbietet, den Usern, in dem sie nach Fotos suchen können, was dem Lesen gleichzusetzen ist. Wenn ihnen ein Foto gefällt, können sie dieses Foto auswählen, was wiederum dem Schreiben entspricht. Die meisten Anbieter ziehen es vor, dass Gelesene so schnell und so oft wie möglich wieder anzubieten, weil das schneller geht als das Schreiben. Diese Entscheidungen müssen allerdings schon beim Entwurf der Website getroffen werden.

  • Die Architektur für die Speicherung sollte von Anfang an ohne Limit geplant werden.
  • Images sollten so schnell wie möglich wieder auffindbar sein. Je länger das Aufladen eines Fotos dauert, desto größer muss hier die Leistungssteigerung sein.
  • Wenn ein User ein Foto laden will, muss es dauerhaft verfügbar sein.

Das Bauen einer kleinen Web App, die auf einem einzelnen Server verwaltet wird, würde sinnlos sein. Sie sollte unbedingt eine Webarchitektur enthalten, die ausbaufähig und leistungssteigernd konzipiert ist, wodurch der User mehr Daten jeder Art wiederfinden kann. Zudem sollte ausreichend Speicherkapazität und ein schneller Wiederaufbau möglich sein.

Das Teilen der Funktionen

Service-Oriented Architecture (SOA) ist die Lösung. Jeder Dienst wie Schreiben und Lesen kann seinen eigenen funktionellen Zusammenhang haben.

Bei Problemen sollte wie folgt vorgegangen werden

  • Probleme isolieren und anschließend mit einem Mitarbeiter lösen.
  • Jede Funktion soll unabhängig agieren können, was die Leistung steigert. Allerdings werden Funktionen mit einem Bug nicht mit den anderen zusammenarbeiten.
  • 2 Funktionen dürfen nicht miteinander konkurrieren, wenn die Leistung gesteigert werden soll. Das behindert die Leistung.

Weitschweifigkeit

Bei der Webentwicklung sollte auch darauf geachtet werden, dass bei einem Verlust von Daten oder ähnlichem nicht gleich das ganze System dadurch beschädigt wird. Es wird also eine Weitschweifigkeit gebraucht, die eine gewisse Toleranz gegenüber Verlusten möglich macht. Solche Sonderfälle sind beispielsweise:

Failover:

Wenn ein Server urplötzlich ausfällt, kann das einen großen Schaden anrichten, der jedoch durch eine Kopie des Systems gemildert wird.

Geteilte Architektur

Wenn jeder Knoten unabhängig arbeitet, können jederzeit weitere Knoten hinzugefügt werden, ohne die anderen zu beeinträchtigen. So kann die Leistung nach und nach gesteigert werden.

Versagen eines Knotenpunktes

Sollte ein Knoten ausfallen oder versagen, betrifft das die anderen Knoten nicht.

Aufteilungen

Es muss bei der Entwicklung nicht die komplette Kapazität ausgereizt sein. Jedoch sollte die Websites so geplant werden, dass sie jederzeit aufgerüstet werden kann. Es gibt zwei Arten der Leistungssteigerung- die vertikale oder die horizontale Steigerung.

Vertikale Steigerung

Es gibt mehrere Wege, die Leistung zu erhöhen wie weitere Laufwerke oder sogar weitere Server hinzufügen. Je größer und stärker die Server sind, desto mehr Leistung steht dem System zukünftig zur Verfügung. Dabei ist nicht nur eine Vergrößerung des Speichers wichtig, sondern auch der CPU sollte entscheidend schneller arbeiten.

Horizontale Steigerung

Hierbei werden mehr Knoten hinzugefügt. Zusätzlich können weitere Server oder andere Rechenquellen integriert werden.

Leistungsstarker und schneller Datenzugang – Strategien und Methoden

Eine einfache Web App schließt das Internet, einen App Server wie auch Datenbankserver ein. Das Entwickeln einer Web Appsollte ein zukünftiges Wachstum in sich bergen. Es gibt Arten des Zugangs- zum einen über App Server und über die Datenbank.
Bei der Herstellung einer Web App denkt der App Server gewöhnlich in verschiedenen Aufteilungen, was ganz von der Basis Architektur abhängt. Das erlaubt ihm auch, horizontal leistungssteigernd zu sein. Die harte Arbeit wird sowohl über Datenbankserver wie auch über den Service ermöglicht.

Es gibt bestimmte Herausforderungen und ähnlich praktikable Methoden, um die Leistung der Datenbank oder anderen Servicesystemen zu ermöglichen. Auch die Größe des Speicher wie auch der schnelle Datenzugriff sollten zur Verfügung stehen.

Geheime Speicher

Der Grundsatz der Web App ist einfach: Daten, die vor kurzem gesucht wurden, werden mit großer Wahrscheinlichkeit wieder aufgerufen.

Diese geheimen Speicher werden in den meisten Schichten der Daten Architektur verwendet, damit sie das schnelle Wiederfinden von Daten oder Dateien erleichtern. Um die Schnelligkeit langfristig garantieren zu können, sollte auf die ursprüngliche Quelle in der Datenbank geachtet werden. Leider gibt es nur wenige Stellen, an denen eine Web App eingefügt werden kann.

Auf dem Knoten beginnen

Es ist möglich, einen Knoten so zu integrieren, dass die Daten vorsorglich gespeichert werden und dem User umgehend zur Verfügung stehen. Wenn im Knoten keine Daten zu finden sind, können diese auch in einer Datenscheibe stecken. Je mehr Leistung gebraucht wird, desto mehr Knoten sollten installiert werden. Allerdings muss die Architektur so entwickelt worden sein, dass sie die zukünftig höhere Auslastung besser ausbalancieren und handhaben kann. Dafür werden die gewünschten Daten an einen bestimmten Knoten gesendet, damit er sich dem größeren Potenzial anpassen kann.

Proxies

Proxies können eine große Hilfe bei der Leistungssteigerung und bei der Verarbeitungen von Materialien sein. Jedoch ist es auch möglich, dass User mit dem Angebot unzufrieden sind und die vorhandenen Daten kaum durch eine Recherche erreicht wurden.

Indizes

Durch das Hinzufügen von Indizes zur originellen Website-Architektur wird der Vorteil, alle Daten schneller lesen zu können, sich auch finanziell leistungssteigernd auswirken. Wenn es riesige Datensätze in TB Größe gibt, der User aber nur einen winzigen Teil sucht, muss die Suche optimiert werden. Dabei können Indizes bei der Web App ebenfalls behilflich sein.

Lastenverteiler

Der Lastenverteiler ist ein kritisches Stück der Architektur bei der gesamten Entwicklung der Web App. Das Konzept soll die Last während einer erhöhten Nutzung durch die User davor bewahren, sich gegenseitig zu behindern. Der Lastenverteiler verteilt die Aufrufe gleichermaßen auf die Knoten und sorgt so für eine gleichbleibende Leistungsbereitschaft der Web App. Darum lässt sich eine Web App auch so gut durch die Einfügung neuer Knoten erleichtern, weil der Lastenverteiler dafür sorgt, dass die Anfragen gleichermaßen verteilt werden.

Nginx ist eine gute Wahl für die Node.Prozesslastausgleich und Nginx lässt sich auch sehr leicht konfigurieren und bedienen. Zudem können die Entwickler verschiedene Gewichte verteilen, was vor allem für horizontale Leistungssteigerung gedacht ist.

Fazit

Größere Projekte mit einer hohen Last verlangen von den Betreibern große Erfahrungen und bestimmte Kenntnisse. Bei der Gestaltung einer Web App sollte die zukünftige Leistungssteigerung gleich mit einkalkuliert werden. Das ist noch wichtiger als ein Design zu entwerfen, denn die Leistungsfähigkeit einer Web App entscheidet maßgeblich über deren Erfolg mit. Eine frühzeitige Einstellung auf die Leistungssteigerung spart den Betreibern viel Zeit und Geld ein. Im Großen und Ganzen gibt es viele Pläne und Methoden, um die Leistung einer Web App aufzumotzen. Schließlich sollten die Strukturen darauf ausgelegt sein, zukünftig auch Millionen von Besuchern pro Monat verkraften zu können. Um bei einer Web App später keine erwünschten Leistungsgrenzen zu erreichen, sollte die Struktur so angelegt werden, dass sie jederzeit bequem und auf verschiedene Arten aufgerüstet werden kann.

5/5 (123)
Teilen:

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert