Was ist das?
Microservices beschreiben ein Muster von Anwendungsarchitekturen. Durch Fokussierung auf kleine, begrenzte fachliche Services, die unabhängig voneinander sind, kann man neue Anwendungen vergleichsweise schnell realisieren.
Im Grunde stellt der Ansatz eine Weiterentwicklung der Komponenten- und SOA-Ansätze aus den letzten Jahren und sogar Jahrzehnten dar - wer kennt noch CORBA?
Photo by Gabriel Manlake on Unsplash
Warum sollte ich das einsetzen?
- Damit man schneller neue Anwendungen bauen und somit schneller auf die Marktentwicklung reagieren kann - wenn man muss!
- Um die Abhängigkeitsprobleme von Monolithen-Anwendungslandschaften endlich mal anzugehen
- Wenn mehr Interaktionen mit Geschäftspartnern stattfinden werden - im Gegensatz zur Formular-Stapelverarbeitung der Vergangenheit
Was kostet das?
- Skalierbare Infrastruktur aus Containern, Docker, Kubernetes
- Monitoring Skills und Tools zur Überwachung einer parallelen, skalierten Infrastruktur
- Viel Aufwand bis zum ersten laufenden Service
- Know-how-Aufbau bei den Mitarbeitern, die in der parallelen, skalierten und zustandslosen Welt auf viele neue Herausforderungen treffen werden
Was muss ich beachten?
- Microservices stellen einen massiven Paradigmen-Wechsel dar
- Übliche Drei-Schicht-Architekturen sind nicht mehr nutzbar
- Microservices halten, anders als Business Services in JEE, keinen Zustand, sondern laufen nur kurz - anders wäre eine Skalierung von vielen Services nicht möglich
- Zudem muss die Oberfläche, z.B. eine SPA in Angular, wie damals bei Rich Clients die Steuerung übernehmen, auch im Fehlerfall
- Entwickler müssen die Zusammenhänge erst verstehen und lernen
- Im Zweifel muss man sich zwischen Verfügbarkeit der Anwendung und der Datenkonsistenz entscheiden!