Verteilte Systeme: Die häufigsten Probleme mit Microservices

Microservices bergen das große Versprechen schnellerer Entwicklungszeit. In der Praxis machen sie aber oft einfach nur mehr Arbeit.

Artikel von João Alves veröffentlicht am
Der Ameisenstaat ist ein Beispiel für ein gut funktionierendes verteiltes System.
Der Ameisenstaat ist ein Beispiel für ein gut funktionierendes verteiltes System. (Bild: gamagapix / Pixabay)

Dieser Text ist eine Übersetzung. Das Original des Softwareentwicklers João Alves ist hier zu finden.

Als 2014 Martin Fowlers Post über Microservices erschien, arbeiteten die Teams, in denen ich war, bereits mit serviceorientierten Architekturen. Der Post und der folgende Hype fanden ihren Weg dann aber in fast jedes Softwareteam der Welt.

Der "Netflix-OSS-Stack" war damals das Ding. Er ermöglichte es Entwicklern weltweit, alles zu nutzen, was Netflix über verteilte Systeme wusste. Jetzt, mehr als sechs Jahre später, spielen Microservices bei den meisten Entwicklerjobs eine wichtige Rolle.

Vom Hype getriebene Entwicklung

Microservices kamen zu einer Zeit auf, als viele Firmen Probleme in ihren Software-Entwicklungszyklen hatten. 50, 100, 200 Entwickler kämpften mit ihren Entwicklungsumgebungen, mit schwerfälligen QA-Prozessen und programmierten Deployments. Das Buch Continuous Delivery brachte viele dieser Teams zu der Erkenntnis, dass ihre majestätischen Software-Monolithen ihnen organisatorische Probleme bereiteten.

Stellenmarkt
  1. Sachbearbeiter*in (m/w/d) Dokumentenmanagenement
    Paul-Ehrlich-Institut, Langen
  2. Wissenschaftlich-technische Mitarbeiterin / Wissenschaftlich-technischer Mitarbeiter (m/w/d) ... (m/w/d)
    Bundesanstalt für Straßenwesen, Bergisch Gladbach
Detailsuche

Deshalb waren Microservices so attraktiv. Denn es ist schwieriger, Continuous Delivery oder Deployment in einem großen Projekt einzuführen, als direkt damit zu beginnen.

Also fingen Teams an, sich drei, zehn, hundert Microservices auszudenken. Die meisten verwendeten "JSON over HTTP" - einige mögen es RESTful nennen 😉 - APIs für Remote-Aufrufe zwischen den Komponenten. Denn: Man kannte das HTTP-Protokoll gut und es schien ein recht einfacher Weg zu sein, die Monolithen in kleinere Stücke zu zerlegen.

Teams konnten nun Code in weniger als 15 Minuten in die Produktion überführen. Es gab kein "Team A hat die CI-Pipeline zerstört, jetzt kann ich meinen Code nicht deployen" mehr - und das war ein tolles Gefühl!

Die meisten Entwickler übersahen jedoch, dass sie zwar ein organisatorisches Problem auf der Ebene der Software-Architektur lösten, aber auch eine Menge Komplexität hineinbrachten. Die Irrtümer der verteilten Datenverarbeitung (englisch: Fallacies of Distributed Computing) wurden immer augenfälliger und bereiteten diesen Teams schnell Kopfschmerzen. Selbst Unternehmen, die schon lange mit Client/Server-Architekturen arbeiteten, flog alles um die Ohren, sobald sie zehn oder mehr bewegliche Teile in ihren Systemen hatten.

Handbuch für Softwareentwickler: Das Standardwerk für professionelles Software Engineering

Die Realität schlägt zurück

Signifikante architektonische Änderungen gibt es nicht geschenkt. Nach und nach erkannten die Teams zum Beispiel, dass die gemeinsame Nutzung einer Datenbank ein Single Point of Failure (SPOF, deutsch: einzelner Ausfallpunkt) war.

Auch wurde ihnen klar, dass die Trennung ihrer Domänen ganz neue Problemfelder aufmachte: Plötzlich spielte die sogenannte eventual consistency eine Rolle. Was, wenn ein Dienst, von dem man Daten abruft, ausfällt? Die Zahl der Fragen und Probleme stieg und stieg.

Das Versprechen eines hohen Entwicklungstempos wurde durch die Suche nach Bugs, Störfällen und Datenkonsistenzproblemen aufgehoben. Ein weiteres Problem war, dass die Entwickler zentralisierte Logs und Monitoring-Lösungen benötigten, die sich über Dutzende von Diensten erstrecken mussten, damit sie diese Fehler erkennen und beheben konnten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Problem Nr. 1: zu kleinteilige Dienste 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


janoP 02. Sep 2021

Wenn die Services fachlich getrennt sind, brauchen sie i. d. R. unterschiedliche...

TheUnichi 20. Jul 2021

Es geht darum, ein gesamtes Framework in einzelnes Paket zu schmeißen. Man braucht nie...

ds4real 20. Jul 2021

Man kann Dinge im Code erzwingen - aber die Erfordernisse unterscheiden sich sogar von...

ds4real 20. Jul 2021

Ich arbeite selbst seit über 10 Jahren im Java-Umfeld, kenne mich aber auch in vielen...

mnementh 19. Jul 2021

All diese Ansätze dienen ja im Endeffekt dazu komplexe Software zu handhaben. Aber meine...



Aktuell auf der Startseite von Golem.de
Amtlicher Energiekostenvergleich  
Benzinkosten mehr als doppelt so teuer wie Ladestrom

Vom 1. Oktober an müssen große Tankstellen einen Energiekostenvergleich aushängen. Dabei schneiden Elektroautos derzeit am besten ab.

Amtlicher Energiekostenvergleich: Benzinkosten mehr als doppelt so teuer wie Ladestrom
Artikel
  1. Konkurrenz zu Fire-TV-Sticks: Roku bringt Streaming-Gerät für 30 Euro
    Konkurrenz zu Fire-TV-Sticks
    Roku bringt Streaming-Gerät für 30 Euro

    Die Fire-TV-Sticks von Amazon bekommen Konkurrenz. Roku kommt nach langer Wartezeit mit seinen Streaming-Geräten nach Deutschland.

  2. Roku Streambar: Soundbar mit Streamingfunktionen kostet 150 Euro
    Roku Streambar
    Soundbar mit Streamingfunktionen kostet 150 Euro

    Roku kommt nach Deutschland und bringt parallel zu externen Streaminggeräten auch eine Soundbar, um den Klang des Fernsehers aufzuwerten.

  3. Diablo 2 Resurrected im Test: Der dunkle Fürst der Zeitfresser ist auferstanden
    Diablo 2 Resurrected im Test
    Der dunkle Fürst der Zeitfresser ist auferstanden

    Gelungene Umsetzung für Konsolen, überarbeitete Grafik und Detailverbesserungen: Bei Diablo 2 Resurrected herrscht Lange-Nacht-Gefahr.
    Von Peter Steinlechner

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Alternate (u. a. DeepCool Matrexx 55 V3 ADD-RGB WH 49,98€) • Thunder X3 TC5 145,89€ • Toshiba Canvio Desktop 6 TB ab 99€ • Samsung 970 EVO Plus 2 TB 208,48€ • Lenovo-Laptops zu Bestpreisen • 19% auf Sony-TVs bei MM • WISO Steuer-Start 2021 10,39€ • Samsung Odyssey G7 499€ [Werbung]
    •  /