IT-Trends-Blog

IT-Trends-Blog

Opinions expressed on this blog reflect the writer’s views and not the position of the Capgemini Group

Software Development 4.0: Lernen von Microservices

Angesichts der digitalen Transformation nimmt die Service-orientierte Architektur (SOA) eine wichtige Rolle ein. In Zeiten von Software as a Service stellt sie sicher, dass Geschäftsfunktionen als Services fachlich richtig strukturiert sind. Der Knackpunkt liegt dabei in der Frage nach dem richtigen Serviceschnitt. Also wie ein Business Service, so wie ihn der Fachbereich sieht,  bestmöglich durch einen oder mehrere technische (Application-)Services umgesetzt werden kann. Microservices haben diese Diskussion aus Sicht der Service-Granularität wieder neu entfacht. Sie sind eigenständig installier- bzw. betreibbar. Aus diesem Blickwinkel betrachtet sind die kleinen Dienste eigentlich nichts anderes als eine Architekturvariante zur Umsetzung einer SOA. Viele Erfahrungen mit ihrem Umgang lassen sich auch auf komplexere Architekturen übertragen. Folgende sieben Empfehlungen habe ich aus meinen Praxisalltag mit Microservices für Sie abgeleitet. Sie sollen beim Einsatz der Software von heute und morgen helfen:

Praxistipp 1: Agilität allein reicht nicht

Agile kann in der Softwareentwicklung der Zukunft nicht der alleinige Anspruch sein. Gute Entwickler müssen den Vierklang aus Agile, DevOps, Microservices und Cloud beherrschen und sie als Software Development 4.0 kombinieren. In einem agilen Ansatz werden flexible und überschaubare Microservices dabei auf einer voll automatisierten Pipeline (DevOps) in der Cloud entwickelt, getestet und betrieben.

BU: Der Vierklang aus Agile, DevOps, Microservices und Cloud. © Dr. Karl Prott

 

Praxistipp 2: Mehr als nur Microservices

Versteifen Sie sich nicht auf Microservices, sondern denken Sie auch über andere Architekturen nach! Neue und vielversprechende Architekturparadigmen sind, meiner Meinung nach, leichtgewichtige BPM-Lösungen, eventgetriebene Architekturen sowie die gemeinsame Implementierung von analytischen Funktionen (OLAP) und operativen Funktionen (OLTP) auf Basis aktueller InMemory-Technologie.

Praxistipp 3: Denken Sie in Bausteinen!

Viele Unternehmen setzen auf Standardlösungen und dabei immer mehr auf Services aus der Cloud. Doch erfolgreiche Digitalisierung braucht zusätzlich auch individuelle Software. Trauen Sie sich daher, den Standardlösungen noch persönliche Bausteine hinzuzufügen. Erweitern und passen sie diese wie ein Satz Lego an die Bedürfnisse Ihres Unternehmens an. Das verschafft Ihnen nicht nur einen Wettbewerbsvorteil sondern auch ein zusätzliches Produkt, das Sie anderen anbieten können.

Praxistipp 4: Setzen Sie den goldenen Schnitt!

Der Einsatz von Microservices alleine führt Sie nicht zum goldenen Schnitt. Der Blick auf Ihre Nutzer hingegen schon. Ich rate Ihnen also, bei der Jagd nach dem perfekten Serviceschnitt „outside in“ vom Nutzer her zu denken. Was braucht dieser und wie nutzt er den Service? Diese Fragen sollten Sie bei der Softwareentwicklung begleiten.

Praxistipp 5: Packen Sie „Eventual Consistency“ mit in Ihren Baukasten!

In einem verteilten System, das aus mehreren Microservices besteht, bekommt nicht jeder Microservice Veränderungen an gemeinsam genutzten Daten ohne Zeitverlust mit. Diesen Zustand nennt man „Eventual Consistency“. Er stellt jedoch viel mehr eine fachliche als eine technische Herausforderung dar. Meiner Ansicht nach gehört die Eventual Consistency in jeden gut ausgestatteten Baukasten eines Business-Architekten.

Praxistipp 6: Gehen Sie offline!

Mit zunehmender Mobilität müssen Sie damit rechnen, dass ein Service wegen fehlender Erreichbarkeit auch mal offline ist. Microservices etwa sind voneinander unabhängig installierbar. Sie sind also auch dann erreichbar, wenn abhängige Microservices gerade nicht verfügbar sind. Lernen Sie hiervon und gehen Sie aktiv mit der Nichterreichbarkeit von Services um. Mögliche Lösungen: Caching, Rückgriff auf ein Alternativsystem, das Circuit Breaker Pattern oder auch eine individuelle Anpassung fachlicher Services.

Praxistipp 7: Denken Sie in Events!

In Praxistipp 2 habe ich bereits die eventgetriebene Architektur genannt. Doch die „Eventverarbeitung“ ist mehr als nur ein aktueller Architekturtrend, sondern greift im Kontext der Softwareentwicklung sehr viel tiefer. Schon heute ist es für uns selbstverständlich, alles in Echtzeit verfolgen zu können. Das Zeitalter des Internets der Dinge hat aber gerade erst begonnen und mit ihm wird die Zahl der Events weiter steigen. Sie sollten daher also nicht nur Systeme besitzen, die Events in großen Massen empfangen können, sondern sie auch so konzipieren, dass sie all die anstehenden Events bewältigen können.

Welche Erfahrungen haben Sie bei der Umsetzung von Microservices gemacht und welche ihrer Erfahrungen konnten Sie auch in anderen Bereichen der Softwareentwicklung nutzen?

Wenn Sie mehr zum Thema und die Praxistipps in größerer Ausführlichkeit lesen wollen, empfehle ich Ihnen die Lektüre meines Artikels auf Informatik Aktuell.

Über den Autor

Karl Prott

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem * gekennzeichnet.