Microservices ist ein Trend zur feiner werdenden Modularisierung von Applikationen. Während früher teilweise sogar mehrere Anwendungen auf einem Application Server deployed wurden, laufen die Module zunehmend in eigenen Prozessen. Die Vorsilbe "Micro" drückt den Trend aus, die Modularisierung in immer kleinere Einheiten zu unterteilen.
Eigenschaften#
Vorteile sind:
- Aktualisierbarkeit: Aktualisierung einzelner Module, sogenannte Continuous Delivery
- Redundanz: Mehrere Instanzen des gleichen Moduls laufen zur gleichen Zeit
- Skalierbarkeit: Die Anzahl der Modulinstanzen kann nach Bedarf angepasst werden. Bei hoher Last starten zusätzliche Module, bei geringerer Last wird die Zahl laufender Module verringert.
- Überwachung: Durch die externe Kommunikation (meist HTTP/JSON) kann in komplexen Systemen eine Übersicht des laufenden Betriebs erstellt werden. Beispiel ist Hystrix mit Turbine.
Nachteile sind:
- Overhead: Die Verteilung benötigt mehr Ressourcen, mehr Prozesse, mehr Speicher und mehr CPU um dieselben Aufgaben durchzuführen, als dies mit einer monilithischen Anwendung der Fall wäre.
Umsetzung#
Die
Intersult arbeitet gegenwärtig hauptsächlich mit
Spring Boot als Prozess-Container,
Spring Cloud Netflix und
Netflix Eureka als Service Registry,
Ubuntu als Betriebssystem,
Docker als Virtualisierungsumgebung und
Jenkins als Continuous Build.