Was sind eigentlich Microservices?

Die Anwendungsarchitektur bezeichnet den Stil, der für die Entwicklung einer Applikation gewählt wird. Ein möglicher Ansatz sind Microservices: Die Applikation wird dabei auf lose gekoppelte, autonome Service aufgebaut. Diese Art von Architektur ist einerseits sehr leistungs- und widerstandsfähig, und ausserdem hyper-skalierbar. Eine Microservice-Architektur ist ein wesentlicher Bestandteil von Cloud-nativen Applikationen.

Eine Microservices-Architektur ist nützlich für komplexe Applikationen, die aus mehreren Subsystemen bestehen und häufig aktualisiert werden, wie z.B. eine Contact Center Software. In einer monolithischen Architektur ist die Software in sich geschlossen und alle Komponenten der Applikation miteinander verbunden. Bei einer Microservice-Architektur wird die Funktionalität in lose gekoppelte, autonome Microservices (Subsysteme) aufgeteilt und jedem Microservice wird eine bestimmte Zuständigkeit zugewiesen. Bei einer Contact Center Software könnten das die Anrufbearbeitung und steuerung, Aufgaben-Routing, Berechnung der Serviceverfügbarkeit oder Reporting sein. Diese verschiedenen Subsysteme teilen sich keinen Code, so dass für die verschiedenen Dienste die jeweils am besten geeigneten Technologie verwendet werden kann. Microservices kommunizieren über APIs, um eine funktionsfähige Applikation zu bilden.

Einfache Wartung

Microservices können unabhängig von anderen Services entwickelt, getestet, bereitgestellt und skaliert werden – die Wartung der Applikation wird dadurch stark vereinfacht. Anstatt eine ganze Applikation zu aktualisieren, müssen nur bestimmte Komponente angefasst werden. In monolithischen Applikationen verheddern sich mit der Zeit die Code-Abhängigkeiten. Da Microservices keinen Code teilen, können einfacher neue Funktionen ausgerollt werden. Sofern die Architektur gut konzipiert ist, hat ein Update oder ein Fehler in einem Service keinen Einfluss auf den Rest des Systems und die Applikation kann unterbrechungsfrei weiterlaufen. Bei monolithischen Applikationen hingegen kann ein Fehler in einem Teil der Applikation einen ganzen Release aufhalten, und somit die Veröffentlichung neuer Funktionen verzögern. Microservices ermöglichen ein unterbrechungsfreies und schnelles Ausrollen von Updates und neuen Funktionen.

Höhere Agilität

Eine Microservices-Architektur erhöht die Agilität. Obwohl das System als Ganzes in einer Microservice-Architektur komplexer ist, ist jeder einzelne Service sehr einfach aufgebaut. Das bedeutet, dass einzelne Services von einem kleinen Team entwickelt und gewartet werden können. Dies erfordert weniger Koordination und ermöglicht ein schnelleres Ausrollen von Funktionen. Das erhöht die Produktivität und senkt die Entwicklungskosten.

Hyper-skalierbar

Einer der grössten Vorteile einer Microservice-Architektur ist die Skalierbarkeit. Bei steigender Nachfrage können Services unabhängig voneinander skaliert werden, ohne die gesamte Applikation zu skalieren. So können Ressourcen an die am meisten benötigten Service zugewiesen werden oder neue Service einfach hinzugefügt werden. Wenn zum Beispiel die Anzahl der Anrufe steigt, können automatisch neue Call-Handler gestartet werden, um die erhöhte Last zu bewältigen. Microservices ermöglichen somit eine optimale Ausnutzung der Rechenkapazität.

Zusammengefasst

  • Eine Microservice-Architektur beschreibt ein System, das aus lose gekoppelten, unabhängigen Services besteht, die über APIs miteinander kommunizieren.
  • Microservices sind robust und hoch skalierbar.
  • Die Wartung der Applikation wird erleichtert, da jeder Service von einem kleinen Team bearbeitet werden kann.
  • Eine Microservice-Architektur erhöht die Agilität.
  • Eine Microservice-Architektur senkt langfristig die Entwicklungskosten.
  • Eine Microservice-Architektur ist zukunftssicher.