Samstag, 27. Juni 2020

Microservices

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?  



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! 

Links und Quellen