Problem Nr. 3: End-to-End-Testing

Mit End-to-End-Tests gibt es ähnliche Probleme wie mit Entwicklungsumgebungen. Früher war es recht einfach, eine neue Entwicklungsumgebung mit virtuellen Maschinen oder Containern zu erstellen. Ebenso war es recht einfach, eine Testsuite mit Selenium zu erstellen, um Geschäftsabläufe durchzugehen und sicherzustellen, dass sie funktionieren, bevor eine neue Version bereitgestellt wird.

Stellenmarkt
  1. UX Designer (m/w/d)
    SCHUFA Holding AG, Wiesbaden
  2. Senior Security Engineer (m/w/d) - Schwerpunkt Windows Server und Active Directory
    Radeberger Gruppe KG, verschiedene Standorte
Detailsuche

Mit Microservices können wir, selbst wenn wir alle oben genannten Probleme mit den entsprechenden Umgebungen lösen, nicht mehr generell behaupten, dass ein System funktioniert. Wir können höchstens behaupten, dass ein System mit bestimmten Versionen der aktuellen Dienste und in einer bestimmten Konfiguration zu einem bestimmten Zeitpunkt funktioniert. Das ist ein riesiger Unterschied!

Es war sehr schwierig, Leute davon zu überzeugen, dass wir nur ein paar dieser End-to-End-Tests machen konnten. Und dass es nicht reichte, sie im Continuous-Integration-Ablauf laufen zu lassen.

Vielmehr sollten sie kontinuierlich laufen. Und sie sollten im Produktivsystem laufen und dementsprechend Hinweise produzieren. Ich habe unzählige Male Cindy Sridharans Artikel Testing in production, the safe way geteilt, um meinen Standpunkt klarzumachen.

Problem Nr. 4: eine riesige, gemeinsam genutzte Datenbank

Golem Akademie
  1. Microsoft 365 Administration: virtueller Drei-Tage-Workshop
    01.-03.06.2022, Virtuell
  2. Jira für Systemadministratoren: virtueller Zwei-Tage-Workshop
    02./03.06.2022, virtuell
Weitere IT-Trainings

Ein einfacher Weg, um von Monolithen wegzukommen und gleichzeitig die Datenkonsistenz zu wahren, ist die Verwendung einer gemeinsamen Datenbank. Sie erhöht die Betriebslast nicht und macht es einfach, einen Monolithen schrittweise zu zerlegen.

Allerdings hat sie auch ein paar beträchtliche Nachteile. Abgesehen davon, dass es sich um einen offensichtlichen SPOF handelt, der einigen Prinzipien der serviceorientierten Architektur zuwider läuft, gibt es noch weitere schwierige Fragen wie: Legen Sie einen Benutzer pro Dienst an? Haben Sie fein abgestufte Berechtigungen, so dass Dienst A nur aus bestimmten Tabellen lesen oder in bestimmte Tabellen schreiben kann?

Was ist, wenn jemand unbeabsichtigt einen Index entfernt? Woher wissen wir, wie viele Dienste verschiedene Tabellen verwenden? Wie sieht es mit der Skalierung aus?

Das alles zu entwirren, ist ein ganz eigenes Problem. Technisch gesehen ist es wahrscheinlich nicht trivial - wenn man bedenkt, dass Datenbanken dazu neigen, Software zu überdauern. Eine Lösung des Problems mithilfe von Datenreplikation (Kafka, AWS DMS oder Ähnlichem) setzt voraus, dass die Entwicklerteams die Besonderheiten von Datenbanken verstehen und zum Beispiel wissen, wie mit doppelten Ereignissen umzugehen ist.

Problem Nr. 5: API-Gateways

API-Gateways sind typisch für serviceorientierte Architekturen. Sie sind hilfreich, um das Backend von den Frontend-Konsumenten zu entkoppeln. Sie sind auch gut, wenn es um die Implementierung von Aggregationen am Endpunkt, um Rate-Limiting oder Authentifizierungen im gesamten System geht.

In jüngster Zeit bewegt sich die Branche hin zu Backend-für-Frontend-Architekturen, bei denen diese Gateways für jeden einzelnen Frontend-Nutzer - iOS-, Android-, Web- oder Desktop-Apps - eingesetzt werden, so dass ihre Entwicklung voneinander getrennt stattfindet.

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

Wie bei allem entwickeln Menschen auch hier neue, kreative Anwendungsfälle dafür. Manchmal ist es nur ein kleiner Hack, um die mobile Anwendung abwärtskompatibel zu machen. Plötzlich wird aber das "API-Gateway" zum SPOF - weil die Leute es einfacher finden, die Authentifizierung an einem einzigen Ort zu machen - und zusätzlich dazu bekommt es eine unbeabsichtigte Anwendungslogik.

Statt eines Monolithen, der den gesamten Datenverkehr bewältigt, haben Sie dafür jetzt einen selbstgebauten Spring-Boot-Service. Da kann doch eigentlich nichts schiefgehen ...

Entwickler erkennen zwar schnell, dass das ein Fehler ist. Da aber viele Anpassungen nötig sind, können sie diesen Teil manchmal nicht durch zustandslose, skalierbare Teile ersetzen.

Die größten API-Gateway-Probleme entstehen, wenn Endpunkte verwendet werden, die nicht paginiert sind oder massenhaft Rückmeldungen liefern. Oder wenn eine Aggregation ohne Fallback-Mechanismen verwendet wird und somit ein einziger API-Aufruf das Gateway zum Absturz bringen kann.

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 DiensteProblem Nr. 6: Timeouts, Wiederholungen und Ausfallsicherheit 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


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...



Aktuell auf der Startseite von Golem.de
Love, Death + Robots 3
Mal spannend, mal tragisch, mal gelungen, mal nicht so

Die abwechslungsreichste Science-Fiction-Serie unserer Zeit ist wieder da - mit acht neuen Folgen der von David Fincher produzierten Anthologie-Reihe.
Von Peter Osteried

Love, Death + Robots 3: Mal spannend, mal tragisch, mal gelungen, mal nicht so
Artikel
  1. Delfast Top 3.0: Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein
    Delfast Top 3.0
    Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein

    Ukrainische Infanteristen nutzen E-Motorräder, um leise und schnell zum Einsatz zu gelangen und die Panzerabwehrlenkwaffe NLAW zu transportieren.

  2. Github, Bill Gates, EEG-Umlage: Bill Gates hält nichts von Kryptogeld
    Github, Bill Gates, EEG-Umlage
    Bill Gates hält nichts von Kryptogeld

    Sonst noch was? Was am 20. Mai 2022 neben den großen Meldungen sonst noch passiert ist, in aller Kürze.

  3. Fernsehen: Mit Satelliten-TV, Kodi und Ethernet zur Videosammlung
    Fernsehen
    Mit Satelliten-TV, Kodi und Ethernet zur Videosammlung

    Satelliten-Fernsehen ist die beste Möglichkeit, sich eine private Film- und Seriendatenbank aufzubauen. Wir zeigen, welche Technik gebraucht und wie sie eingerichtet wird.
    Eine Anleitung von Mathias Küfner

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 • Borderlands 3 gratis • CW: Top-Rabatte auf PC-Komponenten • Inno3D RTX 3070 günstig wie nie: 614€ • Ryzen 9 5900X 398€ • Top-Laptops zu Tiefpreisen • Edifier Lautsprecher 129€ • Kingston SSD 2TB günstig wie nie: 129,90€ • Samsung Soundbar + Subwoofer günstig wie nie: 228,52€ [Werbung]
    •  /