Marco Schulz Selbstständig

„Wie wir sehen konnten, sind Microservices für viele Problemstellungen eine hervorragende Lösung. Und Monolithen gehören per se nicht aufs Altenteil. Alles hat seine Berechtigung. Um erfolgreiche Projekte abzuwickeln, müssen wir lernen, uns auf die wesentlichen Dinge zu konzentrieren und diese dann im optimalen Fall mit agilen Methoden umsetzen.“

Microservices haben mittlerweile für viele Unternehmen eine sehr hohe Bedeutung gewonnen. Durch die Verwendung dieser neuen Technologie erhofft man sich größere Flexibilität, um auf künftige Änderungen reagieren zu können. Allerdings ist es nicht damit getan, das bestehende Projekt in kleine Fragmente aufzuteilen und diese als Services zu bezeichnen. Neben den technischen Herausforderungen sind auch viele strukturelle Rahmenbedingungen zwingend erforderlich, um langfristig erfolgreich zu sein. Dieser Artikel zeichnet ein weites Bild um die vielen Details und hilft dabei, Entscheidungen zu verstehen.

Fragt man nach den Beweggründen, weshalb in einem Unternehmen Microservices eingeführt werden sollen, sind die Antworten meist identisch. Durch einen modularen Aufbau der gesamten Anwendung haben viele Projektverantwortliche das Bild eines LEGO-Baukastens vor Augen. Man glaubt, einzelne Fragmente beliebig kombinieren zu können, um so einen hohen Grad an Wiederverwendung und natürlich implizit auch erhebliche Kosteneinsparungen in der Entwicklung zu erzielen. Die Realität schaut aber ein wenig anders aus. Ein gebetsmühlenartiges Proklamieren von wiederverwendbaren Komponenten ist für den Erfolg nicht ausreichend. Diese Evangelien wurden bereits aus dem objektorientierten Design, der vorangegangenen Religion, abgeschrieben. Auf die Erfüllung warten viele Jünger teilweise noch heute.

Standhaftigkeit

Wenn wir von Stabilität sprechen, bewegen wir uns im Kontext der nicht funktionalen Anforderungen. Aus Erfahrung wissen wir um die Schwierigkeiten, eine solche Anforderung zu artikulieren. Die meisten Beteiligten haben oft eine eigene oder nur eine vage Vorstellung über die für das Projekt relevante Bedeutung des Begriffs Stabilität. Um hier ein gemeinsames Verständnis zu schaffen, ist es unumgänglich abzugrenzen, wie im Konkreten Stabilität verstanden werden soll. Betrachten wir hierzu eine Arbeit von Boehm aus dem Jahr 1976, deren Thematik Softwarequalität ist. Die von Boehm aufgezeigten verschieden Betrachtungsweisen, was der Qualitätsbegriff im Kontext von Software bedeuten kann, soll auch uns als Ausgangspunkt dienen. So können wir für den Begriff Stabilität die Aspekte Fehlertoleranz von Benutzerinteraktionen oder Netzwerklatenzen außen vor lassen. Fokussieren wir uns daher auf den Bereich Maintenance (Wartung). Denn bei Enterprise-Projekten können wir uns stets gewiss sein: Die Laufzeit der entstandenen Anwendung wird viele Jahre, wenn nicht sogar Jahrzehnte umfassen. Das impliziert kontinuierliche Anpassungen und Erweiterungen. So existieren hinreichend viele Beispiele von Anwendungen, die komplett neu entwickelt werden mussten, da sich die Aufwendungen für notwendige neue Funktionen nicht tragen konnten.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 2.19 - "WebAssembly"

Alle Infos zum Heft
579881940Wann Microservices (nicht) sinnvoll sind
X
- Gib Deinen Standort ein -
- or -