[Microservices|Microservice] ist ein Trend zur feiner werdenden Modularisierung von Applikationen. Während früher teilweise sogar mehrere Anwendungen auf einem [Application Server] [deployed|Deployment] 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 folgenden Technologien:

||Service||Implementierung
|Prozess Container|[Spring Boot|https://spring.io/projects/spring-boot]
|Control Flow|[Project Reactor|https://projectreactor.io/]
|Web Stack|[WebFlux|https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html]
|Service Discovery|[Spring Cloud Netflix|https://spring.io/projects/spring-cloud-netflix]
|Betriebssystem|[Ubuntu]
|Virtualisierung|[Docker]
|Continuous Delivery|[Jenkins|https://jenkins.io/]
|Edge Service|[Spring Cloud Gateway|https://spring.io/projects/spring-cloud-gateway]
|Reverse Proxy|[Apache HTTPD|https://httpd.apache.org/]
|Database|[MongoDB|https://www.mongodb.com/] and [MySQL|https://www.mysql.com/de/]
|Message Broker|[RabbitMQ|https://www.rabbitmq.com/]
|Repository|[Sonatype Nexus|https://www.sonatype.com/nexus-repository-sonatype]
|Code Management|[Apache Subversion|https://subversion.apache.org/]