thePHP.cc Logo English Kontakt
Microservices in der Mittagspause

Microservices in der Mittagspause

Sie sind ein Softwareentwickler und haben Mittagspause. Heute beschließen Sie, nicht mit dem Team zum Mittagessen zu gehen, weil Sie einkaufen müssen. Sie sind von einer besonderen Person für den nächsten Tag eingeladen worden und wollen ein nettes Geschenk mitbringen. Sie betreten Ihr Lieblingsgeschäft und finden eine nette Kleinigkeit, die das perfekte Geschenk für Ihren Gastgeber sein wird. Sie stellen sich an der Kasse an. Zum Glück stehen Sie bald an der Reihe.

Die Kassiererin sieht sich Ihr Geschenk an und bemerkt: „Oh, das ist wirklich sehr, sehr schön.“ Sie fährt fort: „Bitte warten Sie einen Moment“, und verschwindet. Nach ein paar Augenblicken ist sie wieder da und beginnt, eine Schublade zu durchsuchen, wobei sie murmelt: „Ich weiß, dass es hier ist, heute Montag, ich werde es jeden Moment finden ... ah, hier ist es“. Sie nimmt eine Preisliste aus der Schublade, dreht sich wieder zu Ihnen um, lächelt und beginnt dann, die Seiten durchzublättern, um den aktuellen Preis für Ihr Geschenk zu finden. Als sie ihn gefunden hat, lächelt sie wieder und fragt: „Möchten Sie noch etwas anderes?“

Sie lehnen ab, und sie geht wieder weg, mit einer kurzen Entschuldigung. Ein paar Minuten später ist sie mit einem Kollegen zurück, der immer noch an seinem Mittagessen kaut. Sie merken plötzlich, dass Sie sehr hungrig sind. Die Zeit wird knapp, um den Einkauf zu erledigen und noch etwas zu essen.

Der Herr fragt: „Möchten Sie noch etwas dazu kaufen? Wir haben mehrere Varianten.“ Wieder lehnen Sie ab. Die Kassiererin fängt an, den Preis für Ihr Geschenk in die Kasse zu tippen. Sie fragen nach der Garantie und bemerken Ihren Fehler, während Sie sprechen. Die Dame beginnt wieder zu gehen und sagt: „Lassen Sie mich das für Sie herausfinden“. Nach zwei Minuten kommt sie mit einer Antwort zurück.

Antwortzeit

Die Zeit ist jetzt ein wenig knapp, Sie müssen zurück an die Arbeit, plus Sie sind wirklich hungrig. Trotzdem müssen Sie ein Geschenk einpacken. „Einen Moment“, sagt die Kassiererin, und schon ist sie wieder weg. Diesmal dauert es ziemlich lange, aber schließlich kommt sie mit einem Bogen des schönsten Geschenkpapiers zurück, nur um dann wieder ihre Schubladen zu durchwühlen.

„Ich habe es ein bisschen eilig“, sagen Sie. Sie lächelt, während sie erklärt: „Nur eine Sekunde, ich muss das Klebeband finden ...“. Ziemlich frustriert verlassen Sie den Laden ohne das Geschenkpapier.

Wieder an Ihrem Arbeitsplatz angekommen, arbeiten Sie an der Ihnen zugewiesenen Aufgabe weiter. Ihre Firma baut einen Webshop auf, und Sie arbeiten gerade am Checkout. Ihre Kollegen arbeiten an einem RESTful-Service, der es ermöglicht, den Produktpreis in einem bestimmten Kontext abzurufen. Sie sind sich über die Details nicht im Klaren, aber von dem, was Sie gehört haben, muss er eine Menge Berechnungen durchführen, da die Preisregeln sehr komplex sind. Aber das geht Sie nichts an.

Heute Morgen haben Sie die Arbeit am REST-Client beendet, der mit einer Empfehlungsmaschine kommuniziert und verwandte Produkte abruft. Derzeit arbeiten Sie daran, relevante Produktinformationen aus dem Warenkorb-Service zu holen und an den Checkout-Service weiterzugeben. Glücklicherweise müssen Sie nicht zurück mit der A/B-Testing-Engine kommunizieren, da dies im Frontend geschieht.

Allerdings muss Ihre Software mit einem anderen Dienst kommunizieren, um die Produktverfügbarkeit zu reduzieren, sobald die Kunden den Checkout abgeschlossen haben. Dies sollte jedoch schnell gehen. Das einzige, worüber Sie sich ein wenig Sorgen machen, ist der Dienst, den das andere Team entwickelt. Er ist für das Verpacken digitaler Waren für die Auslieferung zuständig, ist angeblich sehr, sehr langsam und funktioniert in einigen Randfällen nicht einwandfrei.

Latenz tötet

Plötzlich erinnern Sie sich an Ihr persönliches Einkaufserlebnis von heute früh. Irgendetwas fühlte sich falsch an, als Sie in diesem Geschäft waren. So ein schlechtes Kundenerlebnis. Sie schütteln den Kopf und lesen sich weiter durch die API-Dokumentation des Warenkorb-Dienstes. Jeder in Ihrer Firma steht heutzutage auf Microservices, vorher drehte sich alles um SOA, wobei niemandem wirklich klar war, was das bedeutet. Aber jetzt scheint sich die Welt auf RESTful Microservices geeinigt zu haben, was alles sehr einfach macht. Sie greifen einfach auf alle Dienste zu, die Sie brauchen, und zwar über ein einziges, allgegenwärtiges Protokoll.

Sie denken wieder über Ihre Mittagspause nach. Sie fragen sich, ob Sie später auf Performance-Probleme stoßen könnten und erstellen ein Ticket mit der Bitte, die Einführung einer Caching-Schicht im nächsten Sprint zu diskutieren. An Ideen mangelt es Ihnen Gott sei Dank nie.

Irgendetwas fühlt sich immer noch falsch an.