Definition: Service- und Anwendungs-Proxy für Cloud-native Anwendungen Was ist Envoy?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Florian Karlstetter |

Envoy ist ein Graduated Project der Cloud Native Computing Foundation. Es handelt sich um einen Service-Proxy auf der Anwendungsebene (Layer 7), der speziell für Cloud-native Anwendungen und Microservices konzipiert ist. Er bietet unter anderem auch Loadbalancing-Funktionen und erlaubt die Realisierung eines Service Meshs.

Anbieter zum Thema

Envoy ist ein Service- und Anwendungs-Proxy für Cloud-native Anwendungen und ein „Graduated ProjectÅ der Cloud Native Computing Foundation. Funktionen und Vorteile im Überblick.
Envoy ist ein Service- und Anwendungs-Proxy für Cloud-native Anwendungen und ein „Graduated ProjectÅ der Cloud Native Computing Foundation. Funktionen und Vorteile im Überblick.
(Bild: gemeinfrei (© Gerd Altmann / pixabay) / Pixabay )

Envoy wurde vom amerikanische Unternehmen Lyft entwickelt und steht unter der Schirmherrschaft der Cloud Native Computing Foundation (CNCF). Innerhalb der CNCF hat das Envoy-Projekt den Status eines Graduated Projects.

Bei Envoy handelt es sich um einen frei verfügbaren Open-Source-Service-Proxy, der speziell für die Anforderungen moderner Cloud-native Applikationen entworfen wurde. Der Proxy bietet eine hohe Performance, besitzt ein schlankes Design und ist sowohl als Service Proxy als auch als Edge Proxy einsetzbar. Darüber hinaus bietet er verschiedene Loadbalancing-Funktionen. Mithilfe des Envoy Proxies lassen sich moderne Cloud-Anwendungen realisieren, die aus vielen einzelnen Microservices bestehen und in Container-basierten Umgebungen ausgeführt werden. Für diese Anwendungen verwaltet der Proxy die Interaktionen zwischen den zahlreichen Microservices und vereinfacht den Betrieb eines Service Meshs.

Envoy unterstützt HTTP 1.1, HTTP/2, gRPC, TLS-Verbindungen und viele verschiedene Anwendungsprotokolle. Der Proxy wird weltweit von vielen Unternehmen für unterschiedliche Anwendungen eingesetzt. Nutzer der Software sind beispielsweise Booking.com, eBay, Google, Microsoft, Netflix, VMware, IBM, Amazon und andere. Die aktuelle Version des Proxies ist 1.13.0 (Stand Anfang 2020). Envoy steht unter Apache License 2.0 und kann über GitHub kostenlos geladen werden.

Die Motivation für Envoy

Der Umstieg von der traditionellen Realisierung monolithischer Anwendungen auf eine Cloud-native Anwendung in verteilter Architektur bestehend aus einzelnen Microservices ist mit zahlreichen Herausforderungen verbunden. Die dynamische Vernetzung der Services kann zu Problemen im Design, Betrieb, Debugging und in der Überwachung der Anwendungen führen. Cloud-native Anwendungen benötigen daher Proxy-Services auf dem Layer 7, die sich untereinander zu einem Service-Netzwerk vermaschen lassen, verschiedene Protokolle unterstützen und leicht zu überwachen und zu managen sind.

Envoy ist ein leistungsstarker, in C++ geschriebener Anwendungs-Proxy, der in verteilten Architekturen betreibbar ist. Er schafft eine Abstraktionsebene zwischen Netzwerk und Services und bietet Loadbalancing-Funktionen. Sämtlicher Service-Traffic fließt durch die Proxies und lässt sich leichter überwachen, kontrollieren und debuggen.

Envoy und die Cloud Native Computing Foundation

Envoy wurde von Lyft entworfen. Die Schirmherrschaft über die Entwicklung des Proxies hat die Cloud Native Computing Foundation (CNCF) inne. Das Envoy-Projekt hat bei der CNCF den Status eines Graduated Projects. Nur wenige weitere Projekte wie Kubernetes, Prometheus, CoreDNS oder Vitess und einige andere befinden sich ebenfalls in diesem Projektstatus.

Die Cloud Native Computing Foundation ist ein Teilprojekt der Linux Foundation und hat sich zum Ziel gesetzt, das Cloud Native Computing und die Zusammenarbeit zwischen Herstellern, Entwicklern und Anwendern zu fördern. Cloud Native Computing hat sich weltweit etabliert und wird von großen Unternehmen wie eBay, Pinterest oder Twitter und anderen intensiv genutzt. Das Cloud Native Computing basiert auf Microservices und Containern. Diese Architektur bietet den Vorteil, dass sich neue Applikationen schneller realisieren lassen und die Möglichkeiten des Cloud Computings voll ausgeschöpft werden. Die Cloud Native Computing Foundation wurde 2015 gegründet und hatte sich ursprünglich zum Ziel gesetzt, die Verbreitung und Verwendung der Container-Technologie voranzutreiben.

Das Projekt Kubernetes zur Orchestrierung von Containern wurde damals von Google an die CNCF gespendet. Mittlerweile zählt die Organisation mehrere hundert Mitglieder wie große Public Cloud Provider und Software-Hersteller beispielsweise Amazon, Google, IBM, Microsoft, Oracle, Red Hat oder VMware und viele andere. Die Organisation begleitet zahlreiche Projekte, arbeitet Hersteller-neutral und setzt auf frei verfügbare Open-Source-Software wie Envoy. Die Projekte sind in verschiedene Kategorien eingeteilt. Diese Kategorien sind:

  • CNCF Graduated Projects
  • CNCF Incubating Projects
  • CNCF Sandbox Projects
  • CNCF Member Projects/Products
  • Non-CNCF Member Projects/Products

Envoy zählt zur Kategorie der CNCF Graduated Projects.

Was ist ein Proxy?

Ein Proxy ist eine zwischen zwei Kommunikationspartner zwischengeschaltete Instanz. Er nimmt Anfragen eines Clients oder Quellservices entgegen und leitet sie stellvertretend zu einem Zielservice weiter. Abhängig von der Richtung des Informationsflusses und der Art der Anfragen existieren verschiedene Arten von Proxies wie der Forward Proxy oder der Reverse Proxy. Proxies arbeiten auf unterschiedlichen Schichten des ISO/OSI-Schichtenmodells. Es sind Proxies verfügbar, die auf der Netzwerkebene arbeiten und nur die Netzprotokolle bis Schicht 3 interpretieren oder Anwendungs-Proxies, die Anfragen bis zur Schicht 7 verstehen und bearbeiten. Proxies können Anfragen in einem Cache zwischenspeichern und bieten zahlreiche Steuer- und Kontrollfunktionen des Informationsflusses.

Grundlegende Funktionen von Envoy

Envoy ist speziell für Cloud-Architekturen entwickelt und bietet zahlreiche Funktionen, die für die Realisierung von Cloud-native Anwendungen benötigt werden. Zudem werden viele verschiedene Protokolle und Programmiersprachen unterstützt. Envoy bietet Unterstützung für HTTP 1.1, HTTP/2, gRPC und TLS-Verbindungen. Darüber hinaus sind verschiedene Loadbalancing-Optionen wie Round Robin, Random Select oder Weighted Least möglich. Für ein dynamisches Konfigurationsmanagement stehen APIs zur Verfügung. Zur Service- und Trafficüberwachung lassen sich Funktionen wie verteiltes Tracing und dediziertes Debugging nutzen.

Envoy in einem Service Mesh

Envoy entfaltet seinen volle Leistung in einem Service Mesh. Das Service Mesh sorgt in der Microservice-Architektur für die zuverlässige, kontrollierte und von der Netzwerkebene abstrahierte Kommunikation, indem alle Anfragen und Antworten über das Mesh abgewickelt werden. In einem Envoy-basierten Service Mesh haben alle Services ihren eigenen Proxy-Service, genannt Sidecar.

Alle Proxy-Services zusammen bilden das Service Mesh. Sidecars wickeln die Kommunikation zwischen den Services ab. Dadurch lässt sich genau steuern und kontrollieren, wie die Services zusammenarbeiten. Services senden Nachrichten immer an den gleichen Adressat, den lokalen Proxy (Sidecar), ohne die Details des Netzwerks zu kennen. Möchte ein Service einen anderen Service kontaktieren, wird die Anfrage über den lokalen Proxy geroutet, ohne dass ein direkter Austausch zwischen den Services stattfindet.

Die Vorteile von Envoy

Envoy-Proxies zur Realisierung von Cloud-native Anwendungen bieten zahlreiche Vorteile:

  • hohe Performance
  • schlankes Design
  • Unterstützung vieler Programmiersprachen und Protokolle
  • optimale Unterstützung von Microservice-Architekturen
  • einfache Realisierung eines Service Meshs
  • bessere Kontroll- und Debugging-Möglichkeiten einer Cloud-native Anwendung
  • höhere Sicherheit und Zuverlässigkeit durch die Einführung einer Abstraktionsschicht zwischen Services und Netzwerk
  • zahlreiche Möglichkeiten der Lastverteilung (Loadbalancing)
Microservices, Cloud Native, REST API , Kubernetes & Co.: Cloud Computing Wiki

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie verständlich erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier neutral verfasste und leicht verständliche Erklärungen zu den wichtigsten Begriffen aus dem Cloud-Computing-Umfeld.  
Zum Special: Definitionen rund um Cloud Computing

(ID:46343302)