embarc logo
embarc logo

Microservices

Fachlich geschnittene, unabhängig deploybare Services mit organisatorischen Auswirkungen

 
 
 

Seit der Begriff Microservices 2011 das erste Mal in der Fachwelt auftauchte, hat sich das Konzept zu einem Hype-Thema entwickelt. Unabhängig deploybare Services, fachlich geschnitten, jeder läuft in einem eigenen Prozess und kommuniziert mit anderen Services über Netzwerkschnittstellen. Das sind Microservices, kurzgesagt.

Doch wieso hat dieser Architekturstil gerade in den letzten Jahren an Bedeutung gewonnen? Themen wie Cloud Computing, Container und Continuous Delivery sind wichtige Gründe. Auch der Wunsch nach selbstorganisierten und autonomen Teams spielt eine große Rolle.

Gutes Zusammenspiel zwischen Softwarearchitektur und Organisation ist ein zentrales Thema.

Microservices erlauben es uns, dieses Ziel zu erreichen. Selbstorganisierte, autonome Teams haben Verantwortung für unabhängig deploybare Services. Klingt erstmal nach einer guten Idee. Kombiniert mit Praktiken aus DevOps erlauben uns Microservices, unser System und seine Bestandteile getrennt voneinander und agil weiterzuentwickeln. Darüber hinaus kann durch den richtigen fachlichen Schnitt die Verantwortung eines Services leichter zu anderen Teams übergeben werden. Das hat den Vorteil, dass das Zusammenspiel zwischen Softwarearchitektur und Organisation bei Veränderung auch leichter bestehen bleiben kann.

Allerdings sind Microservices kein Selbstzweck. Auch wenn es ein Hype-Thema ist, ist es nicht immer der passende Architekturstil. Wählen Sie Microservices nicht wegen des Trends, sondern finden Sie gute Gründe dafür.

 
Ziehen Sie Microservices in Betracht, wenn … Lassen Sie eher die Finger von Microservices, wenn …
Monolithen zu komplex werden, um effizient gemanagt werden zu können bei Greenfield-Projekten noch wenig Domänenwissen vorhanden ist
Sie eine SaaS-Lösung entwickeln, die besondere Anforderungen an Skalierbarkeit oder Robustheit hat die Entwicklergruppe klein oder das System wenig komplex ist
viele Entwickler an einem System arbeiten Software-Artefakte an den Kunden ausgeliefert und installiert werden
Kostenminimierung im Vordergrund steht (z.B. “Cost Center” statt “Profit Center”)
 

Was nutzen mir Microservices?

Neben der vorhin erwähnten Verzahnung zwischen Architektur und Organisation erlaubt es gerade die Kombination aus DevOps-Praktiken und Microservices, dass Teams selbstständiger arbeiten können, da sie Entscheidungen lokaler treffen können. Dadurch unterstützen sie die Agilität in Unternehmen. Unabhängige Services, die von unabhängigen Teams entwickelt werden, können sich auch unabhängig voneinander weiterentwickeln. Durch eine inkrementelle Entwicklung wird der Scope von Änderungen kleiner und leichter beherrschbar.

Microservices haben auch wichtige und positive Auswirkungen auf Softwarequalität. Ihr System wird robuster, wenn sie Resilienz-Patterns wie Circuit Breaker einsetzen. Dies führt zu besserer Fault Isolation in Microservice-Systemen, da Fehler lokal begrenzt gehalten werden können. Bei Monolithen ist es manchmal der Fall, dass unbehandelte Fehler gleich das gesamte System betreffen und global zu Problemen oder zum Ausfall führen können. Skalierung ist ein anderer Aspekt, der von Microservices profitiert. Monolithische Systeme können entweder ganz oder gar nicht skaliert werden. Microservices können individuell skalieren. Wenn also bestimmte fachliche Teilbereiche eine höhere Skalierungsanforderung haben, dann können Sie genau diese Komponenten entsprechend skalieren und den Rest des Systems unangetastet lassen.

Nicht zuletzt ist es einfacher, mit Microservices neue Technologien auszuprobieren und so als Organisation am Ball zu bleiben.

 

Microservices mit embarc

Sie haben Herausforderungen bei Ihrer Reise zu Microservices? Dann lassen Sie uns doch mal darüber sprechen!

Kontaktieren Sie uns...

Nützliche Publikationen, Vortragsmitschnitte und Downloads

Weitere Themen...