Blog

Die Vorteile und Herausforderungen einer Microservices-Architektur

Posted on 16. Oktober 2017 16:45:00 MESZ

container-2568204_1920.jpg

Während Microservices einigen Entwicklern bereits seit längerer Zeit ein Begriff sind, landet dieser Ansatz zunehmend auf der Agenda von IT-Entscheidern. Doch was genau sind eigentlich Microservices und wo genau ist der Unterschied zur konventionellen monolithischen Architektur?

 

Was sind Microservices?

Bei Microservices handelt es sich um ein neues IT-Architekturmuster. Ein zentraler Begriff in diesem Zusammenhang ist die Modularisierung: Im Vergleich zur klassischen, untrennbaren und einheitlichen monolithischen Architektur geht es bei Microservices darum, flexiblere und kleinere Services zu entwickeln. Um komplexe Anwendungen zu etablieren, kommunizieren diese kleineren und unabhängigen Prozesse untereinander durch sprachunabhängige Programmierschnittstellen.

 

Unterschiede zwischen Microservices und einer monolithischen Architektur

Monolithische Strukturen erschweren die Handhabung, wenn eine Anwendung ein bestimmtes Level an Komplexität erreicht. Für eine schnelle und dynamische Entwicklung ist die monolithische Lösung damit oftmals ungeeignet. Je größer Projekte werden und je mehr die Anzahl der beteiligten Personen und Module anwächst, desto größer werden Risiken und Nachteile einer monolithischen Architektur, da für ein neues Release immer erst alle Bestandteile zu einem großen „Ganzen“ zusammengeführt werden müssen – auch die Teile, die sich gar nicht geändert haben.

 

Microservices ermöglichen dagegen die schnelle Implementierung von neuen Funktionen. Eine große Anwendung wird mittels Microservices in einzelne, individuelle und unabhängige Dienste zerlegt. Dabei kann jeweils auf die bestens geeignete Sprache / Technologie zurückgegriffen werden, ohne dadurch die Betreibbarkeit der Gesamtanwendung negativ zu beeinflussen. Möglich wird dies durch den Einsatz sogenannter Container, in denen die Services für den Betrieb gekapselt werden. Da sich diese Container parallel betreiben lassen, kann die vorhandene Infrastruktur deutlich besser genutzt werden.

 

Microservices vereinfachen das Debuggen und erleichtern die Integration. Gerade die steigende Bedeutung mobiler Geräte und des Cloud Computings sorgen dafür, dass Microservices in diesem Zusammenhang die flexiblere Lösung sind.

 

Inbesondere Unternehmen, die zu Beginn der Entwicklung einer Anwendung noch nicht final wissen, auf welchen Endgeräten diese laufen soll, profitieren von der Flexibilität der Microservices. Aufgrund der Unabhängigkeit von Plattformen sind Anwendungen, die mit Microservices entwickelt wurden, geeignet für verschiedene Auslieferungskanäle wie beispielsweise Web, Mobile, Internet of Things oder Wearables.

 

Gründe warum Unternehmen auf eine flexible Microservices-Architektur setzen sollten

Große und erfolgreiche Unternehmen wie eBay, PayPal, Netflix oder Amazon setzen bereits seit längerer Zeit auf Microservices. Dies hat verschiedene Gründe. Entwickler sind beispielsweise nicht darauf beschränkt, nur ein Tool eines bestimmten Anbieters zu verwenden: Für jede Aufgabe kann eine andere Lösung verwendet werden, mit einem eigenen individuellen Framework und eigener Sprache. Trotzdem kommunizieren diese entwickelten Dienste problemlos mit bereits bestehenden Anwendungen.

 

Ein weiterer Grund, der für die Umstellung auf Microservices spricht, ist die schnellere Auslieferung von neuen Features. Wenn ein Feature hinzugefügt oder modifiziert werden soll, muss nur ein kleiner Teil des Codes angepasst werden. Die geänderten Teile können unabhängig von anderen Services der Anwendung getestet und verteilt werden, um wertvolle Zeit zu sparen.

 

Microservices zeichnen sich auch durch eine erhöhte Anpassungsfähigkeit von Diensten aus: Aufgrund der Unterteilung in verschiedene Komponenten können diese individuell skaliert werden, wenn z.B. nur ein Teil der Anwendung temporär oder funktional besonders belastet wird. Unternehmen profitieren auf diese Weise von einer hohen Flexibilität und effizienteren Mitteln zur Steuerung der Performance.

 

Auch die höhere Belastbarkeit sprechen für Microservices: Aufgrund der Dezentralisierung der gesamten Anwendung und die Unterteilung in einzelne Dienste, betrifft ein auftretender Fehler nicht gleich die komplette Anwendung, sondern lediglich einen bestimmten Dienst. Je nach Aufgabe des betroffenen Services sind die Auswirkungen des Ausfalls jedoch begrenzt. Bei einer monolithischen Architektur betrifft ein Fehler aufgrund des einheitlichen Codes meist mehrere Dienste und Funktionen.

 

Nicht zuletzt aufgrund des einfacheren Debuggings sollten Unternehmen auf Microservices setzen. Aufgrund der kleineren, besser zu handhabenden Codefragmente eines Services, steigt die Auslieferungsqualität der Anwendungen. Außerdem ist der Einstieg in den Code für neue Entwickler einfacher.

 

Herausforderungen im Umgang mit Microservices

Microservices sind nicht für jedes Unternehmen die ideale Lösung. Mit folgenden Herausforderungen müssen Unternehmen rechnen und anschließend abwägen, ob sich eine Umstellung lohnt:

 

Die Orchestrierung der Microservices, d.h. die Art wie sie im Betrieb miteinander kommunizieren, verwaltet und überwacht werden, erfordert die Nutzung neuer, moderner Betriebstechnologien. Ohne Einsatz von Werkzeugen wie z.B. Docker macht die Ausrichtung auf Microservices keinen Sinn, da deren Potential in diesem Fall nicht gehoben werden kann.

 

Die Anforderung, im Betrieb geeignetes Wissen und Personal aufzubauen geht also mit der Entscheidung für den Einsatz von Microservices einher.

 

Essentiell ist es zudem, dass Unternehmen die Ressourcen und das Personal bereitstellen, um Dienste schnell zur Verfügung zu stellen und agil neue Anwendungen entwickeln zu können. Dies erfordert eine enge Zusammenarbeit zwischen Entwicklung und Betrieb, um die schnellen Innovationszyklen zu unterstützen ohne dabei die Qualität der Auslieferungen zu gefährden (lesen Sie hier mehr dazu in unserem Blog-Post zum Thema DevOps).

 

Fazit

Microservices sind die Zukunft, das zeigen nicht nur die neuen Ausführungen von Forrester und Gartner. Unternehmen sollten zunächst die eigenen Ressourcen analysieren und anschließend eine Entscheidung dahingehend treffen, ob sich eine Umstrukturierung von einer eher klassischen Architektur auf Microservices tatsächlich lohnt. Eines ist sicher: Die Anzahl der Unternehmen, die auf Microservices setzen, wird künftig weiter signifikant steigen.

 

Um Microservices in der Praxis einzuführen, sollten Unternehmen ihren Entwicklungsansatz auf agile Methoden umstellen. Im kostenlosen Whitepaper „Agile Softwareentwicklung als Treiber der Digitalisierung“ erfahren Sie alles zum Thema agile Entwicklungsmethoden.

 


Zum Newsletter anmelden und auf dem Laufenden bleiben

Die aktuellen Blogposts