Es ist Dienstagabend, Sie schauen gerade „Die Höhle der Löwen“ und sind begeistert. Das Produkt muss ich haben, denken Sie sich und wollen direkt auf die Website, um es zu bestellen. Doch dann passiert – nichts! Die Website ist nicht erreichbar, die Server sind überlastet.

Viele junge Unternehmen sind so begeistert von ihrem Produkt, dass sie es schnellstmöglich auf den Markt bringen wollen. Über die IT-Struktur machen sie sich dabei oft keine Gedanken. Vor allem für Start-ups ist es jedoch wichtig, dass ihre IT-Systeme skalierbar sind. Ist die IT-Infrastruktur nicht skalierbar, können Kunden die Angebote nicht nutzen und die Produkte nicht kaufen. Die Website ist meist die erste Anlaufstelle für Neukunden. Stoßen sie auf eine Fehlermeldung beim Aufruf der Website oder etwa im Bezahlvorgang, schwindet das Vertrauen der Nutzer. Sie sind als potentielle Kunden schnell verloren. Damit geht Start-ups der überlebenswichtige Umsatz und die Reputation verloren – der Supergau für ein aufstrebendes Unternehmen.

Doch was ist ein skalierbares IT-System?

Eine IT-Infrastruktur ist dann skalierbar, wenn sie es schafft, größeres Lastaufkommen zu bewältigen, indem zusätzliche Ressourcen genutzt werden. Man unterscheidet dabei zwischen horizontaler und vertikaler Skalierung.

Vertikale Skalierung („scale up“)

Die vertikale Skalierbarkeit wird auch als scale up bezeichnet. Bei einem scale up wird die Rechenleistung des Servers angepasst. Statt weitere physische Server hinzuzuziehen, werden die vorhandenen Server also beim Anstieg des Kundenbedarfs durch stärkere Server ersetzt oder die vorhandenen Server mit beispielsweise Arbeitsspeicher, Festplatten oder weiteren Prozessoren / Prozessorkernen aufgerüstet.

Ein Kernmerkmal der vertikalen Skalierung ist, dass an der Software meist keine Anpassungen nötig sind. Die Leistungssteigerung erfolgt lediglich über stärkere Hardware.

scales3

Horizontale Skalierung („scale out“)

Eine andere Bezeichnung für die horizontale Skalierbarkeit ist der scale out. Im Fall eines scale out werden weitere Ressourcen (Server) hinzugefügt, um auf die ansteigende Nachfrage vorbereitet zu sein. Die Last wird auf mehrere Rechner oder Datenbanken verteilt (beispielsweise in einer sogenannten Serverfarm). Durch die Mehrzahl an Servern entsteht eine Redundanz, die für Ausfallsicherheit sorgt. Fällt eines der Teile oder Server aus, kann auf die anderen Ressourcen ausgewichen werden.

Ist die Implementierung der Software nicht für eine Parallelisierung geeignet, leidet bei der horizontalen Skalierung schnell die Effizienz.

Die Vorbereitung auf einen großen Nachfrageansturm

Haben Sie eine skalierbare Server-Infrastruktur, gilt es, diese auch angemessen auf einen Nachfrageansturm vorzubereiten und einzusetzen. Um dabei erfolgreich zu sein, spielen vier Faktoren eine Rolle: Wissen und Erfahrung sowie Kenntnis und Testen der eigenen Infrastruktur.

Erfahrung und Wissen

Erfahrungen und Wissen sind der Schlüssel zur erfolgreichen Bewältigung einer hohen Nachfrage auf einer Website. Theorien alleine helfen Ihnen in diesen Fällen kaum, denn auch wenn Szenarien auf dem Papier funktionieren, bedeutet es nicht, dass sie auch in der Realität erfolgreich sein werden.

Wem es an eigener Erfahrung fehlt kann auf die Erfahrungen anderer zurückgreifen. Ehemalige Start-ups, wie Netflix, Facebook, Uber und Twitter berichten in ihren Engineering Blogs u.a. sehr detailliert von ihren eigenen Erfahrungen, wie sie sich auf eine große Nachfrage vorbereiten und mit welchen Lösungen sie die Problemstellungen bewältigen konnten.

Kenntnis und Testen der eigenen Infrastruktur

Für den dauerhaften Betrieb einer Anwendung ist es notwendig, dass Sie Ihre Applikation kennen. Nur so wissen Sie, wann Ihre Anwendung stabil ist und wann eine Überlastung droht. Indem Sie Tests durchführen und die Ergebnisse auswerten, können Sie Schwachstellen, sogenannte Bottlenecks oder Flaschenhälse, erkennen und diese konkret angehen. So vermeiden Sie, dass diese Probleme erst im Ernstfall zum Vorschein kommen, z.B. wenn Sie eine große Nachfrage auf Ihrer Website bewältigen müssen wie die Start-ups in „Die Höhle der Löwen“.

Tests sollten ein Teil Ihres Alltags sein. Insbesondere wenn Änderungen oder Erweiterungen am System durchgeführt werden. Kleine Änderungen können gravierende Folgen haben. Durch konsequenten Einsatz von Monitoring-Tools haben Sie permanenten Einblick in Ihr System, die Systemauslastung, Traffic und Fehlerquellen. Dadurch können Sie schnell erkennen, ob Ihre Anpassungen und Optimierungen erfolgreich waren oder ein Ausfall droht.

Vorbereitung unseres Hertha BSC-Projekts: 10.800 Zugriffe / Sekunde

Mit dem Finanzierungsprojekt für Hertha BSC standen wir ebenfalls vor der Herausforderung, dass es innerhalb von wenigen Minuten eine hohe Anzahl an Zugriffen auf die kapilendo-Plattform geben würde.

zugriffe4

Führen Sie Load Tests und Monitoring durch

Um uns auf die hohen Zugriffszahlen vorzubereiten, haben wir mit Hilfe geeigneter Tools Load Tests durchgeführt. Load Testing sind Softwaretests, mit dem eine zu erwartende große Last auf einem System simuliert wird, um so das Verhalten dieses Systems analysieren zu können. Dazu haben wir bestimmte Annahmen getroffen und diese mit x multipliziert . Wir haben z.B. die Annahme getroffen, dass alle 50.000 Stadionbesucher während des Hertha-Spiels versuchen werden auf die Website zuzugreifen, um herauszufinden welche Kapazitäten wir benötigen, wenn dieser Fall eintritt. Plattformen wie Loader.io und Loadimpact.com bieten die Möglichkeit, Load Tests durchführen.

Es reicht jedoch nicht die unterschiedlichen Szenarien nur theoretisch durchzurechnen.

Es reicht jedoch nicht die unterschiedlichen Szenarien nur theoretisch durchzurechnen. Daher haben wir zusätzlich Livesimulationen durchgeführt. So konnten wir sehen, wie sich das System bei einem realen Zugriff verhält. Mit Hilfe von Monitoring soll eine gute IT-Infrastruktur und deren reibungsloser Betrieb sichergestellt werden, indem überwacht wird, ob sich alle beteiligten Komponenten innerhalb notwendiger Parameter bewegen.

Erhöhen Sie die Leistungsfähigkeit frühzeitig

Damit wir sicher gehen konnten, dass uns bei hohen Zugriffszahlen stopuhr
ausreichend Rechenleistungen zur Verfügung stehen, haben wir uns von vornherein für eine IT-Architektur entschieden bei der sowohl ein scale up, als auch ein scale out möglich ist. Während des Peaks konnten wir sowohl von der vertikalen, als auch der horizontalen Skalierung der IT-Infrastruktur profitieren.

cloudWir haben uns auf viele verschiedene Szenarien vorbereitet wie die
schnelle Skalierung der IT-Architektur, viele gleichzeitige Besucher, das Monitoring und den Ausfall der Website und Systeme. Als Hilfestellung dienten uns die Erfahrungsberichte in den Engineeringblogs. Bei Cloud-Hosting-Anbietern, wie Amazon Web Services (AWS), stehen Ihnen zusätzlich erfahrene Ingenieure zur Verfügung, die Sie bei der effizienten Nutzung der Infrastruktur beraten können.

Ein bis zwei Tage vor der Liveschaltung des Herthaprojektes haben wir die Kapazitäten von AWS hochfahren lassen. Durch das sogenannte Pre-Warming werden bestimmte Services (z.B. Load Balancer) bereits soweit hochgefahren, dass sie bei plötzlichen Peaks die Last sofort bewältigen können. Darüberhinaus können z.B. mit einem Content Delivery Network (CDN) und effizientem Caching die Traffic-Lasten auf mehrere Server verteilt werden, sodass auch bei Lastspitzen eine große Datenmenge problemlos übertragen werden kann.

Stack Overflow ist ein Forum von und für Entwickler, in dem Sie sich mit Profis austauschen und unterschiedliche Ansätze diskutieren können. Nick Craver ist einer der Softwareentwickler bei Stack Overflow. Auf seiner Website erklärt er genau, wie die Stack Overflow Infrastruktur aufgebaut ist, welche Hardware sie nutzen und vieles mehr.

Flexibel und zielgerichtet arbeiten mit Cloud-Hosting

Vorteile des Cloud-Hosting sind zum einen die schnelle Verfügbarkeit hoher Kapazitäten. Innerhalb von kürzester Zeit standen uns die benötigten Ressourcen zur Verfügung. Zum anderen können Ressourcen zielgerichteter eingesetzt werden. Diese Möglichkeiten gehen in der Regel mit höheren Kosten einher, als beim Einsatz  statischer Ressourcen. Durch die dynamische Steuerung der Cloud können diese Kosten ausgeglichen werden. Werden mehr Kapazitäten für Kernzeiten gebraucht, dann entstehen dadurch höhere Kosten. Senkt man die Kapazitäten während nachfrageschwachen Zeiten, z.B. nachts, dann werden die Kosten drastisch gesenkt. Bei statischen Servern entstehen immer fixe Kosten für einen Server, der die meiste Zeit kaum ausgelastet ist.

Aufbau und Inhalt beeinflussen, wie schnell Ihre Website lädt

Neben ausreichenden Server-Kapazitäten (Hardware + Software) beeinflussen auch der Aufbau (Code) und die Inhalte (Content) einer Website, wie zuverlässig die Seite bei hohen Zugriffszahlen funktioniert.

Heutzutage werden die meisten Dinge, die online gemacht werden, mobil erledigt. Eine Studie von StatCounter besagt, dass im Oktober dieses Jahres zum ersten Mal mehr Nutzer weltweit mobil oder über Tablets im Internet gesurft haben, als auf Desktops. Häufig wird in diesem Zusammenhang auch von „Mobile First“ und „Content First“ gesprochen. „Mobile First“ gewinnt wegen des Wandels hin zu mobilen Geräten weiterhin mehr und mehr an Bedeutung.

Im Vordergrund steht eine optimierte User-Experience.

Websites bieten in der mobilen Ansicht wesentlich weniger Platz, als es eine Website auf einem Desktop bietet. Es gilt, die Websiteinhalte nur auf das Nötigste und Wichtigste zu reduzieren, um den begrenzten Platz möglichst gut zu nutzen. Die Bedürfnisse eines Nutzers mit einem Mobilgerät sind anders als an einem großen Bildschirm. Im Vordergrund steht eine optimierte User-Experience.

Nicht nur der begrenzte Platz stellt Sie vor besondere Herausforderungen. Hinzu kommen die unstabilen mobilen Netze. Selbst im modernen LTE-Netz ist nie sicher, wie stark die Verbindung ist. Sie kann je nach Standort stark variieren. Im Olympiastadion und anderen Fußballstadien sind Mobilfunknetze während Spielen bereits sehr belastet. Nach einer Durchsage im Stadion, dass das Projekt jetzt gestartet ist, wollten in einem ohnehin belasteten Netz alle gleichzeitig auf dieselbe Website zugreifen. Was die Netzqualität zusätzlich strapazierte. Um allen einen Zugriff auf die Website zu ermöglichen, gilt es daher mehrere Faktoren zu beachten.

Lange Ladezeiten verjagen Kunden

rex

Je kleiner Sie die zu übertragende Datenmenge halten, umso wahrscheinlicher ist es, dass auch Personen mit schlechtem Empfang die Seite nach wenigen Sekunden vollständig geladen haben. Lädt die Seite zu lange, verlieren Sie potentielle Kunden. Wir sind es gewohnt, dass Websites innerhalb von drei Sekunden vollständig sichtbar sind. Eine Untersuchung von Walmart belegt, dass jede Sekunde weniger Wartezeit die Conversion Rate um 2 Prozent erhöht.

Legt der Nutzer in einem Online-Shop Artikel in den Warenkorb, kommt es bei mobiler Nutzung häufig vor, dass Daten durch schlechten Empfang nicht übertragen werden können und der potentielle Käufer nur einen Ladebalken ohne weitere Informationen auf dem Display angezeigt bekommt. Durch die Überwachung von nicht erfolgreichen Anfragen kann eine Neuverbindung zu Ihrer Website automatisiert werden, ohne dass der User zu einer wiederholten Aktion gezwungen ist.  Im Falle des Online-Shop Nutzers bedeutet es, dass das Gerät so oft wieder versucht auf den Shop zuzugreifen, bis übermittelt wurde, dass der Nutzer ein Produkt in den Warenkorb legen möchte. Im besten Falle funktioniert Ihre Website oder Ihre mobile App also zeitweise Offline.

Verhindern Sie, dass Ihr Kunde auf einen weißen Bildschirm guckt

Machen Sie sich einen Plan, welche Inhalte relevant sind und zuerst sichtbar sein sollen. Diese Inhalte sollten auch bei schlechter Verbindung schnellstmöglich zu sehen sein, damit man frühzeitig einen ersten Eindruck der Inhalte bekommt und einen Fortschritt bemerkt. Insbesondere der Textinhalt sollte schnell angezeigt werden. Vermeiden Sie also aufwendige Schriftarten, die lange Ladezeiten haben, um den Text bereits anzuzeigen bevor die Website vollständig geladen wurde. Verlagern Sie die Übertragung von nicht elementare Ressourcen an das Ende Ihrer Website.

Um zu verhindern, dass Ihre Kunden zu lange warten müssen und stattdessen ein weißes Display sehen, hilft es zunächst den sichtbaren, oberen Bereich der Website an den Nutzer zu senden (Above the Fold/Critical Path Optimierung). Erst wenn diese Daten übertragen wurden oder der Kunde weiter runter scrollt, wird auch der untere Teil der Seite vollständig geladen. Dieser Vorgang wird auch Lazy Loading genannt. Vor allem bei bildlastigen Websites ist dies sehr zu empfehlen.

Reduzieren Sie die Anzahl der Bilder auf ein Minimum, da diese am längsten brauchen um zu laden. Optimieren Sie außerdem die Bilder für die verschiedenen Endgeräte, um die Datenmenge weiter zu minimieren. Durch die Nutzung von Progressive Images werden diese bereits rudimentär anzeigt, bevor sie komplett geladen wurden.

Hertha BSC-Projekt als optimierte, statische Onepage-App

Es wurden ausschließlich die wichtigsten Informationen geteilt, die vollständig auf Hertha konzentriert waren.

Für das Hertha-Projekt haben wir eine eigene statische Onepage-App als Landingpage entwickelt, die ausschließlich dieses eine Projekt zeigte und für mobile Geräte und schlechte Datenverbindungen optimiert war. Es wurden ausschließlich die wichtigsten Informationen geteilt, die vollständig auf Hertha konzentriert waren. Der vollständige Anmeldungs- und Investitionsprozess war in dieser Onepage-App abgebildet. Erst nach der Anmeldung/Registrierung und der Gebotsabgabe wurden Nutzer für den Bezahlprozess auf die temporär in Hertha-Farben gebrandete Website umgeleitet. Dieser Schritt konnte dann bequem zu einem späteren Zeitpunkt ausgeführt werden.

Testen Sie die Website auf dem Desktop und mobil

Ebenso wie die Serverkapazitäten gilt es auch die Website sowohl auf dem Desktop als auch mobil zu testen. Achten Sie vor allem bei den mobilen Geräten darauf nicht nur Geräte mit der neusten Technik für Ihre Tests zu verwenden, sondern auch ältere Mobilgeräte. Mit Tools, wie Test my site von Think with Google oder PageSpeed Insights können Sie schnell und einfach die Geschwindigkeit und Benutzerfreundlichkeit sowohl Ihrer Desktop, als auch Ihrer mobilen Website testen. Mit WebPagetest können Sie die Geschwindigkeit des Renderings bei unterschiedlichen mobilen Verbindungen, Browsern und Standorten testen. OnPage.org ist ein Tool, um ein Monitoring und allgemeine Tests der Website durchzuführen sowie strukturelle und SEO-Schwachstellen aufzudecken.

Das Vertrauen der Kunden nicht verspielen

Unser Ziel war es trotz großem Ansturm auf die Website zu jederzeit erreichbar zu halten. Als Online-Plattform ist alles rund um „Online“ unsere Kernkompetenz. Dasselbe gilt auch für Händler, die ihre Produkte ausschließlich online vertreiben, wie es ein Großteil der DHDL-Kandidaten tut. Stoßen Kunden auf eine Website, die nicht lädt, verlieren Sie ihr Vertrauen in uns und unsere Fähigkeiten ihre Daten sicher zu behandeln. Der Umsatz ist das einzige Werkzeug, das ein Start-up hat. Geht der Umsatz verloren, kann das das Ende eines jungen Unternehmens bedeuten. Bei den DHDL-Start-ups kommt hinzu, dass die Augen eines Millionenpublikums auf sie gerichtet sind und Fehler sich durch die sozialen Medien in Sekundenschnelle verbreiten. Das erschwert die Gewinnung von Neukunden.

mindmapa

Planen, Skalieren, Testen, Optimieren

Um den Supergau während des Hertha BSC-Projekts zu verhindern haben wir darauf geachtet, dass unsere IT-Infrastruktur skalierbar ist, die Softwareeinstellungen auf unsere Anforderungen angepasst waren und die Systeme unter realistischen Bedingungen getestet.

Durch die Optimierung der Websiteinhalte, vor allem für mobile Geräte, konnten wir auch Kunden mit schlechter Verbindung Zugriff auf unsere Website ermöglichen. Indem kleine Dateien früher geladen wurden als große Dateien konnten wir verhindern, dass die Besucher auf einen weißen Bildschirm schauen mussten.

 

Passende Beiträge

Schreiben Sie einen Kommentar

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