Telekommunikationsausrüstung muss jahrelang ohne Unterbrechung laufen, selbst während Upgrades. 1986 begannen Joe Armstrong und Kollegen bei Ericsson, eine Sprache für diese Welt zu bauen: Erlang, mit leichtgewichtigen Prozessen, Message Passing und Hot-Code-Replacement statt gemeinsam genutztem Speicher und Threads.

Der Vorzeigebeweis war der AXD301 ATM-Switch, angekündigt 1998. Er betreibt verteiltes Erlang auf duplizierter Hardware, skaliert von 10 auf 160 Gbit/s und ist so ausgelegt, dass Hardware und Software ohne Unterbrechung des Verkehrs geändert werden können. Stand 2001 enthielt er 1,13 Millionen Zeilen Erlang in 2.248 Modulen und erreichte eine beobachtete Zuverlässigkeit von neun Neunen, 99,9999999 %.

Erlangs Let-it-crash-Philosophie, Supervisor-Bäume, die fehlgeschlagene Prozesse neu starten, war auch ein Produktivitätsgewinn: Die HOPL-Historie berichtet von einer vierfachen Steigerung der Entwicklerproduktivität im Projekt. Im selben Jahr, in dem der AXD301 auf den Markt kam, wurde Erlang für neue Ericsson-Produkte verboten; im Dezember 1998 wurde es stattdessen als Open Source veröffentlicht.

Kleine Prozesse abstürzen lassen; Supervisoren starten sie neu

Prozessisolierung verhindert, dass ein Fehler das System zum Absturz bringt

Supervisoren starten Fehler automatisch neu, ohne menschliches Eingreifen

Hot-Code-Upgrade beseitigt Ausfallzeiten als Einschränkung bei der Bereitstellung

Das Modell kleiner Prozesse eignet sich kostengünstig für Tausende gleichzeitiger Anrufe

Für Systeme, die niemals stoppen dürfen, kehrt man die Fehlerstrategie um: Fehler erwarten, sie in kleinen Prozessen isolieren und die Wiederherstellung automatisch machen, sodass das System darauf ausgelegt ist zu überleben, statt perfekt zu sein.

Die Open-Source-Veröffentlichung von Erlang 1998 verbreitete es weit über Ericsson hinaus: Dasselbe Modell betreibt heute RabbitMQ, Metas WhatsApp und Elixir/Discord-Systeme. Innerhalb von Ericsson wurde der AXD301 eines der erfolgreichsten neuen Produkte des Unternehmens, und die Dissertation dokumentierte ihn als eines der zuverlässigsten Produkte, die Ericsson je hergestellt hat.

DEN BELEGEN FOLGEN

Die Quellen

  1. Making Reliable Distributed Systems in the Presence of Software Errors (PhD thesis) Royal Institute of Technology, via erlang.org · erlang.org
  2. A History of Erlang (HOPL III) ACM SIGPLAN, mirror at labouseur.com · labouseur.com
  3. A (Very) Brief History of Erlang Vonage Developer Blog · developer.vonage.com ·