© Excellent backgrounds/Shutterstock.com
Lösen Microservices alle unsere Probleme?

The Silver Bullet?


Ein neues Architekturparadigma schickt sich an, endlich alle Probleme zu lösen: Microservices. Anwendungen werden in kleine Dienste aufgeteilt und nicht etwa auch bei schlechter Codequalität wiederverwendet und weiterentwickelt, sondern einfach weggeworfen. Anlass genug, einen genaueren Blick zu wagen.

Application Server sind tot

Softwarearchitektur teilt große Systeme in Module auf. Dadurch ist es einfacher, ein System zu verstehen und weiterzuentwickeln: Statt das Gesamtsystem insgesamt zu betrachten, können die Entwickler jedes Modul einzeln oder das Zusammenspiel der Module untersuchen und ändern. Diese Module können Entwickler ganz unterschiedlich technisch umsetzen: Jedes Modul kann beispielsweise eine JAR-Datei oder ein Package werden, das den Code enthält. Für das Deployment werden dann alle diese JARs und Packages zusammengefasst und gemeinsam installiert. Es entsteht also ein Deployment-Monolith.

Microservices sind eine andere technische Option für die Umsetzung solcher Module: Jedes Modul wird zu einem Service – also getrennte Prozesse mit einer Schnittstelle. Die Inspiration für diesen Ansatz ist Unix [1]: Mithilfe von Unix Pipes kann die Ausgabe eines Prozesses einem anderen Prozess als Eingabe zur Verfügung gestellt werden. So kann zum Beispiel ein Prozess die Dateinamen aus einem Verzeichnis zurückgeben und ein anderer Prozess kann diese Namen sortieren. So kann sich jeder Dienst auf eine bestimmte Funktionalität spezialisieren. Das macht die Implementierung neuer Dienste einfacher und durch die Kombination der Dienste können neue Anforderungen umgesetzt werden.

Die Services ermöglichen eine klare Trennung: Sie können nur über bestimmte Schnittstellen miteinander kommunizieren. Nicht beabsichtige Abhängigkeiten zwischen den Diensten sind ausgeschlossen. Bei einem Deployment-Monolithen ist das nicht so einfach – schnell ist eine Klasse aufgerufen, die eigentlich nicht von einem anderen Modul verwendet werden soll.

Was ist ein Microservice?

Für Microservices gibt es leider keine klare Definition. Der Begriff alleine legt eine Definition über die Größe nahe. So gibt es tatsächlich die Aussage, dass ein Microservice ca. 10–100 Codezeilen haben soll [2]. Außerdem soll ein Micro Service von einem Menschen oder höchstens von einem kleinen Team verstanden und gewartet werden. Und Microservices sollen so klein sein, dass sie einfach ersetzt werden können, statt sie zu warten [1]. Ob das tatsächlich ein realistischer Anspruch ist, sei dahingestel...

Neugierig geworden?

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