Caching – Übersicht
Durch Caching werden Anwendungen bei der Skalierung deutlich schneller und kostengünstiger
Was ist Caching?
Ein Cache ist in der Informationstechnologie eine Hochgeschwindigkeitsspeicherebene, auf der eine Datenteilmenge meist temporär gespeichert wird und über die diese Daten bei zukünftigen Anfragen schneller bereitgestellt werden können als über den primären Speicherort dieser Daten. Über Caching können bereits abgerufene oder berechnete Daten effizient wiederverwendet werden.
Wie funktioniert Caching?
Die Daten in einem Cache werden im Allgemeinen auf Hardware mit schnellem Zugriff gespeichert, beispielsweise im RAM (Random Access Memory), gelegentlich auch in Verbindung mit einer Softwarekomponente. Zweck eines Cache sind schnellere Datenabrufzeiten durch Vermeidung eines Zugriffs auf die zugrunde liegende langsamere Speicherebene.
Der Geschwindigkeit eines Cache steht als Nachteil seine geringere Kapazität gegenüber. In einem Cache wird in der Regel nur eine Teilmenge der Daten, und dies auch nur vorübergehend, gespeichert, während die Daten in einer Datenbank in der Regel vollständig und persistent sind.
Caching – Übersicht
RAM und In-Memory-Engines: Dank der hohen, durch RAM und In-Memory-Engines unterstützten Anforderungsraten bzw. E/As (Ein-/Ausgabevorgänge pro Sekunde) erhöht sich durch Caching die Datenabrufleistung erheblich und dies bei reduzierten Kosten. Um den gleichen Durchsatz mit herkömmlichen Datenbanken und datenträgerbasierter Hardware zu erreichen, wären erheblich mehr Ressourcen erforderlich. Diese zusätzlichen Ressourcen würden die Kosten in die Höhe treiben, ohne nur annähernd die geringe Latenz eines In-Memory-Cache zu erreichen.
Anwendungen: Caches können für die verschiedensten Technologieebenen wie Betriebssysteme, Netzwerkebenen (einschließlich Content Delivery Networks (CDN) und DNS), Webanwendungen und Datenbanken genutzt werden. Sie können das Caching nutzen, um die Latenzzeit deutlich zu reduzieren und die IOPS für viele leseintensive Anwendungs-Workloads zu verbessern, z. B. bei Q&A-Portalen, Spielen, Medienfreigabe und sozialen Netzwerken. Informationen im Cache können die Ergebnisse von Datenbankabfragen, rechenintensive Berechnungen, API-Anfragen/Antworten und Web-Artefakte wie HTML, JavaScript und Bilddateien enthalten. Auch rechenintensive Arbeitslasten mit Datensatzmanipulationen wie Empfehlungsengines und HPC-Simulationen profitieren sehr von einer In-Memory-Datenebene, die als Cache fungiert. Bei diesen Anwendungen muss auf sehr große Datensätze in Echtzeit über Cluster von Maschinen zugegriffen werden, die sich über Hunderte von Knoten erstrecken können. Aufgrund der Geschwindigkeit der zugrunde liegenden Hardware ist die Bearbeitung dieser Daten in einem plattenbasierten Speicher ein erheblicher Engpass für diese Anwendungen.
Designmuster: In einer verteilten Computing-Umgebung ermöglicht eine dedizierte Caching-Ebene die vom Cache unabhängige Ausführung der Systeme und Anwendungen mit ihren jeweils eigenen Lebenszyklen, ohne dass der Cache dadurch beeinträchtigt würde. Der Cache dient als zentrale Schicht, auf die von unterschiedlichen Systemen mit eigenem Lebenszyklus und eigener Architekturtopologie zugegriffen werden kann. Dies ist besonders relevant in einem System, in dem Anwendungsknoten dynamisch skaliert werden können. Wenn sich der Cache auf demselben Knoten befindet wie die Anwendung oder die Systeme, die ihn nutzen, kann die Skalierung die Integrität des Cache beeinträchtigen. Darüber hinaus kommen lokale Caches nur der lokalen Anwendung zugute, die die Daten verbraucht. In einer verteilten Caching-Umgebung können sich die Daten über mehrere Cache-Server erstrecken und an einem zentralen Ort zum Nutzen aller Verbraucher dieser Daten gespeichert werden.
Bewährte Methoden beim Caching: Bei der Implementierung einer Cache-Ebene sollten Sie genau wissen, wie lange die Daten im Cache gespeichert werden. Ein erfolgreicher Cache führt zu einer hohen Trefferquote, das heißt, die angeforderten Daten sind bei der Abfrage vorhanden. Einen Cache-Fehlversuch erhalten Sie hingegen, wenn die angeforderten Daten nicht im Cache vorliegen. Durch Parameter wie Time to Live (TTL) kann der Datenablauf gesteuert werden. Eine hohe Verfügbarkeit der Cache-Umgebung, die zum Beispiel durch In-Memory-Engines wie Redis erreicht werden kann, mag eine weitere wichtige Überlegung sein. Im Gegensatz zum Daten-Caching von einem primären Standort kann eine In-Memory-Ebene in einigen Fällen auch als eigenständige Datenspeicherebene ausgeführt werden. In einem solchen Szenario ist es wichtig, für die in der In-Memory-Engine gespeicherten Daten angemessene Zielwerte für RTO (Recovery Time Objective – Wiederherstellungszeit nach einem Ausfall) und RPO (Recovery Point Objective – der letzte Punkt bzw. die letzte Transaktion, der/die bei einem Recovery wiederhergestellt wird) festzulegen, um festzustellen, ob eine eigenständige Datenspeicherebene empfehlenswert ist. Durch die diversen Designstrategien und -merkmale der verschiedenen In-Memory-Engines gibt es für nahezu jede RTO- und RPO-Anforderung eine geeignete Lösung.
Ebene | Client-Seite | DNS | Web | App | Datenbank |
Anwendungsfall | Beschleunigung des Abrufs von Web-Inhalten von Websites (Browser oder Gerät) |
Domain-zu-IP-Auflösung | Beschleunigung des Abrufs von Webinhalten von Web-/App-Servern Verwalten von Web-Sitzungen (serverseitig) | Beschleunigen der Anwendungsleistung und des Datenzugriffs | Verringerung der Latenz bei Datenbankabfragen |
Technologien | HTTP-Cache-Header, Browser | DNS-Server | HTTP-Cache-Header, CDNs, Reverse-Proxys, Web-Beschleuniger, Schlüssel/Wert-Speicher | Schlüssel/Wert-Datenspeicher, lokale Caches | Datenbankpuffer, Schlüssel/Wert-Datenspeicher |
Lösungen | Browserspezifisch | Amazon Route 53 | Amazon CloudFront, ElastiCache for Redis, ElastiCache for Memcached, Partnerlösungen | Anwendungsframeworks, ElastiCache for Redis, ElastiCache for Memcached, Partnerlösungen | ElastiCache for Redis, ElastiCache for Memcached |
Caching mit Amazon ElastiCache
Amazon ElastiCache ist ein Webservice, mit dem ein In-Memory-Datenspeicher oder -Cache auf einfache Weise in der Cloud bereitgestellt, betrieben und skaliert werden kann. Der Service verbessert die Leistung von Webanwendungen, da Sie die Möglichkeit haben, Informationen aus schnellen, verwalteten In-Memory-Datenspeichern abzurufen, anstatt sich vollständig auf langsamere datenträgerbasierte Datenbanken verlassen zu müssen. Erfahren Sie in diesem technischen Whitepaper zu In-Memory-Caching, wie eine effektive Caching-Strategie implementiert werden kann.
Vorteile des Caching
Verbessern der Anwendungsleistung
Da Speicher um Größenordnungen schneller ist als Festplatten (magnetisch oder SSD), ist das Lesen von Daten aus dem In-Memory-Cache extrem schnell (Sub-Millisekunde). Durch diesen deutlich schnelleren Datenzugriff erhöht sich die Gesamtleistung einer Anwendung enorm.
Senken der Datenbankkosten
Eine einzige Cache-Instance kann Hunderttausende von IOPS (Input/Output-Operationen pro Sekunde) bereitstellen und damit möglicherweise eine Reihe von Datenbank-Instances ersetzen, was die Gesamtkosten senkt. Dies ist besonders dann von Bedeutung, wenn die primäre Datenbank pro Durchsatz abrechnet. In diesen Fällen kann die Preisersparnis Dutzende von Prozentpunkten betragen.
Verringern der Last auf dem Backend
Durch die Umleitung signifikanter Teile der Leselast von der Backend-Datenbank auf die In-Memory-Schicht kann das Caching die Belastung Ihrer Datenbank reduzieren und sie vor langsamerer Leistung unter Last oder sogar vor einem Absturz in Spitzenzeiten schützen.
Vorhersagbare Leistung
Eine häufige Herausforderung in modernen Anwendungen ist der Umgang mit Spitzen bei der Anwendungsnutzung. Beispiele sind soziale Apps während des Super Bowls oder des Wahltags, eCommerce-Websites während des Black Friday usw. Erhöhte Belastung der Datenbank führt zu höheren Latenzen beim Abrufen von Daten, wodurch die Gesamtleistung der Anwendung unvorhersehbar wird. Durch den Einsatz eines In-Memory-Caches mit hohem Durchsatz kann dieses Problem gelindert werden.
Beseitigung von Datenbank-Hotspots
In vielen Anwendungen ist es wahrscheinlich, dass auf eine kleine Teilmenge von Daten, z. B. ein Prominentenprofil oder ein beliebtes Produkt, häufiger zugegriffen wird als auf den Rest. Dies kann zu Hot Spots in Ihrer Datenbank führen und eine Überprovisionierung von Datenbankressourcen auf der Grundlage der Durchsatzanforderungen für die am häufigsten verwendeten Daten erfordern. Durch die Speicherung gemeinsamer Schlüssel in einem In-Memory-Cache wird die Notwendigkeit einer Überprovisionierung gemindert und gleichzeitig eine schnelle und vorhersehbare Leistung für die am häufigsten verwendeten Daten bereitgestellt.
Erhöhung des Lesedurchsatzes (IOPS)
Neben der geringeren Latenz bieten In-Memory-Systeme auch wesentlich höhere Abfrageraten (IOPS) als eine vergleichbare plattenbasierte Datenbank. Eine einzelne Instance, die als verteilter Side-Cache verwendet wird, kann Hunderttausende von Anforderungen pro Sekunde bedienen.
Anwendungsfälle und Branchen
-
Anwendungsfälle
-
Branchen
-
Anwendungsfälle
-
Mehr über verschiedene Anwendungsfälle für Caching erfahren
Datenbank-Caching
Die Leistung, sowohl in Bezug auf die Geschwindigkeit als auch den Durchsatz, die Ihre Datenbank bietet, kann der wichtigste Faktor für die Gesamtleistung Ihrer Anwendung sein. Und trotz der Tatsache, dass viele Datenbanken heute eine relativ gute Leistung bieten, benötigen Ihre Anwendungen für viele Anwendungsfälle möglicherweise mehr. Mit Datenbank-Caching können Sie den Durchsatz drastisch erhöhen und die mit Backend-Datenbanken verbundene Latenzzeit beim Datenabruf senken, was wiederum die Gesamtleistung Ihrer Anwendungen verbessert. Der Cache fungiert als angrenzende Datenzugriffsebene zu Ihrer Datenbank, die Ihre Anwendungen zur Leistungsverbesserung nutzen können. Eine Datenbank-Cache-Ebene kann vor jeder Art von Datenbank angewendet werden, einschließlich relationaler und NoSQL-Datenbanken. Gängige Techniken zum Laden von Daten in einen Cache sind die Methoden „Lazy Loading“ und „Write-Through“. Weitere Informationen finden Sie hier.
Content Delivery Network (CDN)
Wenn Ihr Web-Datenverkehr geo-dispersiert ist, ist es nicht immer machbar und schon gar nicht kosteneffektiv, Ihre gesamte Infrastruktur über den gesamten Globus zu replizieren. Ein CDN bietet Ihnen die Möglichkeit, sein globales Netzwerk von Edge-Standorten zu nutzen, um Ihren Kunden eine zwischengespeicherte Kopie von Webinhalten wie Videos, Webseiten, Bildern usw. zu liefern. Um die Antwortzeit zu verkürzen, nutzt das CDN den dem Kunden oder dem Ort der ursprünglichen Anfrage nächstgelegenen Edge-Standort. Der Durchsatz wird drastisch erhöht, da die Web-Assets aus dem Cache geliefert werden. Für dynamische Daten können viele CDNs so konfiguriert werden, dass sie die Daten von den Ursprungsservern abrufen.
Amazon CloudFront ist ein globaler CDN-Service, durch den die Bereitstellung Ihrer Websites, APIs, Videoinhalte und anderer Web-Assets beschleunigt wird. Der Service kann in andere Produkte von Amazon Web Services integriert werden und bietet Entwicklern und Unternehmen die Möglichkeit, Inhalte ganz einfach und ohne Mindestnutzungsverpflichtung schnell bereitzustellen. Weitere Informationen zu CDNs finden Sie hier.
Caching mit Domain Name System (DNS)
Jede Domainanfrage im Internet fragt im Wesentlichen DNS-Cache-Server ab, um die mit dem Domainnamen verbundene IP-Adresse aufzulösen. DNS-Caching kann auf vielen Ebenen stattfinden, einschließlich dem Betriebssystem, über ISPs und DNS-Server.
Amazon Route 53 ist ein hochverfügbarer und skalierbarer Cloud-DNS-Web-Service (Domain Name System).
Sitzungsverwaltung
HTTP-Sitzungen enthalten die Benutzerdaten, die zwischen Ihren Website-Benutzern und Ihren Webanwendungen ausgetauscht werden, z. B. Anmeldeinformationen, Warenkorblisten, zuvor angesehene Artikel und so weiter. Entscheidend für die Bereitstellung großartiger Benutzererlebnisse auf Ihrer Website ist die effektive Verwaltung Ihrer HTTP-Sitzungen, indem Sie sich die Präferenzen Ihrer Benutzer merken und einen reichhaltigen Benutzerkontext bereitstellen. Bei modernen Anwendungsarchitekturen ist die Verwendung eines zentralen Sitzungsmanagement-Datenspeichers aus mehreren Gründen die ideale Lösung. Dazu gehören die Bereitstellung eines konsistenten Benutzererlebnisses über alle Webserver hinweg, eine bessere Sitzungsbeständigkeit, wenn Ihre Flotte von Webservern elastisch ist, und eine höhere Verfügbarkeit, wenn Sitzungsdaten über Cache-Server repliziert werden.
Weitere Informationen finden Sie hier.
Application Programming Interfaces (APIs)
Heutzutage sind die meisten Webanwendungen auf APIs aufgebaut. Eine API ist im Allgemeinen ein RESTful-Webservice, auf den über HTTP zugegriffen werden kann und der Ressourcen bereitstellt, die es dem Benutzer ermöglichen, mit der Anwendung zu interagieren. Beim Design einer API ist es wichtig, neben anderen Überlegungen die erwartete Belastung der API, die Autorisierung dazu, die Auswirkungen von Versionsänderungen auf die API-Konsumenten und vor allem die Benutzerfreundlichkeit der API zu berücksichtigen. Es ist nicht immer der Fall, dass eine API bei jeder Anfrage Geschäftslogik instanziieren und/oder eine Backend-Anfrage an eine Datenbank stellen muss. Manchmal liefert das Bereitstellen eines zwischengespeicherten Ergebnisses der API die optimalste und kostengünstigste Antwort. Dies gilt insbesondere dann, wenn Sie in der Lage sind, die API-Antwort zwischenzuspeichern, um sie an die Änderungsrate der zugrunde liegenden Daten anzupassen. Nehmen wir an, Sie haben Ihren Benutzern eine Produktlisten-API zur Verfügung gestellt und Ihre Produktkategorien ändern sich nur einmal pro Tag. Da die Antwort auf eine Produktkategorie-Anforderung den ganzen Tag über bei jedem Aufruf Ihrer API identisch sein wird, würde es ausreichen, Ihre API-Antwort für den Tag zwischenzuspeichern. Durch das Zwischenspeichern Ihrer API-Antwort beseitigen Sie den Druck auf Ihre Infrastruktur, einschließlich Ihrer Anwendungsserver und Datenbanken. Außerdem profitieren Sie von kürzeren Antwortzeiten und liefern eine leistungsstärkere API.
Amazon API Gateway ist ein vollständig verwalteter Service, der das Erstellen, Veröffentlichen, Warten, Überwachen und Sichern von APIs für Entwickler in jeder beliebigen Größenordnung vereinfacht.
Zwischenspeichern (Caching) in hybriden Umgebungen
In einer hybriden Cloud-Umgebung haben Sie möglicherweise Anwendungen, die in der Cloud ausgeführt werden und häufigen Zugriff auf eine lokale Datenbank benötigen. Es gibt viele Netzwerktopologien, die eingesetzt werden können, um Konnektivität zwischen Ihrer Cloud- und On-Premises-Umgebung herzustellen, einschließlich VPN und Direct Connect. Und auch wenn die Latenz von der VPC zu Ihrem On-Premise-Rechenzentrum gering ist, kann es optimal sein, Ihre On-Premise-Daten in Ihrer Cloud-Umgebung zwischenzuspeichern, um die Gesamtleistung beim Datenabruf zu beschleunigen.
Web-Caching
Bei der Bereitstellung von Webinhalten für Ihre Zuschauer kann ein Großteil der Latenz, die mit dem Abrufen von Web-Assets wie Bildern, HTML-Dokumenten, Videos usw. verbunden ist, durch das Zwischenspeichern dieser Artefakte und das Eliminieren von Festplattenlesevorgängen und Serverlast erheblich reduziert werden. Verschiedene Web-Caching-Techniken können sowohl auf der Server- als auch auf der Client-Seite eingesetzt werden. Beim serverseitigen Web-Caching wird typischerweise ein Web-Proxy eingesetzt, der Web-Antworten von den Webservern, denen er vorgelagert ist, beibehält und so deren Last und Latenzzeit effektiv reduziert. Clientseitiges Web-Caching kann browserbasiertes Caching umfassen, das eine zwischengespeicherte Version des zuvor besuchten Webinhalts beibehält. Weitere Informationen zu Web-Caching finden Sie hier.
Allgemeiner Cache
Der Zugriff auf Daten aus dem Arbeitsspeicher ist um Größenordnungen schneller als der Zugriff auf Daten von der Festplatte oder SSD, daher hat die Nutzung von Daten im Cache viele Vorteile. Für viele Anwendungsfälle, die keine Unterstützung für transaktionale Daten oder plattenbasierte Haltbarkeit erfordern, ist die Verwendung eines In-Memory-Schlüsselwertspeichers als eigenständige Datenbank eine großartige Möglichkeit, um hochgradig leistungsfähige Anwendungen zu erstellen. Neben der Geschwindigkeit profitiert die Anwendung von einem hohen Durchsatz zu einem kostengünstigen Preispunkt. Referenzierbare Daten wie Produktgruppierungen, Kategorieauflistungen, Profilinformationen und so weiter sind großartige Anwendungsfälle für einen allgemeinen Cache. Weitere Informationen zum allgemeinen Cache finden Sie hier.
Integrierter Cache
Ein integrierter Cache ist eine In-Memory-Schicht, die häufig verwendete Daten aus der Ursprungsdatenbank automatisch zwischenspeichert. In den meisten Fällen wird die zugrunde liegende Datenbank den Cache nutzen, um die Antwort auf die eingehende Datenbankanforderung zu liefern, da die Daten im Cache vorhanden sind. Dies erhöht die Leistung der Datenbank erheblich, indem die Anforderungslatenz gesenkt und die CPU- und Speicherauslastung der Datenbank-Engine reduziert wird. Ein wichtiges Merkmal eines integrierten Caches ist, dass die zwischengespeicherten Daten mit den von der Datenbank-Engine auf der Festplatte gespeicherten Daten konsistent sind.
-
Branchen
-
Hier erfahren Sie mehr zu verschiedenen Anwendungsfällen in einzelnen Branchen.
Anwendungen für mobile Geräte
Anwendungen für mobile Geräte sind ein unglaublich schnell wachsendes Marktsegment angesichts der rasanten Verbreitung von mobilen Endgeräten und dem Rückgang der Nutzung herkömmlicher Computergeräte. Ob für Spiele, kommerzielle Anwendungen, Gesundheitsanwendungen und so weiter, praktisch jedes Marktsegment hat heute eine mobilgerätefreundliche Anwendung. Aus Sicht der Anwendungsentwicklung ist die Erstellung von mobilen Apps sehr ähnlich wie die Erstellung jeder anderen Form von Anwendung. Sie haben die gleichen Problembereiche, Ihre Präsentationsschicht, Ihre Geschäftsschicht und Ihre Datenschicht. Auch wenn die Bildschirmgröße und die Entwicklungstools unterschiedlich sind, ist die Bereitstellung eines großartigen Benutzererlebnisses ein gemeinsames Ziel für alle Anwendungen. Mit effektiven Caching-Strategien können Ihre mobilen Anwendungen die Leistung liefern, die Ihre Benutzer erwarten, massiv skalieren und Ihre Gesamtkosten senken.
Der AWS Mobile Hub ist eine Konsole, die integrierte Erfahrung für die Entdeckung, die Konfiguration und den Zugriff auf AWS-Cloud-Services zum Erstellen, Testen und Überwachen der Nutzung von mobilen Apps bereitstellt.
Internet der Dinge (Internet of Things, IoT)
Das Internet der Dinge (Internet of Things, IoT) ist ein Konzept zum Sammeln und Übermitteln von Informationen aus einem Gerät und der physischen Welt über Gerätesensoren an das Internet oder eine Anwendung, die die Daten nutzt. Der Wert des IoT besteht darin, die erfassten Daten nahezu in Echtzeit zu verstehen, was dem nutzenden System und den Anwendungen letztendlich die Möglichkeit gibt, schnell auf diese Daten zu reagieren. Nehmen Sie zum Beispiel ein Gerät, das seine GPS-Koordinaten überträgt. Ihre IoT-Anwendung könnte darauf reagieren, indem sie interessante Orte oder Angebote in Bezug auf die Nähe zu diesen Koordinaten vorschlägt. Wenn Sie darüber hinaus Präferenzen in Bezug auf den Benutzer des Geräts gespeichert haben, können Sie die auf diese Person zugeschnittenen Empfehlungen detailgenau abstimmen. In diesem speziellen Beispiel ist die Geschwindigkeit, mit der die Anwendung auf die Koordinaten reagieren kann, entscheidend für ein gutes Benutzererlebnis. Caching kann hier eine wichtige Rolle spielen, z. B. könnten die interessanten Orte oder Angebote zusammen mit den Geokoordinaten in einem Schlüssel/Wert-Speicher wie Redis gespeichert werden, um einen schnellen Abruf zu ermöglichen. Aus Sicht der Anwendungsentwicklung können Sie Ihre IoT-Anwendung im Wesentlichen so programmieren, dass sie auf jedes Ereignis reagiert, vorausgesetzt, es gibt ein programmatisches Mittel, um dies zu tun. Wichtige Überlegungen, die beim Aufbau einer IoT-Architektur angestellt werden müssen, sind die Reaktionszeit, die mit der Analyse der aufgenommenen Daten verbunden ist, die Architektur einer Lösung, die die Anzahl der Geräte skalieren kann, und die Bereitstellung einer Architektur, die kosteneffektiv ist.
AWS IoT ist eine verwaltete Cloud-Plattform, mit der verbundene Geräte einfach und sicher mit Cloud-Anwendungen und anderen Geräten zusammenarbeiten können.
Weitere Informationen: Verwalten von IoT-Daten und Zeitreihendaten mit Amazon ElastiCache for Redis
Werbetechnologie
Moderne AdTech-Anwendungen sind besonders anspruchsvoll in Bezug auf die Leistung. Ein Beispiel für einen bedeutenden Wachstumsbereich im Bereich AdTech ist das Real-Time-Bidding (RTB), ein auktionsbasierter Ansatz für die Abwicklung digitaler Display-Anzeigen in Echtzeit, und zwar auf der granularsten Eindrucksebene. RTB war 2015 die dominierende Transaktionsmethode und machte 74,0 Prozent der programmatisch eingekauften Werbung oder 11 Milliarden Dollar in den USA aus (laut eMarketer-Analyse). Beim Aufbau einer RTB-App kann eine Millisekunde den Unterschied zwischen der rechtzeitigen Abgabe des Gebots und dessen Irrelevanz ausmachen. Das bedeutet, dass das Abrufen der Gebotsinformationen aus der Datenbank extrem schnell sein muss. Datenbank-Caching, das den Zugriff auf Ausschreibungsdetails in Sub-Millisekunden ermöglicht, ist eine großartige Lösung, um diese hohe Leistung zu erreichen.
Gaming
Interaktivität ist eine Grundvoraussetzung für fast jedes moderne Spiel. Nichts frustriert Spieler mehr als ein langsames oder nicht reagierendes Spiel, ein solches wird selten erfolgreich. Die Anforderungen an die Leistung sind bei mobilen Multiplayer-Spielen noch höher, da eine Aktion eines Spielers in Echtzeit an andere weitergegeben werden muss. Caching spielt eine entscheidende Rolle bei der Aufrechterhaltung eines reibungslosen Spielablaufs, indem es Abfrageantworten im Sub-Millisekundenbereich für häufig genutzte Daten liefert. Es ist auch hilfreich, um wichtige Probleme zu lindern, wenn dieselben Daten mehrfach abgefragt werden, z. B. „Wer sind die aktuellen Top-10-Spieler nach Punkten?“
Weitere Informationen zur Spieleentwicklung in AWS finden Sie hier.
Medien
Medienunternehmen haben oft mit der Notwendigkeit zu tun, eine große Menge an statischen Inhalten an ihre Kunden mit einer sich ständig ändernden Anzahl von Lesern/Zuschauern zu übertragen. Ein Beispiel ist ein Video-Streaming-Service wie Netflix oder Amazon Video, der eine große Menge an Videoinhalten an die Zuschauer streamt. Dies passt perfekt zu einem Content Delivery Network, bei dem die Daten auf global verteilte Caching-Servern gespeichert werden. Ein weiterer Aspekt von Medienanwendungen ist, dass es oft und unvorhersehbar zu Spitzenlasten kommt. Stellen Sie sich einen Blog auf einer Website vor, über den ein Prominenter gerade getwittert hat, oder die Website eines Football-Teams während des Super Bowls. Eine solch große Nachfragespitze auf eine kleine Teilmenge von Inhalten ist für die meisten Datenbanken eine Herausforderung, da sie in ihrem Durchsatz pro Schlüssel begrenzt sind. Da Arbeitsspeicher wesentlich mehr Durchsatz bietet als ein physischer Datenträger, wäre ein Datenbank-Cache mit Verlagerung der Lesezugriffe auf einen In-Memory-Cache die ideale Lösung.
E-Commerce
Moderne eCommerce-Anwendungen werden immer ausgefeilter und bieten personalisierte Einkaufserlebnisse, einschließlich Echtzeit-Empfehlungen, die auf den Daten und der Einkaufshistorie eines Benutzers basieren. Dazu gehört oft auch, dass man sich das soziale Netzwerk eines Benutzers ansieht und die Empfehlung auf der Grundlage dessen ausspricht, was seine Freunde mögen oder gekauft haben. Während die Menge der zu verarbeitenden Daten zunimmt, ist die Geduld der Kunden begrenzt. Daher ist die Aufrechterhaltung der Anwendungsleistung in Echtzeit kein Luxus, sondern eine Notwendigkeit; eine gut ausgeführte Caching-Strategie ist ein kritischer Aspekt der Anwendungsleistung und kann den Unterschied zwischen Erfolg oder Misserfolg einer Anwendung ausmachen, zwischen dem Verkaufserfolg oder dem Verlust eines Kunden.
Soziale Medien
Social-Media-Apps haben die Welt im Sturm erobert. Soziale Netzwerke wie Facebook, Twitter, Instagram und Snapchat haben eine riesige Anzahl von Benutzern, die immer größere Mengen an Inhalten konsumieren. Wenn ein Benutzer seinen Feed öffnet, erwartet er, dass er seine neuesten personalisierten Inhalte nahezu in Echtzeit sieht. Dabei handelt es sich nicht um statische Inhalte, da jeder Benutzer andere Freunde, Bilder, Interessen usw. hat, was die Anforderungen an die technische Komplexität der zugrunde liegenden Plattform noch erhöht. Social-Media-Apps sind auch sehr anfällig für Nutzungsspitzenlasten bei großen Unterhaltungs-, Sport- und politischen Ereignissen. Eine solche Belastbarkeit bei Spitzenlasten verbunden mit Echtzeitleistung wird durch verschiedene Caching-Ebenen erreicht: einem Content Delivery Network für statische Inhalte wie Hintergrundbilder, einem Sitzungs-Cache für die Aufzeichnung der aktuellen Sitzungsdaten eines Benutzers und einem Datenbank-Cache für den schnellen Zugriff auf häufig abgerufene Daten wie die neuesten Benachrichtigungen enger Freunde und die letzten eingestellten Bilder.
Gesundheitswesen und Wellness
Die Gesundheitsbranche durchläuft eine digitale Revolution, die die Versorgung für immer mehr Patienten auf der ganzen Welt verfügbar und zugänglich macht. Einige Anwendungen ermöglichen es Patienten, per Video mit Ärzten zu sprechen, und die meisten großen Anbieter haben Apps, mit denen Patienten ihre Testergebnisse sehen und mit dem medizinischen Personal interagieren können. Auf der Wellness-Seite gibt es eine Fülle von Anwendungen, die von der Verfolgung der spezifischen Sensoraktivität eines Benutzers (z. B. FitBit und Jawbone) bis hin zu umfassenden Wellness-Coachings und -Daten reichen. Angesichts der interaktiven Natur dieser Anwendungen muss der Bedarf an schnellen Anwendungen, Geschäfts- und Datenebenen gedeckt werden. Mit einer effektiven Caching-Strategie sind Sie in der Lage, eine hohe Leistung zu bieten, die Gesamtkosten für die Infrastruktur zu reduzieren und mit wachsender Nutzung zu skalieren.
Weitere Informationen zu Anwendungen im Bereich Gesundheitswesen auf AWS finden Sie hier.
Finanztechnologie
Die Art und Weise, wie wir Finanzdienstleistungen konsumieren, hat sich in den letzten Jahren dramatisch verändert. Zu den Anwendungen gehören der Zugang zu Bank- und Versicherungsdienstleistungen, die Betrugserkennung, Investitionsdienstleistungen, die Optimierung der Kapitalmärkte durch Echtzeit-Algorithmen und vieles mehr. Es ist eine Herausforderung, in Echtzeit auf die Finanzdaten eines Kunden zuzugreifen und ihm zu ermöglichen, Transaktionen wie Überweisungen oder Zahlungen vorzunehmen. Erstens gelten ähnliche Einschränkungen wie bei anderen Anwendungen, bei denen ein Benutzer nahezu in Echtzeit mit der App interagieren möchte. Darüber hinaus werden an Finanzanwendungen zusätzliche Anforderungen wie erhöhte Sicherheit und Betrugserkennung gestellt. Eine effiziente Architektur, einschließlich einer mehrschichtigen Caching-Strategie, ist entscheidend, um die von den Benutzern erwartete Leistung zu erreichen. Je nach spezifischen Anforderungen der Anwendung sollten die Caching-Ebenen Folgendes beinhalten: einen Sitzungs-Cache zum Speichern der Sitzungsdaten der Benutzer, ein Content Delivery Network für die Bereitstellung statischer Inhalte sowie einen Datenbank-Cache für den schnellen Zugriff auf häufig abgerufene Daten wie die letzten 10 Käufe eines Kunden.
Weitere Informationen zu Anwendungen im Bereich Finanzdienstleistungen auf AWS finden Sie hier.
Erste Schritte mit Amazon ElastiCache
Für ein AWS-Konto registrieren
Mit einfachen Tutorials lernen
Erfahren Sie, wie Sie einen Redis-Cluster erstellen.
Mit dem Erstellen beginnen
Beginnen Sie anhand des Benutzerhandbuchs mit dem Erstellen.