Lumen - Webentwicklung mit einem Microframework

28. November 2016

Veröffentlicht in:

Webentwicklung

Microservice-Architektur mit Lumen realisieren

Bei Lumen handelt es sich um ein sehr beliebtes und sehr schnelles Lightweight Framework, das vor allem für die Entwicklung von APIs eingesetzt wird. Anders als full-stack Programme, wie Lavarel, die dem Entwickler ein umfangreiches Komplettpaket für jeden Bedarf zur Verfügung stellen, handelt es sich bei Lumen um ein spezialisiertes, sogenanntes Microframework, das vor allem in einem bestimmten Entwicklungsbereich punktet.

Was ist ein Microframework?

Ein Microframework ist ein spezialisiertes PHP Framework, dessen Schwerpunkt vor allem auf Geschwindigkeit und Performance liegt. Das Gegenstück sind full-stack Programme, die dem Nutzer eine Vielzahl von Funktionen und Möglichkeiten bieten. Dieser Umfang hat jedoch einen Preis. Solche Programme sind deutlich langsamer als ein Microframework. Der Aufwand, um ein solches full-stack Framework komplett zu beherrschen, ist zudem meist deutlich höher, da sich der Entwickler auch mit der Vielzahl an Möglichkeiten und Funktionen auseinandersetzen muss. Auf der anderen Seite sind Microframeworks aber auf den bestimmten Funktionsbereich spezialisiert und für andere Funktionen nur bedingt einsetzbar. Wann immer also ein Entwickler sich mit wechselnden Entwicklungsumgebungen oder häufig ändernden Programmen auseinandersetzen muss, ist ein full-stack Framework meist die sinnvollere Option. Dennoch haben Microframeworks Ihre Daseinsberechtigung in ihrem Entwicklungsbereich und erfreuen sich einer großen Beliebtheit bei Entwicklern.

Webentwicklung mit einem Microframe - wo punktet das Leichtgewicht?

Schaut man sich die Softwarevoraussetzungen an, so lässt sich jedes Web-Projekt in einen der folgenden Typen einteilen:

  • Anwendungsentwicklung bei Null (Neue Anwendungen)
  • Rebuilding einer bereits existierenden Anwendung (oder Refactoring)
  • Überarbeitung einer vorhandenen Anwendung, etwa um den Funktionsumfang zu erweitern

Während Microframeworks sich im Prinzip für all diese Punkte problemlos einsetzen lassen, sieht die Realität hier etwas anders aus. Microframeworks wie Lumen werden nämlich vor allem für das Refactoring und Rewriting von vorhandenen Legacy Anwendungen verwendet. Für diese Entscheidung gibt es vier Hauptgründe:

  1. Die Anwendung ist so groß und umfangreich, dass die Entwickler unverhältnismäßig viel Zeit benötigen würde, um das gesamte Programm zu verstehen und zu analysieren. Aus diesem Grund können Organisations- und Projektplanungsprobleme entstehen.
  2. Die Anwendung besteht aus einer Vielzahl verschiedener Teile. Jedes Teil ist unabhängig von den anderen und hat völlig unterschiedliche Release- bzw. Updaterichtlinien. In einem solchen Fall kann ein Microframework wie Lumen mit dem hohen Maß an Flexibilität punkten.
  3. Es ist notwendig, verschiedene Teile der Anwendung dynamisch zu halten. Entwicklung und Veränderungen müssen häufig völlig unabhängig von weiteren Teilen der Software erreicht werden. Ein spezialisiertes Microframework, wie Lumen, ist hier perfekt. Es kann genutzt werden, um die notwendigen Anpassungen im betroffenen Bereich der Anwendung vorzunehmen, während die restlichen Komponenten völlig unberührt bleiben.
  4. Zu guter Letzt gibt es aber auch noch einen weiteren Grund. Verschiedene Anwendungsteile und -sektionen haben häufig hoch spezialisierte Anforderungen an die Technik. Das macht es notwendig, dass Entwickler eine spezifische Programmiersprache oder eben ein spezifisches Framework verwenden müssen, dass sich von dem was allgemein üblich und verfügbar ist, unterscheidet. Auch hier sind die hohe Spezialisierung und die Anpassungsmöglichkeiten von einem Microframework wichtige Vorteile.

Die Vorteile eine Microservice Architektur

Sicherheit und der Schutz vor Ausfällen ist hier der wichtigste Aspekt. Der „worst case“ in jedem Unternehmen ist, wenn ein Service ausfällt, der Betrieb still steht und es womöglich in Folge dessen zu Umsatzeinbußen kommt. Bei einem monolytischen System begegnet man der Ausfallmöglichkeit damit, dass die Dienste auf mehreren Servern oder Rechnern gespiegelt werden, um das Risiko solche Fehler zu vermindern. Fehler in einem modularen System, das auf Microservices fußt, können im betroffenen Bereich mit dem Einsatz eines Microframeworks punktuell behoben werden. Da es immer wieder zu Fehlern bei Services kommen kann, ist es umso wichtiger, das diese schnell entdeckt und beseitigt werden. Microservices legen hier den Schwerpunkt auf die Echtzeitüberwachung einer Anwendung. Sie checken dabei sowohl die Architektur der Applikation als auch die metrischen Daten und Auswertungen. Semantisches Monitoring kann dabei helfen, ein Frühwarnsystem für Probleme zu schaffen, sodass Entwickler frühzeitig nach Fehlern suchen und das Problem beheben können. Das ist auch einer der Gründe, warum große Webdienste, wie Amazon oder Netflix auf Microframeworks und Microservices vertrauen.

Ein weiterer Vorteil der Microservices ist die Skalierungsmöglichkeit. Kleine Änderungen an einem Teil einer Anwendung machen es bei großen monolytischen Anwendungen erforderlich, die gesamte Infrastruktur zu aktualisieren und neu zu skalieren. Microservices auf der anderen Seite lassen sich, wie oben bereits kurz erwähnt, auch völlig unabhängig von dem Rest der Anwendung anpassen oder skalieren. Das führt zu deutlich kleineren Entwicklungsteams und deutlich weniger Aufwand bei der Aktualisierung der einzelnen Komponenten. Darüber hinaus ist auch deutlich weniger Zusammenspiel und Koordination zwischen den Entwicklern erforderlich, da jeder zum größten Teil unabhängig von dem Rest an seinem Teil der Anwendung arbeiten kann.

Warum Lumen für die Entwicklung von Microservice Architekturen

Microservices müssen Daten in eine Datenbank schreiben und auch Daten aus dieser auslesen können. Microservices müssen gesichert werden und auf Basis des sogenannten message-driven approach aufbauen. Auch das Ziehen von Reports sollte problemlos möglich sein. Alles in allem sollen moderne Microservices diese Aufgaben außerdem so einfach wie möglich gestalten. Lumen ist besonders gut geeignet, Microservices zu bauen, da es viele Funktionen des großen Bruders Lavarel benutzt. Dazu gehören etwa Sicherheits-Features, die einfache Datenbank-Konfiguration (mySQL, Postgres, SQLite und SQL Server) sowie die Queue Service Konfiguration und die mühelose Integration von Tools zur Erstellung von Berichten, etc.

Häufige Beispiele für Microservices, fü die auch das Microframework Lumen zum Einsatz kommen kann, finden sich in Online Shops. Auf einem Online Shop gibt es einen Microservice, der die Produkt-Details der angebotenen Waren anzeigt, eine anderer Microservice zeigt Preis und Lagerbestand an und auch der Warenkorb ist von Interesse, wofür es einen weiteren Microservice gibt. Fällt nun der einzelne für deLagebestand verantwortliche Service aus, wird dies für viel Ärger und Wirbel sorgen. Aber alle anderen Element können immer noch angezeigt werden und das Lagerbestandsproblem kann ohne einen kompletten Betriebsausfall behoben werden.

Die beliebtesten mit Lumen entwickelten Open Source Microservices sind auf Github zu finden.

Sie haben Fragen zu Lumen? Sprechen Sie uns an! Bei mindtwo in Bonn beraten wir Sie gerne bei Ihrem Webprojekt.

Können wir weiterhelfen?

Sie haben ein spannendes Projekt und möchten mit uns zusammenarbeiten? Kontaktieren Sie uns jetzt!

Kostenloses Erstgespräch