© Evgeniy Belyaev/Shutterstock.com
Entwickler Magazin
Die Lösung aller Microservices-Probleme?

Das Service Mesh

Die Stärke einer Microservices-Architektur ist die lose Kopplung der Module. Und gleichzeitig ist diese auch ein großer Nachteil, denn in jedem Microservice müssen Funktionen wie Monitoring, Tracing und Circuit Breaking erneut gelöst werden. Ein Service Mesh verspricht, viele der Funktionen in die Infrastruktur zu ziehen. So wird es endlich kinderleicht, Microservices zu entwickeln und zu bändigen - oder vielleicht doch nicht?

Hanna Prinz, Eberhard Wolff


Microservices bedeuten Unabhängigkeit [1]-[4]. Also legen die Teams los und es entstehen viele Microservices. Nach dem ersten Problem in Produktion wird klar: Alle Microservices brauchen Logging, Monitoring und Tracing. Um Angriffen vorzubeugen, muss die Kommunikation außerdem authentifiziert und verschlüsselt werden. Eine weitere Herausforderung ist es, die Services vor den Effekten von jederzeit möglichen Netzwerk- oder Service-Ausfällen zu schützen.

Bitte keine Microservices Frameworks

Was tun? Für Entwickler liegt es nahe, technische Probleme mit einem Framework zu lösen. Ein Microservices Framework hat jedoch den Nachteil, dass es nur eine bestimmte Programmiersprache unterstützt. Das schränkt die Auswahl der Implementierungstechnologien für die Microservices ein. Damit gibt das Team eine große Stärke der Microservices auf, nämlich die Technologiefreiheit. Diese Freiheit erlaubt es, für jeden Microservice die beste Technologie zu wählen. Wenn ein anderer Technologiestack oder eine Programmiersprache für ein Detailproblem in einem System besser geeignet ist, kann man diese Technologie einfach in dem betreffenden Microservice für diese Detailprobleme einführen. Wenn die Microservices-Bibliothek mit der neuen Programmiersprache oder dem neuen Technologiestack inkompatibel ist, ist dieser Weg leider unmöglich.

Auch für einen einheitlichen Technologiestack ergibt die Technologiefreiheit Vorteile. Jeder Stack veraltet früher oder später. Durch die Technologiefreiheit kann ein Update auf eine neue Version des Technologiestacks oder einer Bibliothek zunächst in einem einzigen Microservice umgesetzt werden, was das Risiko minimiert. So helfen Microservices dabei, ein System risikoarm modern zu halten. Wenn nun das Microservices Framework mit der neuen Version des Technologiestacks oder der Bibliothek inkompatibel ist, wird das Update entweder erschwert oder ist völlig unmöglich.

Unabhängig davon, ob die technischen Herausforderungen mit Microservices Frameworks oder anders gelöst werden, hat die Entscheidung erhebliche Konsequenzen. Der Netflix-Stack enthält beispielsweise die Java-Bibliothek Hystrix [5], mit der die Kommunikation zwischen Microservices bei Ausfällen einzelner Microservices abgesichert werden kann. Leider pflegt Netflix diese Bibliothek aber mittlerweile nicht mehr. So wird Code, der diese Bibliothek noch nutzt, plötzlich zu veraltetem Code, der nun so umgeschrieben werden muss, dass er die Bibliothek nicht mehr nutzt.

Was ist ein Service Mesh?

M...

Entwickler Magazin
Die Lösung aller Microservices-Probleme?

Das Service Mesh

Die Stärke einer Microservices-Architektur ist die lose Kopplung der Module. Und gleichzeitig ist diese auch ein großer Nachteil, denn in jedem Microservice müssen Funktionen wie Monitoring, Tracing und Circuit Breaking erneut gelöst werden. Ein Service Mesh verspricht, viele der Funktionen in die Infrastruktur zu ziehen. So wird es endlich kinderleicht, Microservices zu entwickeln und zu bändigen - oder vielleicht doch nicht?

Hanna Prinz, Eberhard Wolff


Microservices bedeuten Unabhängigkeit [1]-[4]. Also legen die Teams los und es entstehen viele Microservices. Nach dem ersten Problem in Produktion wird klar: Alle Microservices brauchen Logging, Monitoring und Tracing. Um Angriffen vorzubeugen, muss die Kommunikation außerdem authentifiziert und verschlüsselt werden. Eine weitere Herausforderung ist es, die Services vor den Effekten von jederzeit möglichen Netzwerk- oder Service-Ausfällen zu schützen.

Bitte keine Microservices Frameworks

Was tun? Für Entwickler liegt es nahe, technische Probleme mit einem Framework zu lösen. Ein Microservices Framework hat jedoch den Nachteil, dass es nur eine bestimmte Programmiersprache unterstützt. Das schränkt die Auswahl der Implementierungstechnologien für die Microservices ein. Damit gibt das Team eine große Stärke der Microservices auf, nämlich die Technologiefreiheit. Diese Freiheit erlaubt es, für jeden Microservice die beste Technologie zu wählen. Wenn ein anderer Technologiestack oder eine Programmiersprache für ein Detailproblem in einem System besser geeignet ist, kann man diese Technologie einfach in dem betreffenden Microservice für diese Detailprobleme einführen. Wenn die Microservices-Bibliothek mit der neuen Programmiersprache oder dem neuen Technologiestack inkompatibel ist, ist dieser Weg leider unmöglich.

Auch für einen einheitlichen Technologiestack ergibt die Technologiefreiheit Vorteile. Jeder Stack veraltet früher oder später. Durch die Technologiefreiheit kann ein Update auf eine neue Version des Technologiestacks oder einer Bibliothek zunächst in einem einzigen Microservice umgesetzt werden, was das Risiko minimiert. So helfen Microservices dabei, ein System risikoarm modern zu halten. Wenn nun das Microservices Framework mit der neuen Version des Technologiestacks oder der Bibliothek inkompatibel ist, wird das Update entweder erschwert oder ist völlig unmöglich.

Unabhängig davon, ob die technischen Herausforderungen mit Microservices Frameworks oder anders gelöst werden, hat die Entscheidung erhebliche Konsequenzen. Der Netflix-Stack enthält beispielsweise die Java-Bibliothek Hystrix [5], mit der die Kommunikation zwischen Microservices bei Ausfällen einzelner Microservices abgesichert werden kann. Leider pflegt Netflix diese Bibliothek aber mittlerweile nicht mehr. So wird Code, der diese Bibliothek noch nutzt, plötzlich zu veraltetem Code, der nun so umgeschrieben werden muss, dass er die Bibliothek nicht mehr nutzt.

Was ist ein Service Mesh?

M...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang