Anzeige
Anzeige
Ratgeber
Artikel merken

Was sind eigentlich Microservices?

Microservices kommen immer häufiger zum Einsatz. Dabei bilden sie unter anderem die Grundlage für native Cloud-Anwendungen. Doch was sind Microservices und welche Vorteile ergeben sich durch ihren Einsatz?

Von Andreas Domin
3 Min. Lesezeit
Anzeige
Anzeige

(Bild: Shutterstock-nevodka)

Microservices folgen einem der wichtigsten Paradigmen bei der Entwicklung von Software: der modularen Programmierung. Dabei wird das Computerprogramm in logische Teilblöcke, die sogenannten Module, aufgeteilt. Dadurch können auch größere Softwareprojekte besser organisiert, umgesetzt und verwaltet werden.

Anzeige
Anzeige

Um dieses Paradigma zu erfüllen, gibt es jede Menge Ansätze und Lösungen. Darunter zum Beispiel der Einsatz von Klassen, die wiederum in Pakete zusammengefasst werden. Um allerdings ein solches Konstrukt ausführen zu können, müssen immer alle Pakete und Klassen deployed werden.

Microservices haben genau in diesem Punkt einen entscheidenden Vorteil: Sie können auch unabhängig voneinander eingesetzt werden. Soll also das System um einen Microservice erweitert werden, so muss lediglich dieser eine Service in Produktion gebracht werden anstatt aller Services.

Anzeige
Anzeige

Microservices kümmern sich jeweils unabhängig voneinander um eigene kleine Teilaufgaben und sind nach außen hin isoliert. Um die Kommunikation zwischen den Microservices zu ermöglichen, werden standardisierte Schnittstellen wie zum Beispiel REST eingesetzt.

Anzeige
Anzeige

Dabei laufen die verschiedenen Microservices, die ein Gesamtsystem ausmachen, auf getrennten Servern oder auch virtuellen Maschinen. Würden alle Services auf einem einzigen System laufen und ein Microservice das System überlasten, so bestünde die Gefahr des Ausfalls der anderen Services auf dem System. Diese Gefahr wird dadurch minimiert, erhöht allerdings die Komplexität des Systems.

Vorteile von Microservices

Die Unabhängigkeit eines Microservices von anderen ermöglicht das ebenso unabhängige Arbeiten kleiner Entwicklerteams, die einen oder mehrere thematisch zusammengehörige Microservices verwalten. Dabei ermöglicht die vorhandene Isolation der Services die Entwicklung eines Microservices in einer beliebigen Programmiersprache und auch mit verschiedenen Technologien. Es muss lediglich der Standard der verwendeten Schnittstelle eingehalten werden. Selbst das komplette Ersetzen eines Microservices lässt sich dadurch denkbar unkompliziert umsetzen.

Anzeige
Anzeige

Dabei besitzt eine Microservice-Architektur auch eine hohe Stabilität. Durch die Unabhängigkeit der Microservices läuft das System weiterhin, selbst wenn ein Service ausfällt. Der Fehler muss dann lediglich im entsprechenden Microservice behoben oder durch einen neuen Service ersetzt werden, während die restliche Architektur davon unberührt bleibt.

Auch lässt sich eine derartige Anwendung ohne Probleme vergrößern oder verkleinern. Dabei werden lediglich die einzelnen Microservices unabhängig und je nach Bedarf individuell skaliert.

Microservices und ihre Nachteile

Kein Architektur-Ansatz kommt ohne Nachteile aus. So auch Microservices. Die große Anzahl der verteilten kleinen Services erhöht die Latenzzeit immens, da die Kommunikation zwischen den Microservices über verschiedene Server hinweg läuft anstatt nur zwischen Prozessen auf einem einzigen System.

Anzeige
Anzeige

Während Microservices das Programmierparadigma der Modularität perfekt erfüllen, wird ein anderes verletzt. Das Prinzip „Don’t repeat yourself“ (Wiederhole dich nicht) soll redundanten Code in einem Projekt vermeiden. Dabei werden Codeabschnitte – wenn möglich – an mehreren Stellen wiederverwendet. Durch die Unabhängigkeit der Teams bei der Entwicklung von Microservices besteht genau dabei die Gefahr, dieses Prinzip zu verletzen. Auch wenn Microservices verschiedene Aufgaben behandeln, können sie trotzdem ein gleiches Problem aufweisen. Wurde dieses bereits durch ein Team innerhalb eines Services gelöst, so muss es durch die Isolation der Microservices in dem anderen Team erneut umgesetzt werden.

Insgesamt erhöht die Unabhängigkeit und die Isolation der Microservices an mehreren Stellen den Aufwand. Darunter wird das Testen der Software komplexer. Auch der Vorteil des unabhängigen Deployments wird zu einem Nachteil, da jeder Microservice seinen eigenen Deployment-Prozess benötigt.

Der Einsatz von Microservices

Vor Projektbeginn sollten alle Aspekte genau abgewogen werden, bevor sich ein Team für oder gegen eine Microservices-Architektur entscheidet. Microservices haben vor allem bei größeren Projekten entscheidende Vorteile: unabhängige kleine Teams sowie die Skalier- und Wartbarkeit und die Tatsache, dass nur eine geringe Koordination zwischen diesen Teams notwendig ist, sind nur einige davon. Die Frage ist jedoch, ob diese Vorteile schwerer wiegen als der in vielerlei Hinsicht größere Aufwand.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige