Dieser Blog ist der Beginn einer neuen Blogserie zu realen Beispielproblemen von Unternehmen und beschreibt, wie das App Delivery Network (ADN) von Volterra die beschriebenen Probleme angeht. In diesem speziellen Blog wird eine zentrale Herausforderung im Hinblick auf die Leistung von Application beschrieben, mit der Online-Unternehmen auf der ganzen Welt täglich konfrontiert sind. Diese Herausforderung wird noch größer, da die meisten Verbraucher von zu Hause aus arbeiten. Ich beschreibe, wie Volterra Unternehmen dabei helfen kann, die Distanz zwischen ihren Web-Apps zu verringern und so eine Verbesserung der Application um 77 % zu erreichen, ohne dass die Application neu geschrieben werden muss.
Die Leistung einer Web-App wird normalerweise daran gemessen, wie lange es dauert, bis der Seiteninhalt aus der Sicht des Endbenutzers sichtbar wird. Webentwickler verwenden verschiedene Metriken, um die Leistung ihrer Web-Apps zu messen, z. B. First Contentful Paint, Largest Contentful Paint oder Document Complete. In diesem Blog habe ich die Metrik „Dokument vollständig“ als Maß für die Leistung meiner Web-App verwendet. Webentwickler messen diese Metriken mit Tools wie Web Page Test, Google Lighthouse oder Rigor.
Eine leichte Verschlechterung der Leistung der Web-App hat enorme Auswirkungen auf das Benutzererlebnis und folglich auf die Verkäufe über das Online-Portal. Der E-Commerce-Riese Amazon meldete, dass eine einsekündige Verschlechterung der Application zu einem Umsatzverlust von 1,6 Milliarden Dollar führt. Eine ähnliche wirtschaftliche Auswirkung beobachten Online-Unternehmen in mehreren Branchen, wie in diesem etwas älteren Bericht von Akamai berichtet wird. Google und Microsoft melden ähnliche Zahlen zu den wirtschaftlichen Auswirkungen.
Diese Datenpunkte bestätigen eindeutig, dass die Leistung von Web- Application für Online-Unternehmen oberste Priorität hat.
Betrachten wir das konkrete Beispiel eines Online-Unternehmens im Bereich E-Commerce. Viele E-Commerce-Unternehmen haben ihre Application in einem oder wenigen Rechenzentren und diese Rechenzentren existieren nicht in allen Ländern, in denen die Benutzer der E-Commerce-Unternehmen leben. Wenn sich der Benutzer in einem anderen Land/einer anderen Region als das Rechenzentrum befindet, führt eine hohe Netzwerklatenz vom Benutzer zum Rechenzentrum zu langsamen Seitenladezeiten von fast 6–12 Sekunden. Wie oben erwähnt, steigt die Wahrscheinlichkeit eines Absprungs auf 90 %, wenn die Seitenladezeit 5 Sekunden überschreitet.
Lassen Sie uns den Seitenladevorgang einer Web-App wie in Abbildung 2 gezeigt dekonstruieren.
Sechs Nachrichten nur zum Einrichten der sicheren SSL-Sitzung bei der Übertragung über Links mit hoher Latenz (möglicherweise transatlantische/transpazifische Links) wirken sich sicherlich auf die Seitenladezeiten aus und führen folglich zu einer schlechten Benutzererfahrung.
Es gibt viele Techniken zur Verbesserung der Leistung von Web-Apps durch Optimierung der Application , z. B. durch Komprimieren von Bildern oder Optimieren von Abhängigkeiten, um die Seitenladezeiten zu verkürzen. Diese Optimierungen sind häufig nicht möglich, weil die Application von geschäftlichen Anforderungen bestimmt wird. Selbst wenn diese Optimierungen möglich sind, handelt es sich möglicherweise nicht um eine praktikable Option, weil die Entwickler, die die App geschrieben haben, nicht mehr im Unternehmen arbeiten oder mit der Entwicklung neuer Dienste beschäftigt sind. Daher legen DevOps-Teams in E-Commerce-Organisationen Wert auf Lösungen, die die App-Leistung verbessern können, ohne dass Änderungen an der Application erforderlich sind.
Volterra bietet zwei Produkte an, VoltMesh und VoltStack, die in Kombination mit Volterras ADN die Application um bis zu 75 % verbessern können (siehe Demonstration im nächsten Abschnitt). Das VoltMesh-Produkt von Volterra ist ein weltweit verteiltes Netzwerk- und Sicherheitsprodukt, das bei Konfiguration auf dem ADN von Volterra auch Funktionen zur Application bietet. Das Produkt VoltStack von Volterra bietet verteilte Application und Lebenszyklusverwaltung, wodurch Benutzer Teile ihrer Applications auf das ADN von Volterra auslagern können, um die Application weiter zu verbessern.
VoltMesh und VoltStack verbessern die Leistung von Application bei E-Commerce-Unternehmen auf drei Arten
Die einfachste Lösung zur Verbesserung der Leistung von Web-Apps besteht darin, die SSL-Sitzung über das Global ADN von Volterra zu beenden. Der Satz von sechs Nachrichten zum Einrichten der SSL-Sitzung wird lokal an den globales Netzwerk im Land gesendet und durchquert keine transatlantischen oder transpazifischen Verbindungen. Es wird eine dauerhafte SSL-Sitzung zwischen der Remote-Site des globales Netzwerk und dem Ursprungsserver geben, was die Leistung weiter verbessert. Dies kann wie in Abbildung 3 dargestellt visualisiert werden.
Um die Leistung weiter zu verbessern, können Unternehmen latenzempfindliche Teile ihrer Apps auf dem ADN bereitstellen. Beispiele für latenzempfindliche Teile der Web-App sind die Cookie-Verarbeitung oder GraphQL oder Backend-für-Front-End. In einem E-Commerce-Unternehmen verarbeiten sie beispielsweise Cookies typischerweise, um zu bestimmen, welche Seite dem Benutzer angezeigt werden soll. Wenn der Benutzer z. B. über ein Konto verfügt, wird die Anmeldeseite angezeigt, andernfalls eine Gastseite. Die Verarbeitung von Cookies auf unserem ADN verbessert die Leistung dramatisch im Vergleich zur Verarbeitung von Cookies in zentralisierten Rechenzentren oder in der Cloud am anderen Ende der Welt. Dies kann wie in Abbildung 4 dargestellt visualisiert werden.
Viele Handelsanbieter wie Macy‘s, Home Depot und Target verfügen auch über Ladengeschäfte, in denen die Kunden im Ladengeschäft den Online-Produktkatalog durchsehen, um den Standort der Artikel zu prüfen und auf Sonderangebote/Coupons zuzugreifen. Um das Benutzererlebnis zu verbessern, könnten sie sich dafür entscheiden, nur das Front-End ihrer Web-App auf die In-Store-Computer zu verschieben. Alle übrigen Komponenten ihrer App, d. h. Datenbanken, könnten im Back-End-Rechenzentrum verbleiben, da auf diese nicht so häufig zugegriffen wird wie auf den Front-End-Produktkatalog. Dies kann wie in Abbildung 5 dargestellt visualisiert werden.
Bei diesem Problem handelt es sich grundsätzlich um ein verteiltes Computerproblem über mehrere heterogene Clouds hinweg. DevOps-Teams könnten den Do-it-yourself-Weg gehen, indem sie Stücklösungen von verschiedenen Anbietern wie öffentlichen Cloud-Anbietern, CDN-Anbietern oder Edge-Anbietern zusammenschustern, oder eine Komplettlösung von Anbietern verteilter Cloud-Serviceplattformen kaufen. Die Herausforderungen sind in Abbildung 6 hervorgehoben.
Hier sind die wichtigsten Architekturgrundsätze, die DevOps-Teams bei der Bewertung jeder Lösung berücksichtigen sollten.
Mit dem im Folgenden beschriebenen Testaufbau konnten die Leistungsverbesserungen demonstriert werden, die die einzelnen im vorherigen Abschnitt beschriebenen Volterra-Lösungen bieten:
Die folgenden vier Szenarien wurden getestet und die Leistungsverbesserungen werden für jedes Szenario beschrieben.
Basisszenario: Zunächst stelle ich einen Basiswert für die Leistung der Web-App fest, wobei sich der Benutzer in San Francisco befindet und die Web-App vollständig im Pariser Rechenzentrum ausgeführt wird (siehe Abbildung 8). Die Leistung der Web-App wurde für das Basisszenario mit 3,5 Sekunden gemessen.
Lösung 1 Testszenario: Im Test für Lösung 1 befindet sich der Benutzer noch in San Francisco, die Web-App läuft noch im Pariser Rechenzentrum, die SSL-Sitzung wird jedoch auf dem VoltMesh-Reverse-Proxy beendet, der auf Volterra ADN in San Jose läuft. Dieses Szenario ist in Abbildung 9 dargestellt.
VoltMesh erstellt automatisch eine dauerhafte SSL-Sitzung zwischen dem im San Jose PoP ausgeführten Reverse-Proxy und der im Pariser Rechenzentrum ausgeführten Web-App. Die Leistung der Web-App verbesserte sich auf 2,9 Sekunden , eine Verbesserung von ~18 % .
Lösung 2 Testszenario: Im Test für Lösung 2 werden das Front-End und der Währungs-Microservice auf dem ADN in San Jose eingesetzt. Die restlichen Microservices und Datenbanken laufen weiterhin im Pariser Rechenzentrum. Dieses Szenario ist in Abbildung 10 dargestellt.
Der Grund dafür, nur die Front-End- und Währungs-Mikroservices zu verschieben, liegt darin, dass bei der gelegentlichen Browseraktivität der Benutzer nur diese Mikroservices beteiligt sind. Die Leistung der Web-App verbessert sich auf 2 Sekunden , eine Verbesserung um 31 % gegenüber den Ergebnissen von Lösung 1.
Lösung 3 Testszenario: Beim Test für Lösung 3 wurden das Front-End und der Währungs-Mikroservice auf einem handelsüblichen Intel NUC (4 virtuelle Kerne) im Edge-Bereich eines physischen Geschäfts bereitgestellt.
Der Grund dafür, nur die Front-End- und Währungs-Mikroservices zu verschieben, liegt darin, dass beim gelegentlichen Browsen der Benutzer im physischen Ladenbereich nur diese Mikroservices beteiligt sind. Die Leistung der Web-App verbessert sich auf 0,8 Sekunden , eine Verbesserung um 60 % gegenüber den Ergebnissen von Lösung 2.
Eine Zusammenfassung der Testergebnisse und des sich daraus ergebenden wirtschaftlichen Werts ist in Abbildung 12 dargestellt. Der wirtschaftliche Wert lässt sich ermitteln, indem die Verbesserungen in Sekunden mit dem Wert jeder Sekunde der Verbesserung für das Unternehmen extrapoliert werden. Beispielsweise schätzt Amazon jede Verbesserung der Ergebnisse um eine Sekunde auf einen wirtschaftlichen Wert von 1,6 Milliarden US-Dollar. Daher bietet Lösung 3 gegenüber dem Ausgangswert einen wirtschaftlichen Wert von 4,3 Milliarden US-Dollar.
Wie aus diesen Ergebnissen hervorgeht, können DevOps-Teams mit den drei in diesem Blog vorgeschlagenen Optionen erhebliche Leistungsverbesserungen erzielen, ohne die Application neu zu schreiben, und gleichzeitig das gleiche Maß an Sicherheitsschutz für ihre Application aufrechterhalten. Wenn Sie mehr über echte Anwendungsfälle von Kunden erfahren möchten, die durch eine verteilte Cloud-Plattform gelöst werden können, oder wenn Sie echte Anwendungsfälle von Kunden haben, die Sie mit mir teilen möchten, können Sie mich gerne über LinkedIn oder Twitter erreichen.