Skalierbare, robuste Webanwendungen mit Elixir und Phoenix

Verteilte Applikationen sicher entwickeln und ohne Laufzeitfehler ausführen? Mit dem Webserver Phoenix sowie den Programmiersprachen Elixir und Elm geht das.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Skalierbare, robuste Webanwendungen mit Elixir und Phoenix
Lesezeit: 22 Min.
Von
  • Martin Grotz
Inhaltsverzeichnis

Auf den ersten Blick scheint die Erweiterung der bestehenden Architekturmuster um Microservices eine relativ neue Entwicklung zu sein. Doch verteilte Systeme werden in Bereichen wie der Telekommunikation schon seit Jahrzehnten ganz selbstverständlich genutzt. Dabei findet vor allem die Programmiersprache Erlang mit ihrer BEAM genannten Ausführungsumgebung und dem Framework OTP für den Betrieb verteilter Anwendungen Verwendung.

Auf Basis von Erlang entstand in den letzten Jahren eine funktionale Programmiersprache, die die Vorteile von Erlang mit einer modernen Syntax und einem zeitgemäßen Tooling einfacher zugänglich macht: Elixir.

In der Entwicklung von Web-Frontends setzen sich, angeschoben durch Angular und TypeScript, mehr und mehr statisch typisierte Sprachen durch. Architekturmuster zum einfacheren Verwalten des Zustands der Anwendung wie React Redux sorgen zusätzlich dafür, dass die zunehmend umfangreicher werdenden Webanwendungen trotzdem stabil und zuverlässig funktionieren.

Reichen die Sicherheiten von TypeScript und Redux nicht aus, bietet sich eine Programmiersprache wie Elm an, die ein starkes Typsystem mit einer unidirektionalen Datenarchitektur kombiniert. Elm erlaubt sicheres Entwickeln und eine Ausführung ohne Laufzeitfehler. Eine detaillierte Auseinandersetzung damit folgt in einem zweiten Beitrag.

Im Rahmen dieses Zweiteilers wird ein einfaches Ratespiel entwickelt: Der Spieler muss eine Zahl zwischen 1 und 100 erraten. Der erste Teil beschreibt die Entwicklung der Server-Anwendung mit Elixir und Phoenix. Dabei kommt das Aktor-Modell von Erlang zum Einsatz, um für jeden Spieler eine eigene Spiel-Session zu erzeugen und zu verwalten, die unabhängig von allen anderen ist.

Im zweiten Teil des Artikels folgt dann eine in Elm geschriebene Weboberfläche, die es Benutzern ermöglicht, ihre geratene Zahl über ein Formular einzugeben und das Ergebnis zu sehen.