paint-brush
Reverse Proxying – das Rückgrat der Microservices-Architekturvon@infinity
2,221 Lesungen
2,221 Lesungen

Reverse Proxying – das Rückgrat der Microservices-Architektur

von Rishabh Agarwal5m2024/01/17
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Bei der Microservice-Architektur geht es darum, eine komplexe Anwendung in kleine, eigenständige Anwendungen zu zerlegen, sodass jede einzelne davon unabhängig skaliert und gewartet werden kann. Der Kern der Microservice-Architektur ist das Konzept des Reverse-Proxying. Ein Reverse-Proxy spielt eine zentrale Rolle bei der Weiterleitung des Datenverkehrs zwischen verschiedenen Microservices und der Verteilung der Arbeitslast auf mehrere Instanzen eines Microservices.
featured image - Reverse Proxying – das Rückgrat der Microservices-Architektur
Rishabh Agarwal HackerNoon profile picture
0-item

Bei der Microservice-Architektur geht es darum, eine komplexe Anwendung in kleine, eigenständige Anwendungen zu zerlegen, sodass jede einzelne davon unabhängig skaliert und gewartet werden kann . Angesichts der Fülle an Vorteilen, die die Microservice-Architektur mit sich bringt, ist es kein Wunder, dass sich alle in der IT-Branche dieser neuen Architektur zuwenden!


Der Kern der Microservice-Architektur ist das Konzept des Reverse-Proxying. Ein Reverse-Proxy spielt eine zentrale Rolle bei der Weiterleitung des Datenverkehrs zwischen verschiedenen Microservices und der Verteilung der Arbeitslast auf mehrere Instanzen eines Microservices. Ohne den Reverse-Proxy wäre das komplexe Netz aus Interaktionen und Lastverteilung innerhalb der Microservice-Architektur, wie wir es heute verstehen, einfach nicht realisierbar!


Lassen Sie uns tief in die Rolle eines Reverse-Proxys in Microservices-Einstellungen eintauchen!

Was ist ein Proxy?

Ein Proxy ist ein Server, der zwischen dem Computer eines Clients und dem Internet liegt. Jeglicher Datenverkehr, der vom Computer des Clients kommt, wird über den Proxyserver geleitet. Für den Rest des Internets sieht es so aus, als ob der Proxyserver die Anfragen initiiert.


Es gibt mehrere Gründe, warum man einen Proxyserver verwenden würde. Einige davon sind wie folgt:

  • Identitätsmaskierung: Mithilfe eines Proxys wird die wahre Identität eines Kunden dem Internet nicht preisgegeben. Es kann verwendet werden, um auf Inhalte zuzugreifen, die sonst für den Client gesperrt/eingeschränkt wären.
  • Einschränkungen einrichten: Mit bestimmten Konfigurationen können Proxy-Server verwendet werden, um den Zugriff auf bestimmte Inhalte für den Client einzuschränken.
  • Es erhöht auch die Sicherheit

Was ist ein Reverse-Proxy?

Ein Reverse-Proxy ist ein Server, der zwischen dem Internet und den Backend-Servern sitzt. Jeglicher Datenverkehr, der für die Server bestimmt ist, muss über den Reverse-Proxy geleitet werden. Für den Rest des Internets sieht es so aus, als ob der Reverse-Proxy die Anfragen bearbeitet.


Die Verwendung von Reverse-Proxys bietet im Allgemeinen mehrere Vorteile. Möglicherweise finden Sie einige hier aufgelistet.


Das Konzept eines Reverse-Proxys haucht der Microservice-Architektur Leben ein und ermöglicht es dem Client, durch die dynamische Umgebung von Microservices zu navigieren, indem er bestimmt, auf welche Server er zugreifen soll. Ohne diese wichtige Komponente stünden dem Kunden nicht die Mittel zur Verfügung, sich effektiv in der komplexen Landschaft der Microservices-Architektur zurechtzufinden.

Service Discovery 🌍

Dienste in einer Microservice-Architektur werden je nach Auslastung vergrößert und verkleinert. Dies bedeutet, dass Replikate eines Dienstes jederzeit während der Lebensdauer einer Anwendung kommen und gehen können. Reverse-Proxy erkennt die Server eines Dienstes und leitet den Datenverkehr des Clients effektiv an diese weiter.

Lastausgleich ⚖️

Da für einen Dienst möglicherweise mehrere Replikate ausgeführt werden, ist es wichtig, dass die Anforderungen des Clients ordnungsgemäß auf die verfügbaren Server verteilt werden. Der Lastausgleich ist nur eine weitere Funktion des Revere-Proxys, die hier zum Einsatz kommt. Der Reverse-Proxy verteilt die Last intelligent auf die verfügbaren Replikate eines Dienstes.

Überwachung 🖥️

Da jede Anfrage, die in unsere Anwendung gelangt, über den Reverse-Proxy läuft, ist dies ein guter Ort, um Anfragen zu überwachen und eine Protokollierung durchzuführen. Es hilft dabei, wichtige Erkenntnisse über die Anzahl der im System vorhandenen Dienste zu gewinnen.

Interner Verkehr 🚦

In einer Microservices-Umgebung wird auch ein Reverse-Proxy verwendet, um den internen Datenverkehr des Clusters weiterzuleiten. Dies ist besonders nützlich für den Fall der Dienst-zu-Dienst-Kommunikation.

Caching 💰

Caching ist ein allgemeiner Vorteil, der mit der Verwendung von Reverse-Proxy einhergeht. Der Proxyserver kann zwischengespeicherte Ergebnisse für ähnliche Abfragen zurückgeben und so die Antwortzeit für den Client verkürzen.

Aggregation ⛙

Die Anfrage eines einzelnen Clients erfordert möglicherweise eine Antwortaggregation von mehr als einem Dienst im Backend. Eine solche Aggregation kann vom Reverse-Proxy durchgeführt werden, so dass dem Client ein sauberer Endpunkt zur Verfügung steht!

Proxying über Ebenen hinweg

Ein Reverse-Proxy kann in verschiedenen Konfigurationen verwendet werden. Diese Konfigurationen bestimmen normalerweise die OSI-Schicht, auf der die Routing-Entscheidung getroffen wird. Im Volksmund gibt es zwei bekannte Proxys: (1) Proxying auf Schicht 4 und (2) Proxying auf Schicht 7. Je höher wir die Schichten aufsteigen, desto mehr Informationen entschlüsseln wir aus den Internetpaketen, die für die Routing-Entscheidung verwendet werden können.


Schichten im OSI-Modell

Layer-4-Proxy

Schicht 4 im OSI-Modell ist die Transportschicht. Aus der Sicht eines Anwendungsentwicklers stehen auf Ebene 4 folgende Dinge für die Routing-Entscheidung zur Verfügung:

  • IP und Port des Clients, der die Anfrage sendet
  • IP und Port des Servers, der die Anfrage empfängt


Somit kann ein Layer-4-Proxy Routing-Entscheidungen nur basierend auf IP und Port von Server und Client treffen. Es kann den Inhalt der Anfragen nicht einsehen und daher eingeschränkte Routing-Entscheidungen treffen.


Es gibt mehrere Gründe, warum man einen Layer-4-Proxy verwenden sollte:

  • Wenn nur ein Lastausgleich auf Paketebene erforderlich ist.
  • Aus Sicherheitsgründen möchte man nicht, dass der Reverse-Proxy die Anfrage entschlüsselt.
  • Effizienz ist erforderlich, da das Proxying auf Schicht 4 schnell ist.


Es gibt auch mehrere Nachteile des Layer-4-Proxys:

  • Da wir uns auf Level 4 befinden, ist ein intelligenter Lastausgleich nicht möglich
  • Es kann keinen echten Lastausgleich für Mikrodienste durchführen.

Layer-7-Proxy

Schicht 7 im OSI-Modell ist die Anwendungsschicht. Aus der Sicht eines Anwendungsentwicklers stehen auf Schicht 7 für die Routing-Entscheidung folgende Dinge zur Verfügung:

  • Alles, was auf Layer 4 verfügbar war
  • Der gesamte Inhalt der Anfrage einschließlich Header


Da auf Schicht 7 viel mehr Inhalte für die Entscheidungsfindung verfügbar sind, kann ein intelligenteres Routing durchgeführt werden.


Hier sind einige Gründe, warum man einen Layer-7-Proxy verwenden würde:

  • Sie müssen in Ihrem Reverse-Proxy intelligente Routing-Entscheidungen treffen
  • Sie möchten Caching verwenden


Hier sind einige Nachteile bei der Verwendung eines Layer-7-Proxys:

  • Layer-7-Proxying ist im Allgemeinen langsamer als Layer 4, da es die Anfrage entschlüsselt und ihren Inhalt auf Routing-Entscheidungen untersucht
  • Da der Reverse-Proxy den Inhalt der Anfragen prüft, bestehen auch Sicherheitsbedenken bei der Verwendung des Layer-7-Proxys

Reverse Proxy ist zweifellos einer der wichtigsten Bestandteile einer Microservice-Architektur. Ohne sie können die wahren Vorteile der Microservice-Architektur nie in vollem Umfang genutzt werden.


Damit sind wir am Ende dieses Blogs angelangt! Ich hoffe, Sie haben heute etwas Neues gelernt.