Microservices sind Softwarelösungen, die klein, übersichtlich und fokussiert sind. Sie teilen sich in kleine, unabhängig deploybare Module bzw. Funktionalitäten auf. Das Gegenteil stellen die Monolithen dar, wobei eine gesamte Anwendung mit allen Modulen als Ganzes auf einmal ausgeliefert werden muss. Monolithen scheinen zunächst wegen einer niedrigeren Komplexität, die bessere Wahl darzustellen. Es muss nur ein System betrieben und ausgeliefert werden. Der Schein trügt.
Microservices sind als Architekturansatz entstanden, weil sie in der Softwareauslieferung massiv an Effizienz gewinnen. Jeder Service lässt sich unabhängig vom anderen ausliefern. Das Deployment eines einzelnen, kleinen Microservice ist einfacher und schneller als das Deployment eines vollständigen Monolithen. Auch das Risiko sinkt, weil die Änderungen nur ein Service betreffen. Die Änderungen sind dadurch nicht so gross und es gibt weniger Möglichkeiten für Fehler.
Wenn eine Continuous Delivery und DevOps avisiert werden, lohnt es sich, eine Migration zu Microservices in Betracht zu ziehen. Durch die loose Kopplung und der hohen Kohäsion sind technische Entscheidungen auf ein Bounded Context fokussiert. Microservices sind somit weitgehend unabhängig – und diese Unabhängigkeit erlaubt es den Teams, sehr autonom zu arbeiten.