Für moderne Web-Startups sind Standardkomponenten, die Trennung aller Software-Bestandteile und ein System von Redundanzen ein massgebliches Erfolgsgeheimnis.
Von Dorian Selz, Nektoon
Wie sich die Zeiten ändern: Gelegentlich tauche ich ab in die Erinnerungen an unsere ersten Webprojekte vor fünfzehn Jahren. In dieser längst vergangenen Ära enthielten E-Commerce-Anwendungen bisweilen SQL-Befehle, die gar in der Website selber eingebaut waren.
Es gab keine Trennung zwischen der Präsentationsschicht und der logischen Schicht einer Anwendung. Wenn man die zugrunde liegende Datenbanktabelle veränderte, musste man meist auch die Website selber, die Präsentationsebene, anpassen.
Eine derart durchmischte Architektur war nicht gerade eine knackige Sache – selbst damals nicht, als „SQL-injection“ ein unbekannter Begriff war.
Heute setzen wir auf ein gegenteiliges Konzept: Die „Shared Nothing Architecture“.
Die Grundidee liegt in verteilten Aufgaben ohne jegliche Vermischung der Anwendungsbestandteile. Jeder Knoten (eine Hard- oder Software-Komponente) ist selbständig und redundant verfügbar. Es gibt keinen Flaschenhals, der das System in die Knie zwingen könnte. Auf der andern Seite lässt sich das System fast endlos ausbauen („skalieren“) – wie Google bewiesen hat.
Um das zu bewerkstelligen, treten in unserem Fall drei Faktoren in den Vordergrund: Standard-Hardware, Http und representational state transfer (REST)
Um die Vorteile von kostengünstiger Standard-Hardware zu nutzen, haben wir die local.ch-Plattform in bekömmliche Einzelteile gestückelt.
So haben wir beispielsweise das local.ch-Frontend auf verschiedene Server verteilt (zwölf insgesamt bei der letzten Zählung), die in zwei Datencentern stehen. Die Server sind Standard-Dell-Pizzaschachteln. Wir haben nur diesen einen Typ Server installiert. Wenn einer ausfällt, ersetzen wir ihn mit einem andern. Wenn einer überlastet ist, haben wir mit einer Neukonfiguration sofort für bessere Lastverteilung gesorgt.
Das System wurde noch weit flexibler, als wir anfingen, Virtualisierung anzuwenden. All das und die Anwendung von Open-Source-Software haben dramatische Resultate gezeigt: Man muss nur sehr wenig Geld aufwerfen, um sofort grosse Veränderungen hinzukriegen. Niemand muss sich mit irgendwelchen Grosslieferanten herumschlagen, keiner hat lange Lieferzeiten komplexer Hardware zu erdulden.
Ein zweiter Bestandteil ist es, die Möglichkeiten von http voll auszuschöpfen. Das scheint offensichtlich, schliesslich werden alle Websites über dieses Protokoll aufgerufen. Genau so ist es – es handelt sich nur um ein Protokoll; das bietet aber eine Fülle von Mechanismen, welche Dinge wie Caching, Kompression, Verschlüsselung und Autorisierung direkt ermöglichen. Es ist einfach zu verstehen, robust und erprobt. Und: Es skaliert.
Das dritte Modul ist representational state transfer, eine Methode, um Web Services zu bauen. Dabei sprechen alle Bestandteile wie Frontend und Datenbank, die auf eigenen Instanzen laufen und individuell ansprechbar sind, über RESTful-Methoden miteinander. So lange diese Standards in der Kommunikation und Schnittstellen eingehalten werden, kann an jeder Ressource herumgebaut werden, ohne dass das System unterbrochen wird.
Es ist von grösster Bedeutung, dass diese Ressourcen und Dienste in den nach gesundem Menschenverstand bemessenen kleinsten und zielgerichtetsten Einheiten geschrieben und implementiert werden. Es wird zusätzlich wertvoll, wenn man die Services überall, also auf verschiedenen Maschinen, in verschiedenen Datacentern und Ländern einsetzen kann und sie weiterhin unbeirrt miteinander kooperieren.
Diese Architektur hat uns bei local.ch eine Uptime (Ausfallsicherheit) von mehr als 99.993% ermöglicht (genau – das sind weniger als 30 Minuten Downtime in einem Jahr, was einen externen Störfall oder eine göttliche Fügung erlaubt*).
Bei Nektoon tun wir das gleiche mit einem zusätzlichen Trick: Wir lagern die gesamte Hardware aus zu Amazon oder ähnlichen Cloud-Computing-Anbietern. Das Ziel ist eine flexible, zuverlässige und jederzeit blitzschnell ausbaubare Plattform vom ersten Moment an.
*) Eine solche göttliche Fügung gab es tatsächlich, in Form eines suizidalen Eichhörnchens. Der Zwischenfall liess die gesamte Stromversorgung in Zürich Nord am 24. August 2008 für mehrere Stunden ausfallen. Aber davon waren sehr viele Grossunternehmen inklusive des Schweizer Fernsehens betroffen.
[postlist „Startup-Bauanleitung“]