Zum Hauptinhalt springen Skip to page footer

Microservices | State-of-the-Art Web-Applikationen

Die eierlegende Woll-Milch-Sau war gestern

Das Grundproblem von Web-Applikationen aus «alten Zeiten» ist in Sam Newmans Worten (siehe Zitat) wunderbar zusammengefasst: Kann ein Teil geändert werden, ohne einen anderen Teil zu beeinflussen? Um zu verstehen, woher diese Problem überhaupt kommt, lohnt sich eine kleine Zeitreise durch die Kunst der Web-Applikations-Entwicklung.  

Stell dir eine Web-Applikation vor wie ein Restaurant. Du bist der Kunde (engl. Client) und bestellst ein Schnitzel mit Pommes Frites und Gemüse. Hinter der Theke ist die Küche und der Service, die das Essen zubereiten, anrichten und zu dir an den Tisch bringen.

Analogie Restaurant Fachbegriff Web-Applikation
Kunde Client (Browser)
Bestellung Request
Küche/Bar Server
Teller Web-Page
Schnitzel, Pommes, Gemüse Content (Texte, Bilder, Videos, etc.)

Die Aufgaben des Clients und jene des Servers als das WWW laufen lernte

Ganz zu Beginn des World Wide Web (WWW) konnte ein Dokument nur Text anzeigen. Erst 1993 kam die Möglichkeit dazu, Bilder zu verwenden.

Die Aufgabe eines Servers bestand also (vereinfacht gesprochen) darin, HTML-Dokumente und Bilder zur Verfügung zu stellen. Die Aufgabe des Clients bestand darin, diese anzufragen und anzuschauen.

Server-Side-Programming als Evolutionsschritt zur Jahrtausendwende

Etwa um die Jahrtausendwende erlebte das Client-Server-Prinzip einen Evolutions-Schub: das Programmieren aus Serverseite wurde populär. 

Server-Rechner waren anno dazumal um ein vielfaches leistungsstärker (und teurer) als Client-Rechner. Es lohnte sich also, rechenintensive Logik dem Server zu überlassen und dem Client weiterhin das blosse Anzeigen der Ergebnisse.

Eines der beliebtesten Aufgaben für einen Server wurde das Schreiben in und lesen aus Datenbanken – dynamische Web-Pages und das Content Management waren geboren.

Hier ein vereinfachter Ablauf:

  1. Der Client stellt eine Anfrage (Request) | du bestellst das das Menü 1 aber mit Pommes statt Reis
  2. Die Logik schaut in der Datenbank nach | der Koch schickt die Aushilfe, um die Pommes aus dem Kühlraum zu holen
  3. Die Datenbank antwortet | die Aushilfe bringt aus dem Kühlraum die Pommes
  4. Die Logik verarbeitet die Daten und stellt die Seite zusammen | Der Koch bereitet das Menü 1 mit Pommes zu
  5. Die Seite wird ausgeliefert | du bekommst den Menü 1 mit Pommes 

AJAX: ein wichtiger Zwischenschritt

OK, was wenn du als Kunde im Restaurant noch etwas mehr Pommes möchtest?

Mit den Konzepten oben, müsste jetzt alles(!) noch einmal den ganzen Weg beschreiten und man würde dir einen ganz neuen(!) Teller mit Pommes bringen. Viel effizienter wäre es doch, wenn der Koch dir direkt aus der Küche ein paar Pommes auf den Teller werfen würde. 

🍟=>🍽️

Dieses Programmier-Konzept für Web-Applikationen kam etwa 2005 auf, nennt sich wie ein Fussbalverein und ein Reinigungsmittel «AJAX» und ist heute nicht mehr aus dem WWW wegzudenken. 

Last but not least: Microservices

Mit dem oben gesammelten Vorwissen, sind Microservices nun eigentlich ganz einfach zu verstehen:

Dein Teller füllt sich immer wieder mit den Speisen, auf die du grad Lust hast, weil die Küche nicht mehr einzelne Teller-Menüs zubereitet, sondern alles wie auf eine Art Buffet ständig zur Verfügung steht. 

Jeder Micorservice hat seine eigene Logik, seinen eigenen Zugriff auf die Datenbank(en) und kann einzeln vom Client angesprochen werden.

So lässt sich der Anspruch von Sam Newman umsetzen: making a change to a service [...] without changing anything else.

Das sagen wir nur noch: Guten Appetit! ;-)

Microservices sind ...

  • nachhaltig

  • leichtgewichtig

  • flexibel

«The golden rule: can you make a change to a service and deploy it by itself without changing anything else?»

Sam Newman, Autor und IT-Consultant