Suche
Beitrag von Eric Horesnyi

Was uns die Pariser Geschichte über Netzwerk-basierte Architekturen lehren kann

Eric Horesnyi

(c) Shutterstock / krivinis

Vergleiche zwischen Software- und Gebäude-Architektur sind nicht neu, gleichwohl reichen einfache Gebäude als Analogie zu neuen, komplexen Technologien kaum noch aus. Und so hat sich Eric Horesnyi, Speaker auf der JAX London, auf die architektonische Stadtgeschichte von Paris eingelassen, um in einer erstaunlichen Linie von Haussmann (Skalierbarkeit), über Fielding (REST) bis zu Martin Fowler (Microservices) die Ähnlichkeit der geplanten Stadt mit leistungsstarken Systemarchitekturen von heute zu aufzuzeigen…

Als Entwickler oder Architekt müssen wir unserere Konzepte für Netzwerk- oder Systemarchitekturen häufig sogenannten „Entscheidungsträgern“ unterbreiten. Ich zum Beispiel verwende seit zwanzig Jahren gerne die „Smart City“-Analogie. Zum Anlass des 25. Geburtstages des Webs schlage ich vor, eine tiefschürfende Analogie zwischen einer geplanten Stadt – Paris – und dem Web aufzuzeigen.

Fieldings These folgend werden wir Paris und das Web anhand der Stichwörter Einschränkungen, ererbte Features und mögliche Architekturstile betrachten und schließlich beurteilen, ob die Wahl der letzteren den Zielen angemessen ist. Dabei konzentriere ich mich auf eine der großen Pariser Transformationsperioden, die zwischen 1853 und 1869 unter dem Stadtplaner Georges-Eugène Haussmann stattfand und versuche, sie auf große Informationssysteme zu übertragen, die einen Microservice-Stil à la Fowler und Newman verfolgen.

Es folgen die ersten beiden Episoden aus insgesamt sieben, die während meiner Session auf der kommenden JAX London behandelt werden. Unser Publikum besteht, dem Thema entsprechend, entweder aus Softwareexperten, die an Stadtarchitektur als Illustration der Schöhneit von HTTP Rest und Continuous Delivery interessiert sind, sowie all denjenigen, die den Erfolg des Webs verstehen und sich mit seinen Schlüsselkonzepten vertraut machen wollen.

Wer war Haussmann, und was war seine Herausforderung?

Georges-Eugène Haussmann war ein Staatsbeamter, der 1853 von Napoleon III. dazu auserkoren worden war, die Modernisierung von Paris voranzutreiben. Seine Herrschaft über das architektonische Gesicht von Paris sollte insgesamt 16 Jahre währen. Als er seine Funktion als Stadtplaner antrat, war die UX von Paris geradewegs furchtbar, im Play- oder Apple Store vermutlich nicht mehr als einen Stern wert: Eine hohe Dropout-Rate (alle fünf Jahre eine Cholera-Epidemie mit jeweils rund 10.000 Toten), die Server (Häuser) waren restlos überfüllt (bis zu 1 Person pro Quadratmeter – am Beispiel der US wären das 100 Personen pro Reihenhaus-Stockwerk) und die Rechenzentren arbeiteten nur von Zeit zu Zeit: Kein Strom (Gas, Wasser), keine Kühlung (Abwassersystem), kein Cache (Keller), kein Proxy (Concierge), kein Streaming (U-Bahn) … ein UX-Albtraum!

Und draußen sah es noch schlimmer aus: Beherrscht von Cyberkriminalität (dürfte klar sein) in verwinkelten Gassen, geprägt von langsamen Anschlussleitungen (Straßen) und nichtexistenten Backbones (keine Unterführungen), kein geteiltes Protokoll für die Traffic-Abfrage (keine Gehwege) oder das Streaming (U-Bahn), keine Garbage Collection (und wieder: dürfte klar sein).

Schlimmer noch: Wenn ein User von einer Seite zur nächsten wechseln wollte, war das TLP aufgrund der überlasteten, un-protokolliert Leitungen schlicht furchtbar. Und da es keine kontinuierliche Auslieferung von Patches an die Server gab, kam er mit einem Virus nach Hause (Mangelnde Luftzirkulation und fehlender Sonnenschein in den schmalen, von zu hohen Häusern verdeckten Straßen).

Um dem ganzen die Krone aufzusetzen, wurde der Service in regelmäßigen Abständen unterbrochen und von Grund auf überarbeitet (die Revolutionen von 1789 und 1815, die Julirevolution von 1830 und die Februarrevolution von 1848), und das gänzlich ohne Rücksicht auf die Abwärtskompatibilität. Obwohl die User auf lange Sicht von diesen Änderungen profitierten, konnten sie der langen Anpassungszeit an das neue UI nicht viel abgewinnen – ganz abgesehen von dem nichtexistenten Service Desk (Wahlrecht für Frauen und Arme). Nun, so wie sich die Anschlussleitungen gestalteten, war es sehr leicht, DDOS-Attacken durchzuführen (Barrikaden), ein Feature, dass den Geschäftsleuten gar nicht gefiel (Napoleon III.)

Einige der Stilelemente, die Haussmann schließlich wählte, wurden ihm von Napoleon III., dem Neffen Napoleon Bonapartes, aufgezwungen. Meine Absicht ist an dieser Stelle ganz sicher nicht, einen Entschuldigungsbrief für Napoleon auszustellen, schließlich hat er mehr als ein Jahrzehnt des Krieges über Europa gebracht. Doch ein Gutes hatte diese Ära: Den Code Civil, eines der bedeutendsten Gesetzeswerke der Neuzeit. Er war ein Ergebnisse heftiger Debatten während der französischen Revolution und hatte ähnlich gravierende Auswirkungen wie das ursprüngliche Paper von CERN über HTTP von 1990. Der Code Civil regelt das Leben der Bürger auf ähnliche Weise, wie HTTP als Protokoll den Austausch über das Web.

Ein fundamentales Prinip des Code Civil ist die Trennung von Verantwortlichkeiten/Belangen  (Separation of Concern): Er definiert, was ein Bürger (Client) ist und trennt seine Interessen und Interaktionen von Unternehmen, Vereinigungen und dem Staat (Server .com, .org, .gov). Jede Vermischung der Interessen ist rechtswidrig (Missbrauch sozialer Vermögenswerte), genauso wie HTTP vom Design her Client Server und zustandslos ist. Das heißt außerdem, dass ein Server keine zwei Clients unterschiedlich (Gleichheit), oder zwei Server ungleich behandeln darf (was eine Verbindung zu der aktuellen Diskussion über Netzneutralität darstellt):

  • Client-Server: Das grundlegendste Konzept, das eine Netzwerk-basierte Architektur erlaubt: Das System ist als eine Reihe von Services zu verstehen, die den Clients (Bürgern) von Servern (Geschäfe, öffentliche Infrastrukturdienstleistungen, Vereinigungen) bereitgestellt werden. Sobald Rollen und mögliche Interaktionen definiert sind, kann sich jeder unabhängig entwickeln: Ein Bürger kann sich vom Schüler zum Ladenbesitzer entwickeln, eine Salat- zur Saftbar. Mieter sind nicht dazu gezwungen, ihr Fleisch in dem Laden zu kaufen, der sich im selben Gebäude befindet und ein Ladeninhaber kann jeden Preis verlangen, der ihm gefällt. Dieses Prinzip der Trennung von Verantworlichkeiten lässt Bürgern die Freiheit der Wahl und schafft Raum für Unternehmergeist (die Möglichkeit, zu Erschaffen und zu Investieren), der wiederum Bürger mit Waren, Dienstleistungen und sozialen Bindungen (über Verbände, kulturelle Einrichtungen etc.) versorgt.
  • Zustandslosigkeit: kein Session-Status, der Request vom Client zum Server muss alle notwendigen Informationen enthalten, damit dieser prozessiert. Wer auch immer der Bürger ist, der Server muss ihn bedienen, ohne mehr über ihn zu wissen als über andere Bürger. Eine Mischung der Gattungen zwischen Client und Server ist nicht erlaubt: Alle Bürger werden als Gleiche behandelt und müssen für denselben Request auf die gleiche Art und Weise bedient werden. Die Bürger können nicht nur einem einzelnen Dienst verhaftet bleiben, wenn Dienste Abhängigkeiten erzeugen oder lokale Monopole über den Diensten entstehen. Diese Trennung der Zuständigkeiten zwischen dem einen Gebäude und dem anderen und zwischen einer Person und einem Unternehmen ist (für gewöhnlich) auch noch heute eine Grundfeste des zivilen Lebens.

Das DNS-Schema von Paris

Ein weiteres Feature, dass Haussmann in seine Überlegungen einbeziehen musste, war das 1805 definierte Adressierungsschema von Paris, ähnlich dem DNS-Schema, das für HTTP-Anfragen genutzt wird:

  • Der Haupt-Backbone, die Seine, legt den Beginn jeder Straße (unser Root) fest.
  • Jede Vereinigung (.org) und staatliche Organisation (.gov) sowie jedes Unternehmen (.com) können das Schema in ihrer eigenen Domain definieren.

In dem Bestreben, auf dem Code Civil/HTTP aufzubauen, verlangte es das Ego Napoleons III., dass seine Hauptstadt mindestens so zivilisiert wie London oder das aufstrebende New York City zu sein hatte.

Im Hinblick auf die Performance musste seine Netzwerk-basierte Architektur folgendes leisten:

  • Netzwerk-Performance (Straßen): Durchsatz (schnelle Fußgänger und Kutschen), kleiner Overhead (Menschen können die Straßen entlangspazieren, ohne dass sie ein Polizist beschützen muss), Bandbreite (breite Straßen).
  • Vom User wahrgenommenen Leistung: Latenz (die Fähigkeit, das Erdgeschoss eines Gebäudes schnell zu erreichen) und Fertigstellung (seine Geschäfte/Besorgungen erledigen)
  • Netzwerkeffizienz: Der effizienteste Weg besteht darin, die Straße so wenig wie möglich zu benutzen. Beispiele sind die Heimarbeit (Differenzdaten) sowie News- und Musikkioske, die dafür sorgen, dass man zum Musikhören nicht extra in die Oper gehen bzw. dem Hauptsitz von Le Monde (Cache) einen Besuch abstatten muss.

Genau wie Fielding wählte er seinen Architekturstil anhand folgender Metriken:

  1. Skalierbar: Paris sollte weiter wachsen dürfen.
  2. Einfach: Bürger, Staatsbeate und Besucher müssen auch ohne Handbuch verstehen, wie die Stadt funktioniertcitizens.
  3. Modifizierbar: Die Fähigkeit, sich durch Wandel in der Zukunft weiterzuentwickeln
  4. Erweiterbar: Neue Viertel hinzufügen, ohne das System zu beeinträchtigen.
  5. Individualisierbar: Ein Gebäude spezialisieren, ohne dass dies Auswirkungen auf die anderen hat.
  6. Konfigurierbar: Die Möglichkeit, ein Gebäude (Komponente) nach der Konstruktion (Post-Deployment) leicht zu modifizieren.
  7. Wiederverwendbar: Ein Gebäude, dass heute der Sitz eines Wirtschaftsprüfers ist, kann schon morgen einen Milchladen beherbergen.
  8. Sichtbar: Um höchstmögliche Sicherheit und Überprüfbarkeit des Systems zu gewährleisten, müssen die Interaktionen zwischen den Komponenten sichtbar sein (die Leute auf der Straße müssen sich sehen können).
  9. Portierbar: Der Stil sollte auch in anderen Regionen, mit anderen Materialien und Wettergegebenheiten gut funktionieren.
  10. Zuverlässig: Unempfänglich für Fehler (kein Einzelereignis kann für eine Unterbrechung der Gas- und Wasserversorgung der Bürger sorgen).

Sieht man sich die Herausforderungen an, die Haussmann mit seinem Architektur-Stil bewältigen wollte, erkennt man eine Gewichtung der nötigen Eigenschaften nach seinen eigenen Evaluationskriterien: Die Hauptziele scheinen die folgenden zu sein:

  • Niedrige Einstiegsbarriere: eine niedrige Einstiegsbarriere sollte dabei helfen, die moderne Gemeinschaft zu erschaffen, die sich Haussmann wünschte. Auf lange Sicht sollte Paris aber auch für stilistischen Wandel und die Übernahme neuer Technologien bereit sein.
  • Erweiterbarkeit: die Bürger sollten nicht dazu gezwungen sein, in Paris zu leben und Haussmann wollte ihnen die bestmögliche UX bieten, um die Aufnahmefähigkeit zu steigern. Ein Bürger sollte dazu in der Lage sein, einfach eine Adresse zu finden und einen Builder, um neue Referenzen zu veröffentlichen und um auch sehr schnell ein initiales System bauen zu können.
  • Verteilte Hypermedia: Paris sollte den Bürgern eine Reihe an Erlebnissen anbieten, angefangen bei der Musik (Opernhäuser und Kiosk), Filme (damals Theater), eCommerce (Lebensmittel von les Halles) und Gesundheits- und Erholungseinrichtungen (Parks). All diese Erlebnismöglichkeiten waren reich an Inhalten und sollten viele weitere Bürger anziehen, so viele, dass sie über die ganze Stadt verteilt werden mussten.
  • Anarchische Skalierbarkeit: Würde die erste Reihe neuer Nachbarschaften erst einmal errichtet sein, könne die Stadt in die eine oder in die andere Richtung wachsen und das das in einer sehr großen Skalierung, ohne dass eine zentralisierte Kontrolle nötig wäre, um die Integrität des gesamten Systems sicherzustellen (Anarchie). Das erforderte eine eigene Authentication für jedes Gebäude und die Fähigkeit, den hereinströmenden Traffic mit einer Firewall (Doppelte Türen oder ein Concierge) zu inspizieren
  • Unabhängiges Deployment: Jeder Server (Gebäude) und jede Anwendung (Nachbarschaft) sollte unabhängig von den anderen deployed werden, ohne das System zu beeinträchtigen. Legacy-Systeme (ältere Nachbarschaften, die sich nicht ändern konnten, oder wie z.B. Notre Dame de Paris nicht ändern sollten) mussten auf einfache Weise eingekapselt werden, um als Teil des gesamten Systems mit diesem zu interagieren.

Aufmacherbild: PARIS, FRANCE – 29 NOVEMBER, 2014: Aerial view of Paris (France) von Shutterstock
Urheberrecht: krivinis

 

Verwandte Themen:

Geschrieben von
Eric Horesnyi
Eric Horesnyi
Eric Horesnyi war Gründungsmitglied bei Internet Way (ein französisches B2B, verkauft an UUnet) und Radianz (ein globales Finanzinstitut, das von BT übernommen wurde). Er ist ein Experte für Hochfrequenz-Trading-Infrastrukturen und hat für Fintech und Cleantech eine Leidenschaft entwickelt. Eric sucht nach 3 bozons und hat in San Francisco, New York City und in Mexiko gelebt. Nun wohnt er in Paris. Er twittert unter @EricHoresnyi
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: