Blog-Layout

Warum Microservices gut sind.

Was ist zu beobachten?

Es gibt diese Themen, die bei manchen Zeitgenossen sehr emotionale Reaktionen auslösen und zu heftigen Reaktionen führen, selbst wenn das jeweilige Thema eher technisch ist und die beteiligten Parteien rational Denkende und Handelnde sind. Microservices sind so ein Thema. Ich habe diese Situation, in der es nur um ein entweder/oder geht, als Berater mehrfach erlebt und habe die eingebrachte Emotionalität nur bedingt nachvollziehen können. Für mich sind Microservices - bei allen Nachteilen – ein geeignetes Architekturmuster, um althergebrachte Nachteile zu überwinden. Darum möchte ich kurz über meine Sicht und Einordnung auf das Muster „Microservice Architektur“ eingehen und eine zugebenermaßen subjektive Bewertung vornehmen. Um es jetzt schon zu sagen: Mich begeistern Microservices!

Anforderungen an eine gute Softwarearchitektur

Es soll wohl im Jahre 2008 gewesen sein, als bei Netflix für 4 Tage nichts mehr ging, weil die Datenbank einen Fehler aufwies. Hier hatte ein Fehler an einer zentralen Komponente zu einem Ausfall des Ge-samtsystems geführt. So einen Ausfall kann sich kein Unternehmen erlauben, das IT-basierte Dienste und Produkte anbietet. Ausfallsicherheit ist eine wichtige + Anforderung an ein Softwaresystem.
Heutzutage kann die Last auf ein einzelnes IT-System sehr groß sein, oder zumindest sehr stark schwanken. Eine Software muss daher „atmen“, d.h. sich dem Bedarf kurzfristig anpassen können. Darum ist horizontale und vertikale Skalierung eine weitere Anforderung.
Funktionale Änderungen an Fähigkeiten eines IT-Systems müssen schnell bereitgestellt werden kön-nen. Lange Releasezyklen sind nicht mehr hinnehmbar, da das Business Funktionalität in VUCA Zeiten (volatility, uncertainty, complexity und ambiguity) schnell benötigt.
Und? Die Erfahrung zeigt, dass viele monolithische Systeme diese Eigenschaften nicht mitbringen, obwohl es schon länger in der Informatik Prinzipien gibt, die eigentlich die Übersetzung dieser Forderungen sind.

Prinzipien der Softwaretechnologie in der Informatik

Es gibt diese abstrakten Prinzipien der Informatik, die es zum Ziel haben, die o.g. Nachteile (z.B. lange Releasezyklen, große Anfälligkeiten gegen Ausfall einzelner Komponenten, geringe Skalierbarkeit, ge-ringe Anpassbarkeit) zu verhindern. Diese Prinzipien geben eigentlich alles vor: 
  • Separation der Belange
  • Modularität 
  • Abstraktion 
  • Voraussicht auf Änderungen 
  • Generalisierung 
  • Inkrementelles Vorgehen 
Microservices als Architekturmuster erfüllt genau diese Anforderungen .

Positive Eigenschaften der Microservices

Eigentlich lassen sich auch monolithische Anwendungen so konstruieren, dass sie den Prinzipien entsprechen. Eigentlich! Aber die Realität der monolithischen Systeme ist und war oft anders. Microservices tragen hingegen diese Prinzipien in sich.
Microservices sind eigenständige kleine Software-Anwendungen, unabhängig entwickelt, deployed und betrieben. Die  Kommunikation über definierte REST-APIs. Die Microservices sind fachlich geschnitten und konzentrieren sich auf eine Sache. 
Damit einher geht die Eigenschaft der losen Kopplung, denn die kleinen Services teilen sich nichts. Die kleinen, unabhängige Komponenten, werden parallel entwickelt. Prozesse und Werkzeuge des Continous Integration und Deployments erlauben einen kontinuierlichen Fluss an Änderungen. Das heißt: Releasezyklen ade. Das Prinzip „Du baust es – du betreibst es“ führt zur Nähe des Betriebs zur Entwicklung. DevOps führt Entwicklung und Betrieb zusammen. Das heißt: Projektorganisation ade.
Da jeder Service die passende Laufzeitumgebung hat, ist auch die horizontale und vertikale Skalierung sehr gut möglich. Alles perfekt, oder?

Negative Eigenschaften der Microservices

Wo viel Licht ist….da ist auch Schatten. Microservices lösen nicht alle Herausforderungen bzw. führen zu Neuen. Die Netzbelastung und damit einhergehende Latenzzeit ist ein Faktor. Des Weiteren ist die Transaktionssteuerung bei serviceübergreifenden Prozessen ein Problem. Die Infrastruktur kann in den meisten Fällen auch nicht auf einen Bus o.ä. verzichten, da das Message Queueing weiterhin benötigt wird. Das Management vieler Services in großen Organisationen ist kompliziert. Auch der fachliche Serviceschnitt ist, wie schon „alten“ SOA -Zeiten, eine Kunst. Für diese Herausforderungen gibt es Lösungsansätze, die aber nicht strukturimmanent sind, sondern explizit herbeigeführt werden müssen.

Fazit

Insbesondere im Cloud Kontext sind Microservices oft genau richtig, und auch als Refactoring -nsatz sehr gut geeignet. Aber die Nachteile müssen auch betrachtet und bewertet werden. Die eingangs genannte emotionale Haltung der Gesprächsteilnehmer ist mir auch jetzt noch ein Rätsel.
von Norman Brehme 29 Aug., 2023
Low-Code ist als relativ neue Technologie überall im Gespräch. Warum eigentlich? Was sind die Vorteile und wo sind die Fallen. Der Blogbeitrag bringt ein wenig Licht ins Dunkle.
von Norman Brehme 04 Nov., 2020
Open Agile Architecture - eine Einschätzung
von Norman Brehme 02 Sept., 2020
Am 2. und 3. September fand und findet der EA Connect Days 2020 Kongress, veranstaltet vom EA-Werkzeuganbieter LeanIX, in Bonn statt. Bedingt durch die aktuellen Rahmenbedingungen, wurde der Kongress hybrid durchgeführt, d.h. alle Vorträge wurden online und onsite übertragen. Die Vortragenden waren nicht alle vor Ort, sie wurden entweder live übertragen oder eingespielt. Die Lokation war, wie im Jahr 2019, der ehemalige Bundestag in Bonn. Der Kongress war, gemessen an der allgemeinen Verunsicherung durch COVID 19, gut besucht. Auch im Online-Chanel war viel los. Allerdings fiel auf, dass insbesondere "onsite" der Andrang fehlte. Die Agenda versprach eine bunte Mischung aus verschiedenen Stoßrichtungen im Kontext EA. Das Versprechen wurde gehalten, mit Einschränkungen allerdings – dazu später. Aus dem reichhaltigen Angebot an kurzweiligen Vorträgen möchte ich nur einen kleinen Auszug nennen. Eine der Keynotes wurde von Frank Thelen gehalten, der die Zuhörerschaft motivierte, in diesen disruptiven Zeiten verstärkt Technologien zu verstehen und zu nutzen. Eine grundsätzliche ablehnende Haltung würde nichts an der weltweiten Nutzung und Ausbreitung ändern. Ich kann diesen Standpunkt sehr gut nachvollziehen. Gerade in Europa stehen wir neuen Technologien sehr kritisch und skeptisch gegenüber. Auch die Fragen im Plenum bezogen sich auf die kritischen Aspekte. Der BPM-Werkzeughersteller Signavio, vertreten durch Gero Decker, berichtete in einem Interview über die Faszination und Bedeutung der Prozesse und wies auf die Integration von LeanIX und Signavio hin. Gleichzeitig wurde Process Mining als das Hypethema auf dem Gebiet propagiert. Auch das Thema Cloud fehlte nicht. Unter dem Aspekt CMDB wurde auf einer Podiumsdiskussion auf das Spannungsfeld Agilität und Governance hingewiesen. Einer der Höhepunkte für mich waren die LeanIX-Features zum Thema „Business Transformation Management“ (BTM), die André Christ (LeanIX CEO) präsentierte. Dahinter verbirgt sich die Modellierung von Szenarien, die im Zusammenhang von Transformationen notwendig sind. Durch BTM hebt sich LeanIX von der Konkurrenz ab. Die vielseitige Nutzung von LeanIX wurde an verschiedenen Projektbeispielen aufgezeigt. Auch die Integration mit anderen Werkzeugen wie Apptio wurde präsentiert. Am 3. September wird ein LeanIX Certified EA Associate Training stattfinden.
von Norman Brehme 12 Aug., 2020
Ich mache immer wieder die Erfahrung, dass die Arbeit der Enterprise-Architekten (EA) in Unterneh-men nicht von allen Betroffenen als wertschöpfend und notwendig angesehen wird. Projekte werfen der EA-Truppe vor, nicht schnell genug zu sein, die Fachseite behauptet, EA verhindern Innovationen und der CIO kann keinen messbaren Erfolg feststellen. Also frei nach dem §6 des „kölschen Grundge-setzes“ „Kenne mer nit, bruch mer nit, fott domet?“ Im Gegenteil - sage ich. Gerade in Zeiten der Digi-talisierung brauchen Unternehmen Architekturfähigkeiten, die helfen mit der VUCA-Welt umzugehen.
von Norman Brehme 06 Juli, 2020
Die Cloud ist nicht mehr wegzudenken: Sowohl in geschäftlicher als auch privater Hinsicht heißt es immer öfter „Gehen Sie in die Cloud?“, „Ich arbeite in einem Cloud-Projekt.“ Oder auch nur „Cloud-Architekt gesucht“. Obwohl der Begriff eigentlich kein spezifisches Produkt bezeichnet und mehr ein Marketing- als ein IT-Begriff ist, wird Cloud vielfältig verstanden und interpretiert. Die Cloud scheint eine der Antworten auf die Digitalisierung zu sein, die eine strategische Ausrichtung braucht.
von Norman Brehme 25 Juni, 2020
Enterprise Architecture Management ist wahrlich nichts Neues. Oft kann man als Berater den Eindruck gewinnen, dass es in den Organisationen geradezu aus der Mode gekommen ist, ernsthaft über die Chancen und Möglichkeiten eines ausgewachsenen EAM zu reden. Die Vorwürfe lauten: "zu starr", "zu langsam", "zu teuer", "zu IT-lastig" und dergleichen mehr. Tatsächlich ist es in Organisationen zu beobachten, dass vor Jahren erste Erfahrungen mit TOGAF und Co. gemacht wurden. Aber irgendwie hat es scheinbar nichts gebracht (Wo waren die KPI?). Höchste Zeit für einen Relaunch. Damit der gelingen kann, möchte ich hier ein Grundsätze bzw. Richtlinien benennen, von denen ich behaupte, dass sie bei der Einführung von EAM helfen. Es müssen auch Branchenspezifische Eigenheiten berücksichtigt werden, aber in der ersten Näherung gelten diese Grundsätze übergreifend.
Show More
Share by: