Eine Infrastrukturebene für Microservices

Jedes Unternehmen hegt heute den Wunsch, als Technologieunternehmen wahrgenommen zu werden. Innerhalb dieser Philosophie hilft der Einsatz von Software bei der Weiterentwicklung des Unternehmens mit dem Ziel einen Wettbewerbsvorteil zu erzielen.

Die Umsetzung der digitalen Transformationsstrategie führt darüber hinaus dazu, dass Legacy-Applikationen modernisiert werden müssen, um sich von traditionellen monolithischen Anwendungen zu lösen. Das Ergebnis? Microservices boomen und neue Technologien werden entwickelt, um ihre Leistung zu verbessern. Ein solches Werkzeug ist das Service Mesh. Tatsächlich wird es als einer der großen Cloud-Computing Trends von 2019 angesehen, allerdings bestehen Zweifel, ob die Mehrheit der Unternehmen schon bereit dafür ist.

Anzeige

Warum benötigen Sie ein Service Mesh?

Zuerst zum Wesentlichen: Sie sind sich immer noch nicht ganz sicher, was ein Service Mesh ist? Einfach ausgedrückt, ist ein Service Mesh eine einfache, konfigurierbare Infrastrukturebene für Microservices. Während Microservices eine weitaus höhere Flexibilität für Applikationsentwicklern und Architekten bieten, steigt damit auch die Komplexität, weshalb das Service Mesh aufgrund seiner Fähigkeit, die Interaktionen zwischen den verschiedenen Microservices zu sichern, zu überwachen und zu steuern, immer mehr an Bedeutung gewinnt. 

Die Haupteigenschaft eines Service Mesh ist das Traffic-Management, das die Kommunikation zwischen einzelnen Services, die von der Applikation erstellt oder sich innerhalb dieser befinden, unterstützt und erleichtert sowie ihnen dabei hilft schneller, flexibler und zuverlässiger zu sein. Mit diesen Funktionen bietet ein Service Mesh Service Discovery, Load Balancing, Verschlüsselung für Antworten und Anfragen, Authentifizierung und Autorisierung innerhalb und außerhalb der Applikation. Hinzu kommt Unterstützung beim Auffinden und Verhindern von Fehlern durch die Verwendung eines Trennschalter-Musters, das jedes „Durchsickern“ in andere Services verhindert. Dies sind nur einige wenige der Funktionalitäten, die Unternehmen dabei helfen die Produktivität von Entwicklern zu verbessern, eine höhere Skalierbarkeit, Verfügbarkeit und Sicherheit ihrer Services zu gewährleisten sowie die Sichtbarkeit und Übersicht mithilfe von Überwachungs-, Tracking- und Analysetools zu sichern.

Diese Vorteile, vor allem die Fähigkeit zu höherer Belastbarkeit und Sicherheit, führt dazu, dass das Service Mesh als ein entscheidender Bestandteil jeder Microservice-Infrastruktur angesehen wird und die Zukunft der Applikationsbereitstellung darstellt. Dabei ist Zukunft hier das Schlüsselwort. Es ist eine Fehlannahme, dass Sie bei der Arbeit mit Containern direkt zur Implementierung von einem Service Mesh übergehen sollten. Wenn Sie noch nicht bereit dafür sind, könnte es mehr Probleme als Lösungen geben. Deshalb sollten Sie nicht einfach auf den Service-Mesh-Zug aufspringen. 

Sind Service Mesh das Richtige für Sie?

In der IT-Branche glauben viele, einschließlich Gartner, dass Service Mesh nicht eine Frage des „Ob“, sondern des „Wann“ ist, und das für jeden, der Microservices nutzt. Das Team von Gartner hat eine genaue Definition von Service Mesh und macht dies zu einer äußerst vertretbaren Position – allerdings werden viele Unternehmen dem nicht zustimmen. Vor der Implementierung von Service Mesh, ist es wichtig, sich in aller Ruhe über seine aktuelle Situation Gedanken zu machen: Wo befinden Sie sich? Und welche Vorteile versprechen Sie sich? Schließlich ist es keine schnelle Einmallösung, sondern ein Lösungsweg.

Wo befinden Sie sich also derzeit auf Ihrem Weg zu containerisierten Applikationen? Untersuchen, entwerfen und führen Sie erste Machbarkeitsstudien durch oder befinden Sie sich im produktiven Einsatz? Noch wichtiger ist, was erwarten Sie von einem Service Mesh und haben Sie andere, ausgereiftere Ansätze evaluiert?

Schauen Sie sich zunächst Ihre bestehende Technologie an. Welche Probleme wollen Sie lösen? In Anbetracht der angestrebten Verbesserungen und der von wichtigsten von Ihnen benötigten Funktionen, könnten Sie diese vielleicht mit einigen Optimierungen und einfachen Ergänzungen zu Ihrem vorhandenen System erreichen? Es hat keinen Zweck, ein Projekt um seiner selbst willen komplizierter zu gestalten oder sich ein brandneues System zuzulegen. Obwohl Service Mesh eine Vielzahl an Vorteilen bietet, dürfen die Nachteile nicht unterschätzt werden, insbesondere für kleinere Umgebungen.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Wohin führt ihr Weg?

Der sich abzeichnende universelle Ansatz für Service Mesh sind Sidecar-Proxys. Wie der Name schon sagt, können diese Sidecar-Proxys mit dem Beiwagen eines Motorrads verglichen werden und sind speziell mit einer bestimmten Service-Instanz als „Utility Pod“ verbunden, der diesen Service unterstützen soll. Das bedeutet, dass immer ein zusätzlicher Proxy neben jeder Service-Instanz bereitgestellt wird. Obwohl es die Verwaltung des gesamten Netzwerk-Traffics und zusätzliche Funktionen ermöglicht, bringt es dennoch auch eine erhöhte architektonische Komplexität mit sich. 

Hinterfragen Sie daher, ob Ihre Umgebung groß und Ihre Servertopologie komplex genug sind, um diese Implementierung zu gewährleisten! Service Mesh benötigen Sie nur, sobald Sie einen bestimmten Level an Komplexität erreichen. Bis dahin ist es am besten, Fundamente zu legen und sich damit vertraut zu machen, worauf ein Service Mesh aufbauen würde sowie andere Optionen zu prüfen, die besser zu Ihren aktuellen Anforderungen und Ihrer Infrastruktur passen.

Für Container gibt es bereits heute Kubernetes, das beliebte Orchestrierungssystem für containerisierte Applikationen, dessen Fähigkeit, Container-Applikationen bereitzustellen, bewährt ist. Kubernetes bietet bereits eine umfangreiche Netzwerkstruktur, die Service Discovery, Lastausgleich, Health Checks und Zugriffskontrolle bereitstellt. Auch das Einbetten ist einfach und es gibt eine große Auswahl an zusätzlichen Diensten, die Sie problemlos hinzufügen können. 

Die Orchestrierungsfrage

Sie haben sich die Zeit genommen und festgestellt, an welchem Haltepunkt Sie sich befinden und dass Kubernetes nicht ganz Ihren Anforderungen entspricht? Dann sollten Sie trotzdem nicht zu schnell vorwärts springen und stattdessen überlegen, ob beispielsweise ein einfacher Load Balancer oder ein API-Gateway Ihre Anforderungen erfüllen würden? Ein API-Gateway bietet zusätzlich die Möglichkeit der Authentifizierung und Überwachung des Request Routings. Es ist wesentlich besser geeignet, wenn Sie beispielsweise nur wenige Microservices mit einer bestehenden monolithischen Applikation verknüpft haben. In diesem Fall wäre ein Service Mesh schlichtweg überflüssig. 

Dabei ist anzumerken, dass während Anbieter und Open-Source-Projekte in hohem Tempo daran arbeiten Service Mesh stabiler und funktionaler zu machen sowie die Implementierung zu vereinfachen, sich die Technologie weiterentwickelt und eventuell in den Aufgabenbereich und die Funktionalitäten eines API-Gateways eingreifen wird. Wenn Sie jedoch eine kleinere containerisierte Umgebung mit geringer Komplexität und wenigen Microservices haben, ist dies die richtige Option für Sie. 

Sind Sie jetzt bereit?

Möglicherweise sind Sie noch nicht bereit für ein Service Mesh, dennoch wird wahrscheinlich der Zeitpunkt kommen, an dem Sie einen Wendepunkt erreichen und die Größe und Komplexität erreichen, die es zu einem essentiellen Bestandteil macht. Wenn Ihre Teams eine größere Transparenz im Netzwerk benötigen, müssen sie etwa eine Durchsatzratenbegrenzung oder eine zusätzliche Zugriffskontrolle hinzufügen. Dies wird Ihre Applikationsentwickler und Ihr operatives Team stark belasten.

In diesem fortgeschrittenen Stadium können und sollten Sie sich nun auf ein Service Mesh konzentrieren. Wenn Ihr System größer wird, sich entwickelt und die Anforderungen steigen, ermöglicht Ihnen ein Service Mesh, diese Einschränkungen zu überwinden und Ihre Applikationen für Microservices weiter auszubauen. Wobei diese konfigurierbare Struktur die nun benötigte Kommunikation zwischen Microservices unterstützt und erleichtert. Wenn Ihre containerisierte Applikationsverfügbarkeit an Fahrt verliert, kann ein Service Mesh den Treibstoff darstellen. 

Allerdings bedeutet das immer noch nicht mit Volldampf voraus. Service-Mesh entwickelt sich vielleicht weiter und ist einfacher zu implementieren, aber es gibt eine Reihe von Hindernissen und Herausforderungen, die es zu beachten gilt.

Service-Mesh Infrastruktur

Bild: Der Service Mesh bietet die Gelegenheit eines einheitlichen Infrastruktur-Layers für service-to- service Kommunikation
Quelle: Nginx

 

Der richtige Zeitpunkt

Auch wenn Netflix und Twitter die Implementierung von Service Mesh vorantreiben, ist es immer noch eine junge Technologie, deren viele Lösungen sich entweder in der Entwicklungsphase befinden oder umfangreiches Wissen erfordern, um ein Service Mesh in der Betriebsphase zuverlässig zu pflegen. Die große Mehrheit der Unternehmen dürfte daher nicht über das Know-how oder die Fähigkeiten verfügen, die für die Implementierung von Service Mesh in der Anfangsphase erforderlich sind. Um dies richtig umzusetzen, müssen sie erst die Defizite an Qualifikationen beheben – und das braucht Zeit. 

Hinzu kommt das zusätzliche Problem, inwieweit Sie wirklich den gesuchten na sagen wir mal Treibstoffschub erhalten. Mit der schnellen Entwicklung von Service Mesh und der zunehmenden Attraktivität, werden einige der ersten Lösungen nicht gut strukturiert oder auf Ihre langfristigen Bedürfnisse ausgerichtet sein. „Service-Mesh-Washing“ wird eine beliebte Marketing-Taktik sein, ebenso wie viele Produkte in “software-basiert” oder “virtualisiert” umbenannt wurden, um den Hype des bisherigen Technologiewandels zu nutzen. Istio hat sicherlich den Vorteil, als Erster auf diesem Gebiet zu operieren, aber das bedeutet nicht, dass in den kommenden Jahren keine anderen tragfähigen Optionen zur Verfügung stehen werden. Derzeit besteht keinerlei Gewissheit darüber, wer sich als führender Anbieter und Vorreiter dieser Technologie entwickeln wird.

Vorarbeit und Umsetzung

Wenn Sie die genannten Faktoren bei Ihrer Vorbereitung beachten, sollte sich ihr Implementierungsprozess erleichtern und einen Erfolg garantieren. Wie schön wäre es, wenn man sagen könnte, dass es jetzt Zeit ist, sich zurückzulehnen und zu entspannen, aber selbst wenn das Service Mesh einen bestimmten Entwicklungsstand erreicht hat, wird es sich kontinuierlich weiterentwickeln. Wenn neue Technologien aufkommen, die in den Bereich der Service Mesh eintreten, muss sich das Service Mesh anpassen und verändern; und was würde passieren, wenn wir beispielsweise damit aufhören, Kubernetes als containerisierte Umgebung zu nutzen?

Try & Error

Ist Service Mesh also die richtige Wahl für Sie? Die wahrscheinlichste Antwort: ja, aber möglicherweise noch nicht jetzt. Auch wenn Sie eventuell noch nicht bereit sind, die Umsetzung von Service Mesh jetzt durchzuführen, stellen Sie dennoch sicher, dass Sie keine der Maßnahmen versäumen, die Sie auf diesen Weg führen könnten.

Das Jahr 2019 könnte das Jahr des Service Mesh werden. Allerdings sollten Sie erst dann einsteigen, wenn Sie an der richtigen Haltestelle sind. Selbst wenn Sie das Ziel erreichen, wird dies sicherlich nicht Ihr letztes sein, doch wird Service Mesh für eine einfachere Fahrt sorgen.

Owen Garrett
Owen Garrett
Sr. Product Management
NGINX Inc.

www.nginx.com

 

 

 

Anzeige

Artikel zu diesem Thema

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.