Was ist das Lumen Framework?
Um eine Webanwendung zu erstellen, ist es in der Regel nicht sinnvoll, diese von Grund auf selbst zu entwickeln. Zum einen wären dafür sehr umfassende Kenntnisse notwendig. Zum anderen wäre der zeitliche Aufwand hierfür sehr hoch, sodass dies kaum rentabel wäre. Aus diesem Grund kommen hierfür häufig Frameworks zum Einsatz.
Diese enthalten bereits alle wesentlichen Funktionen für die entsprechende Aufgabe. Dann ist es nur noch notwendig, diese zusammenzufügen und an die individuellen Anforderungen anzupassen.
Im Bereich der Web-Frameworks besteht jedoch eine sehr große Auswahl. Deshalb ist es wichtig, ein passendes Paket auszuwählen. Eine Möglichkeit hierfür ist Lumen. Dabei handelt es sich um eine relativ neue Lösung – die Veröffentlichung fand erst 2015 statt.
Eine weitere Besonderheit besteht darin, dass für die Gestaltung der gleiche Entwickler verantwortlich wie beim Web-Framework Laravel. Das lässt bereits darauf schließen, dass es dabei einige Gemeinsamkeiten gibt. Dieser Artikel stellt vor, was Lumen ist, welche Besonderheiten es aufweist und welche Abgrenzung zu Laravel besteht.
Webanwendungen per Microservice bereitstellen
Die groben Eigenschaften von Lumen haben wir bereits in der Einleitung skizziert: Dabei handelt es sich um ein Framework für die Entwicklung von Webanwendungen, das von der gleichen Person entworfen wurde wie das deutlich bekanntere Framework Laravel. Hinzu kommen jedoch noch einige weitere wichtige Eigenschaften. Von großer Bedeutung ist beispielsweise, dass es sich dabei um ein Framework handelt, das auf Microservices basiert. Diese Technik ist in diesem Bereich bisher nicht allzu weit verbreitet. Deshalb ist es sehr wichtig, genauer darauf einzugehen, was Microservices eigentlich sind und welche Vor- und Nachteile diese bieten.
Was ist ein Microservice?
Über viele Jahrzehnte hinweg handelte es sich bei Computerprogrammen fast immer um monolithische Programme. Das bedeutet, dass diese aus einer geschlossenen Einheit bestehen, die nur als Ganzes funktionsfähig ist. Seit einigen Jahren werden jedoch Microservices immer beliebter. Das bedeutet, dass ein Programm aus vielen einzelnen Bestandteilen besteht, die unabhängig voneinander sind und die auch alleine funktionieren. Ein Programm kann dann auf verschiedene solche Dienste zugreifen. Diese erledigen ihre Aufgabe vollkommen unabhängig und übermitteln lediglich das Ergebnis. Der Zusammenhang ist dabei nur lose. Es ist beispielsweise möglich, dass unterschiedliche Anwendungen auf die gleichen Microservices zugreifen.
Kommunikation über API
Bei der Verwendung von Microservices ist es sehr wichtig, auf eine geeignete Form der Kommunikation zu achten. Hierfür kommen sogenannte APIs zum Einsatz. Diese Abkürzung steht für Application Programming Interface – auf Deutsch Programmierschnittstelle. Jeder Microservice muss eine entsprechende API bereitstellen. Die eigentliche Anwendung kann auf diese dann zugreifen und eine entsprechende Anfrage stellen. Falls notwendig, findet eine Authentifizierung dieser Anfrage statt. Ist diese erfolgreich, erledigt der Microservice seine Aufgabe und sendet das Ergebnis an die Anwendung zurück. Diese kann es daraufhin verwenden. Damit das System funktioniert, ist es wichtig, passende Datenformate auszuwählen. Außerdem ist eine detaillierte Dokumentation notwendig, damit die Entwickler, die auf den Microservice zugreifen, genau wissen, welche Informationen sie von diesem erhalten.
Welche Vorteile bietet die Verwendung von Microservices?
Wenn es um die Entscheidung geht, ob Sie Lumen für Ihre Webanwendung verwenden, spielt es eine wichtige Rolle, ob Sie ein monolithisches Programm oder Microservices nutzen möchten. Deshalb ist es sehr wichtig, sich intensiv damit auseinanderzusetzen, welche Vorteile die Verwendung von Microservices bietet und in welchen Fällen diese Technik sinnvoll ist.
Ein großer Vorteil besteht in der hohen Flexibilität dieser Systeme. Bei Bedarf lassen sich ganz einfach neue Funktionen durch einen passenden Microservice hinzufügen, ohne dass dabei Anpassungen an den übrigen Diensten notwendig sind. Daher lassen sich Erweiterungen deutlich einfacher umsetzen als bei monolithischen Programmen. Auch die Skalierbarkeit der Systeme ist hoch, da es kein Problem darstellt, weitere Dienste hinzuzufügen. Während der Entwicklungsphase ist es zudem vorteilhaft, dass sich die grundlegenden Funktionen bereits nach kurzer Zeit verwenden lassen. Die etwas weniger wichtigen Funktionen können Sie dann hinzufügen, während Sie das Programm bereits nutzen. Auch Wartungsmaßnahmen lassen sich einfach umsetzen, da es möglich ist, diese für jeden einzelnen Dienst separat vorzunehmen.
Microservices zeichnen sich auch durch die Möglichkeit aus, die Gesamtanwendung durch viele unabhängige Teams entwickeln zu lassen. Dabei ist es nur notwendig, vorzugeben, welche Aufgaben jeder einzelne Dienst erledigen muss. Anschließend kann ein Team diesen ganz unabhängig entwickeln. Es ist sogar möglich, für die einzelnen Dienste verschiedene Programmiersprachen zu verwenden. Das führt nicht nur zu einer hohen Flexibilität bei der Gestaltung. Darüber hinaus lässt sich für jeden Dienst eine Technik auswählen, die sich perfekt für die jeweilige Aufgabe eignet. Außerdem können Sie bei Erweiterungen stets eine aktuelle Technik verwenden – selbst wenn die übrigen Dienste noch mit älteren Technologien arbeiten. So ist eine schrittweise Modernisierung möglich.
Schließlich profitieren Sie normalerweise von einer hohen Ausführungsgeschwindigkeit. Die Verwendung kleiner unabhängiger Dienste führt dazu, dass der Rechenaufwand für die Erledigung der entsprechenden Aufgaben normalerweise deutlich geringer ist als bei der Verwendung einer großen monolithischen Anwendung. Daher ist die Verwendung von Microservices auch dann empfehlenswert, wenn Sie Wert auf eine effiziente Ausführung legen.
Lumen und Laravel
Wir haben bereits gesagt, dass Lumen eine große Gemeinsamkeit zum bekannten Webframework Laravel aufweist: Beide Techniken wurden von der gleichen Person – Taylor Otwell – entwickelt. Daher liegt der Verdacht nahe, dass es dabei auch einige Gemeinsamkeiten gibt. Das ist tatsächlich der Fall und bei vielen Projekten bietet es sich sogar an, beide Techniken gemeinsam zu verwenden.
Kompatibilität zu Laravel
Es wurde bereits gesagt, dass Microservices kleine unabhängige Dienste bereitstellen. Genau für diese Aufgabe ist Lumen vorgesehen. Bei diesen Diensten handelt es sich um Backend-Anwendungen. Frontend-Anwendungen, die auf diese Dienste zugreifen, lassen sich mit Lumen hingegen nicht erstellen. Dafür können Sie verschiedene andere Sprachen und Frameworks verwenden. Eine sehr beliebte Lösung stellt es dar, hierfür Laravel einzusetzen. Diese beiden Frameworks sind perfekt aufeinander abgestimmt, sodass sich damit auf einfache Weise sehr effiziente Anwendungen erstellen lassen.
Außerdem bestehen dabei große syntaktische Ähnlichkeiten. Ein Entwickler-Team, das Laravel beherrscht, kann mit einer relativ kurzen Einarbeitung auch Microservices mit Lumen erstellen. Darüber hinaus ist es möglich, Lumen-Anwendungen bei Bedarf auf Laravel umzustellen.
Einfache und effiziente Entwicklung
Ein weiterer Vorteil, den dieses Framework bietet, besteht in der sehr einfachen Entwicklung. Die Lernkurve ist hierbei sehr steil. So können sich Entwickler unterschiedlicher Fachrichtungen schnell einarbeiten. Auch die Entwicklungszeit ist normalerweise sehr gering. Hierbei stehen vielfältige Funktionen bereit, sodass es nicht notwendig ist, diese selbst zu entwickeln. Das reduziert den Aufwand für das Erstellen der Anwendungen deutlich.
Fazit: Die Verwendung von Lumen sorgt für eine hohe Ausführungsgeschwindigkeit
Das Framework Lumen stellt eine interessante Alternative zu den bisherigen Möglichkeiten für die Webentwicklung dar. Besonders interessant ist hierbei die Nutzung von Microservices, die bei den meisten anderen Techniken nicht möglich ist. Das führt zu einer hervorragenden Flexibilität bei der Entwicklung und zu ausgezeichneten Wartungs- und Erweiterungsmöglichkeiten. Hinzu kommt eine sehr hohe Ausführungsgeschwindigkeit. Wenn Sie Wert auf diese Aspekte legen, stellt dieses Framework daher eine ausgezeichnete Wahl für Ihre Projekte dar.
Interessante Artikel:
Die Informationen zum Framework auf Github
Sascha Thattil ist Geschäftsführer bei YUHIRO. YUHIRO unterstützt Agenturen, IT Dienstleister und IT Abteilungen bei dem Aufbau von Webentwickler/ Laravel Entwickler Teams in Indien.
Schreibe einen Kommentar