Redis Enterprises für Microservices

Bauen Sie mit Redis Enterprise belastbare und hoch verfügbare Microservices auf

Wählen Sie eine Echtzeit-Datenschicht für Ihre Microservices-Architektur

Microservice-Architekturen ermöglichen es, neue Produkte schneller auf den Markt zu bringen, sie einfacher zu skalieren und besser auf Kundenanforderungen zu reagieren. Mit mehreren modernen Datenmodellen, Fehlertoleranz in jedem Szenario, Multi-Tenancy zur Isolierung und der Flexibilität, über mehrere Umgebungen hinweg eingesetzt zu werden, ermöglicht Redis Enterprise Entwicklern und Betreibern, ihre Datenschicht für eine Microservice-Architektur zu optimieren.

https://www.youtube.com/embed/1ybaY27uZA0?si=c2lCcSDcipPAbety

Was ist eine Microservices-Architektur?

Nach der Definition von Chris Richardson, einem anerkannten Experten für Microservices, ist die Microservice-Architektur ein Architekturstil zur Strukturierung von Anwendungen als eine Sammlung lose gekoppelter Dienste, die in hohem Maße wartbar und testbar sind, unabhängig voneinander bereitgestellt werden können, an bestimmte Geschäftsbereiche gebunden sind und von kleinen Teams betrieben werden. Eine Microservice-Architektur ermöglicht die schnelle, häufige und zuverlässige Bereitstellung von großen, komplexen Anwendungen.

Warum Microservices wichtig sind

Microservices-basierte Anwendungen ermöglichen strategische digitale Transformation und Cloud-Migrationsinitiativen

Microservices sind ein Architekturstil, der Entwicklungsteams dabei hilft, bessere Software schneller zu erstellen und die Kosten und Komplexität der Anwendungsmodernisierung zu minimieren. Infolgedessen werden Microservices-Architekturen in allen Branchen eingesetzt, sowohl für Projekte, die zu Recht als “digitale Transformationsinitiativen” bezeichnet werden können, als auch für alltäglichere, aber wichtige Aufgaben wie das Bootstrapping von Cloud-Bereitstellungen.

Dieser Architekturstil und die damit verbundene Softwareentwicklungskultur ermöglichen es Microservices-Entwicklungsteams, in ihren eigenen Release-Zyklen zu arbeiten, eine durchgängige Produktverantwortung zu übernehmen und ein DevOps-Framework einzuführen, das auf kontinuierlicher Integration/kontinuierlicher Bereitstellung basiert. Das Ergebnis ist, dass Unternehmen die Markteinführungszeit für die Entwicklung neuer Dienste verkürzen können, oft von Projekten, die in Monaten gemessen werden, auf Tage.

Microservices beschleunigen die Migration von Datenebenen in die Cloud. Das liegt daran, dass sie in erster Linie auf Cloud-nativen NoSQL-Datenbanken beruhen. NoSQL-Datenbanken ersetzen lokale relationale Datenbanken, die weder für die Cloud noch für unabhängige Release-Zyklen entwickelt wurden, so eine IDC InfoBrief-Umfrage aus dem Jahr 2021.

Darüber hinaus können einige Unternehmen ihre monolithischen Legacy-Anwendungen nicht auf einmal auf Cloud-Native umstellen. Microservices ermöglichen die schrittweise Migration von Teilbereichen von einer monolithischen Architektur auf moderne Technologiestapel.

Redis Enterprise: eine perfekte Lösung für Microservices

Leistung im Maßstab von Microservices

In einer Microservices-Umgebung müssen Dienste, die in Echtzeit laufen sollen, den Netzwerk-Overhead kompensieren. Redis Enterprise bietet eine Latenzzeit von weniger als einer Millisekunde für alle Redis-Datentypen und -Modelle. Darüber hinaus skaliert es sofort und linear auf nahezu jeden benötigten Durchsatz.

Entwickelt für Fehlertoleranz und Ausfallsicherheit

Um sicherzustellen, dass Ihre Anwendungen ausfallsicher sind, verwendet Redis Enterprise eine Shared-Nothing-Cluster-Architektur. Sie ist auf allen Ebenen fehlertolerant: mit automatischem Failover auf Prozessebene, für einzelne Knoten und sogar über Verfügbarkeitszonen der Infrastruktur hinweg. Darüber hinaus bietet es einstellbare Persistenz und Disaster Recovery.

Reduzieren Sie die Komplexität mit schnellen und flexiblen Datenmodellen

Redis Enterprise ermöglicht es Entwicklern, das Datenmodell zu wählen, das am besten zu ihren Leistungs- und Datenzugriffsanforderungen für ihre Microservices-Architektur und ihr domänengesteuertes Design passt, während sie gleichzeitig die Isolierung mit der mandantenfähigen Bereitstellung auf einer einzigen Datenplattform beibehalten.

Vereinfachen Sie den Betrieb mit nativer Kubernetes-Bereitstellung

Redis Enterprise bietet eine einheitliche Betriebsschnittstelle, die den Technologiewildwuchs reduziert, den Betrieb vereinfacht und die Service-Latenzzeit verringert. Der Redis Enterprise Operator für Kubernetes ermöglicht konsistente, automatisierte Bereitstellungen zur Risikominderung. So können sich Entwicklungsteams auf Innovation und Geschäftswert konzentrieren.

Anpassungsfähig über Clouds und Geografien hinweg

Wählen Sie, wo Ihre Datenbank laufen soll. Redis Enterprise kann überall eingesetzt werden: auf jeder Cloud-Plattform, vor Ort oder in einer Multicloud- oder Hybrid-Cloud-Architektur.

Entwurfsmuster für Microservice-Architekturen

Microservice Abfrage-Caching

Die Isolierung oder der begrenzte Kontext ist ein wichtiges Merkmal einer Microservice-Architektur. Als Teil des domänengesteuerten Designs kann jeder Dienst über eine eigene Datenbank mit einem eigenen Datenmodell und Leistungszielen für Service Level Agreements verfügen. Query Caching, ein Cache-Pattern, das häufig zur Reduzierung der Antwortzeiten von Microservices verwendet wird, funktioniert, indem ein Redis Enterprise-Cache neben jedem Microservice eingesetzt wird, um Daten zu liefern, die innerhalb eines einzigen Geschäftskontexts benötigt werden. (Das heißt, es wird nur ein Microservice bedient.)

Redis Smart Cache ist eine Open-Source-Bibliothek, die nahtlos jede JDBC-konforme Plattform, Anwendung oder jeden Microservice mit Caching ausstattet und so die Abfrageleistung verbessert und gleichzeitig die betriebliche Komplexität reduziert – ohne dass Sie den Anwendungscode ändern müssen. Redis Enterprise unterstützt mehrere Datenmodelle, die problemlos mandantenfähig sind und dennoch isoliert bleiben – ohne Leistungseinbußen.

Mehr erfahren

Zwischenspeicherung domänenübergreifender gemeinsamer Daten über CQRS

Microservices benötigen einen schnellen Zugriff auf Daten, aber das kann eine Herausforderung sein, wenn Dutzende oder Hunderte von Microservices versuchen, aus derselben langsamen plattenbasierten Datenbank zu lesen. Domänenübergreifende Daten müssen jedem Microservice in Echtzeit zur Verfügung stehen – und zwar ohne den Rahmen des jeweiligen Geschäftskontexts und -ziels zu sprengen.

Command Query Responsibility Segregation (CQRS) ist ein wichtiges Pre-Fetch-Cache-Muster innerhalb von Microservice-Architekturen, das Lese- (Abfragen) und Schreibvorgänge (Befehle) entkoppelt. Dadurch kann eine Anwendung Daten in eine langsamere, festplattenbasierte SQL-Datenbank schreiben, während sie diese Daten mithilfe der integrierten CDC-Funktion (Change Data Capture) in Redis Enterprise für blitzschnelle Lesevorgänge vorab abruft und zwischenspeichert. Auf diese Weise sind die Daten für andere Microservices, die sie benötigen, sofort verfügbar.

Learn More

API-Gateway-Caching für globale Daten

Microservices-Anwendungen können Daten, auf die global zugegriffen wird, auf der Ebene des API-Gateways zwischenspeichern, um Daten, auf die alle Dienste zugreifen, zu verteilen und zu beschleunigen. In der Regel handelt es sich dabei um Sitzungsdaten (z. B. Benutzer-ID und Einstellungen) und Authentifizierungsdaten (Token, Autorisierungsstatus, Berechtigungen). Auf diese Weise können häufig benötigte Daten in Echtzeit für alle Dienste verfügbar gemacht werden. Das Ergebnis? Verringerung der Anwendungslatenz, ohne die Grenzen des Geschäftskontexts der einzelnen Microservices zu überschreiten.

Eine Ratenbegrenzung, bei der die Anzahl der API-Anfragen in einer bestimmten Zeitspanne gemessen wird, kann auch am API-Gateway mit Redis Enterprise implementiert werden. Dies kann eine Überlastung des Systems verhindern und beugt DDoS-Angriffen vor.

Asynchrones Messaging für die dienstübergreifende Kommunikation

Microservices müssen Status, Ereignisse und Daten miteinander kommunizieren, ohne die Isolation zu unterbrechen, und sie müssen entkoppelt bleiben. Eine gängige Lösung besteht darin, einen Publish-Subscribe-Messaging-Broker in die Architektur einzubinden – d. h. die Kommunikation zwischen den Diensten ereignisgesteuert und letztendlich konsistent zu gestalten – und jede Nachricht zwischen Microservices als Ereignis zu behandeln.

Redis Streams ist eine unveränderliche, zeitlich geordnete Protokolldatenstruktur, die es einem Dienst (Produzenten) ermöglicht, asynchrone Nachrichten zu veröffentlichen, die von mehreren Konsumenten abonniert werden können. Redis Streams kann so konfiguriert werden, dass es verschiedene Zustellungsgarantien handhabt, Verbrauchergruppen unterstützt und andere Funktionen anwendet, die mit Apache Kafka-Topic-Partitionen vergleichbar sind. Noch besser: Redis Streams hilft bei der Erstellung von Berichten, Analysen, Audits und forensischen Analysen im Backend.

Mehr erfahren

Redis Enterprise-Funktionen für Microservice-Architekturen

Active-Active Replikation

A microservices architecture has many connected services, yet it faces the same performance demands as monolithic applications. To minimize latency, data should reside as close to the services as possible. You also need to ensure databases are consistent with one another in the event of failures or conflicting updates. Redis Enterprise kann als Active-Active, konfliktfrei replizierte Datenbank eingesetzt werden, um Aktualisierungen von mehreren lokalen Installationen Ihrer Dienste zu verarbeiten, ohne die Latenz oder Datenkonsistenz zu beeinträchtigen, und um Kontinuität im Falle von Ausfällen zu gewährleisten.

Mehrere Datenmodelle

Redis Enterprise bietet mehrere Datenstrukturen (Hashes, Strings, Streams, Listen usw.) und Modelle, darunter JSON, Suche, Zeitreihen und Graphen, mit denen Sie das Datenmodell wählen können, das am besten für Ihre Microservice-Domäne, Ihre Leistung und Ihre Anforderungen an den Datenzugriff geeignet ist. Und das alles in einer einzigen Datenplattform.

Datenbanken mit mehreren Mandanten

Innerhalb einer Microservices-Architektur kann ein einziger Redis Enterprise-Cluster Datenbanken für viele verschiedene Dienste bereitstellen, jeder mit seiner eigenen isolierten Instanz, die auf die jeweilige Arbeitslast abgestimmt ist. Jede Datenbankinstanz wird unabhängig von den anderen bereitgestellt, skaliert und modelliert, während sie dieselbe Cluster-Umgebung nutzt und die Daten zwischen den Diensten isoliert, ohne die betriebliche Komplexität zu erhöhen.

Flexibel über Wolken hinweg

Microservices provide a great deal of technology flexibility, and choosing where you want to run your database should be no exception. Redis Enterprise kann überall eingesetzt werden: auf jeder Cloud-Plattform, vor Ort oder in einer Multicloud- oder Hybrid-Cloud-Architektur. It is also available on Kubernetes, Pivotal Kubernetes Service (PKS), and Red Hat OpenShift.

Native Kubernetes-Container-Orchestrierung und -Verwaltung

Container sind eng mit der Bereitstellung von Microservice-Anwendungen verbunden und helfen Unternehmen dabei. Kubernetes ist die De-facto-Standardplattform für Containerbereitstellung, -planung und -orchestrierung. Redis ist die führende Datenbanktechnologie, die auf Containern läuft, mit über zwei Milliarden Docker-Hub-Starts. Redis Enterprise Operator für Kubernetes bietet: automatische Skalierbarkeit, persistente Speichervolumen, vereinfachte Verwaltung von Datenbankendpunkten und rollierende Upgrades ohne Ausfallzeiten. Es ist auf mehreren Kubernetes-Plattformen und verwalteten Cloud-Diensten verfügbar, einschließlich VMware Tanzu Kubernetes Grid (früher Enterprise PKS), Upstream Kubernetes und Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) oder Amazon Elastic Kubernetes Service (EKS).

FAQ

  • Was sind Microservices?
    • Microservices-Architektur (oft abgekürzt als Microservices) bezeichnet einen Architekturstil für die Entwicklung von Anwendungen. Microservices ermöglichen die Aufteilung einer großen Anwendung in kleinere unabhängige Teile, wobei jeder Teil seinen eigenen Verantwortungsbereich hat. Um eine einzelne Benutzeranfrage zu bedienen, kann eine auf Microservices basierende Anwendung viele interne Microservices aufrufen, um ihre Antwort zusammenzustellen.
  • Was ist der Unterschied zwischen einer monolithischen Architektur und einer Microservices-Architektur?
    • In einer monolithischen Architektur sind Prozesse eng gekoppelt und werden als ein einziges bereitstellbares Artefakt ausgeführt. Dies ist zwar anfangs relativ einfach, aber wenn Sie einen Teil Ihrer Microservice-Anwendung vergrößern oder ändern, müssen Sie den gesamten Dienst aktualisieren, was zu ineffizienter Skalierbarkeit und erhöhter Komplexität führt, wenn Ihre Codebasis größer wird.
      • Bei der Microservices-Architektur handelt es sich um eine Sammlung von lose gekoppelten Diensten, die von kleineren Teams unabhängig voneinander aktualisiert und skaliert werden können. Da einzelne Dienste einfacher zu erstellen, bereitzustellen und zu verwalten sind als eine einzelne monolithische Anwendung, ermöglichen Microservices häufigere Bereitstellungen, Datenspeicherautonomie und größere Flexibilität.
      • Unternehmen stellen ihre gesamten Anwendungen auf eine Microservices-Architektur um, um die Markteinführungszeit drastisch zu verkürzen, neue Technologien leichter zu übernehmen und schneller auf Kundenanforderungen zu reagieren.
  • Was ist Kubernetes?
    • Kubernetes, auch bekannt als k8s, ist ein Open-Source-Orchestrierungssystem zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen, die in der Regel als Teil von Microservice- und nativen Cloud-Architekturen verwendet werden.
  • Was sind Docker-Container?
    • Docker-Container-Images sind leichtgewichtige, eigenständige, ausführbare Softwarepakete, die alles enthalten, was zur Ausführung einer Anwendung erforderlich ist.
  • Was ist ein API-Gateway?
    • Ein API-Gateway ist eine Softwareanwendung für die API-Verwaltung, die zwischen einem Client und einer Reihe von Backend-Microservices sitzt. Das API-Gateway dient als Reverse-Proxy, der API-Aufrufe von der Client-Anwendung entgegennimmt und diesen Verkehr an den entsprechenden Dienst weiterleitet.