Von Monolithen zu Microservices: Eine Herausforderung der Softwarearchitektur

02.06.2023

Zurück zur Übersicht

Die Transformation von einer monolithischen Softwarestruktur zu Microservices ist nicht immer einfach, bringt aber seine Vorteile mit sich. Die Architektur wird dadurch flexibler, skalierbarer und erleichtert die Weiterentwicklung der Software.

Wie diese Transformation schrittweise gelingen kann, teilte Sven Sanzenbacher mit Studierenden der Fach- und Wirtschaftsinformatik an der Hochschule Karlsruhe.

Sven ist Teamlead im Bereich Softwareentwicklung bei der Valiton. Das Burda-Tochterunternehmen ist fokussiert auf Data-Science, Data-Engineering und Softwareentwicklung im Bereich Tech und Media.

Sieben Schritte vom Monolithen zu Microservices

  1. Schrittweises Refactoring: Es ist ratsam, den Monolithen Schritt für Schritt zu überarbeiten. Durch die Anwendung von Prinzipien wie „SOLID“, „Domain-Driven Design“ und „Clean Architecture“ können klare Grenzen zwischen den Komponenten definiert und einzelne wiederverwendbare sowie unabhängige Module geschaffen werden.
  2. Monolithen mit guter Architektur: Monolithen mit einer guten Architektur können einfacher in Microservices zerlegt werden. Eine durchdachte Architektur legt bereits die Grundlage für eine spätere Migration.
  3. Schrittweise Migration: Statt den gesamten Monolithen auf einmal in Microservices zu zerlegen, sollte man schrittweise einzelne Services herausziehen. Dies ermöglicht eine kontrollierte und beherrschbare Umstellung.
  4. Locker gekoppelte Services: Ein zentraler Aspekt von Microservices besteht darin, dass die Services locker gekoppelt sind. Dies wird durch die Verwendung von „Message Queues“ oder einem „Message Bus“ erreicht, bis hin zu einer „Event-Driven-Architecture“. Dadurch wird die Entkoppelung und Flexibilität der Services verbessert.
  5. Getrennte Datenbanken und Datenschemata: Jeder Service sollte über seine eigene Datenbank und ein eigenes Datenschema verfügen. Dadurch wird die Unabhängigkeit und Fehlertoleranz der einzelnen Services verbessert.
  6. Monitoring und Fehlerbehebung: Zentrale „Log-Server“ und „Distributed Tracing“ sind wesentliche Elemente für das Monitoring und die Fehlerbehebung in einer Microservices-Umgebung. Sie ermöglichen eine bessere Nachverfolgung von Problemen und erleichtern das „Troubleshooting“.
  7. Continuous Integration und Continuous Deployment (CI/CD): CI/CD sind Schlüsselstrategien, die den Prozess des Testens und Bereitstellens der Microservices effizienter und zuverlässiger machen. Sie ermöglichen eine schnelle Iteration und sorgen dafür, dass Änderungen schnell und sicher in die Produktion gelangen.

Fazit

Zusammenfassend kann gesagt werden, dass die Migration zu Microservices kein einfacher Weg ist. Sie erfordert sorgfältige Planung, schrittweises Refactoring und eine klare Vision. Dennoch bieten Microservices viele Vorteile, wie eine erhöhte Skalierbarkeit, Flexibilität und die Möglichkeit, einzelne Services unabhängig voneinander weiterzuentwickeln.

Wer sich für Softwarearchitektur und die Herausforderungen der Migration zu Microservices interessiert, sollte die vorgestellten Take Aways im Hinterkopf behalten. Der Weg zu einer Microservices-Architektur erfordert zwar Zeit und Geduld, kann jedoch langfristig zu einer effizienteren und flexibleren Softwareentwicklung führen.

Autorin: Maja Rubinstein
Content Managerin Employer Branding
maja.rubinstein@burda.com

Zurück zur Übersicht