appserver.io – es geht massiv vorwärts!

Seit mehr als zwei Jahren entwickeln wir mit appserver.io eine Open Source Infrastruktur-lösung für PHP die sich inzwischen wachsender Beliebtheit erfreut und mittlerweile sehr erfolgreich in unterschiedlichsten, zum Teil recht komplexen und umfangreichen Webprojekten zum Einsatz kommt.

Gerade in letzter Zeit werden wir immer häufiger gefragt, was es mit appserver.io auf sich hat, welche Beweggründe hinter dem Projekt stehen und welche Ziele wir damit verfolgen. Hier möchten wir versuchen, nochmals etwas Licht ins dunkel zu bringen:


Open Source

Mit TechDivision haben wir sehr früh die Vorteile von Open Source Software kennen und schätzen gelernt. Aus unserer Sicht lässt sich nur durch einen solch quelloffenen Ansatz ein für die heutige Dynamik passendes Momentum innerhalb der Entwicklung/Weiterentwicklung von Software erzielen. Hierzu gibt es auch diverse aktuelle Beispiele von Softwaretools, die nur durch den Open Source Ansatz zu einem solchen Erfolg gelangt sind. Hier sei exemplarisch die Shopsoftware Magento erwähnt, die es innerhalb von 8 Jahren zur führenden eCommerce-Plattform mit einem Marktanteil von rund 30% geschafft hat und inzwischen auch zu „echten“ Enterprise-Systemen aufgeschlossen hat. Diese Entwicklung war und ist nur durch eine große Community und Entwicklergemeinde und deren Mitarbeit möglich welche wiederum nur durch Offenheit adressiert werden kann.

Bei der Entwicklung von appserver.io war daher für uns von Beginn an klar, dass die Software nur als Open Source Tool entwickelt und weiterentwickelt werden kann.

Mit TechDivision als einem sehr erfahrenen, gesunden und unabhängigen Web-Technologieanbieter im Hintergrund vereint appserver.io die Vorzüge aus der Open- und der Closed Source Welt.

  • Keine Lizenzgebühren
  • Nutzerfreundlichkeit
  • Hohe Investionssicherheit dank kontinuierlicher Weiterentwicklung
  • Unabhängig von Dienstleistern
  • Kontrollierbarer Code
  • Sicherheit durch „Hersteller“ im Hintergrund
  • Standardisierte Entwicklung
  • Unabhängigkeit von Hardware
  • Effiziente Nutzung von Resourcen
  • Schnelle Fehlerbehebung

Da grundsätzlich keine Lizenzgebühren anfallen, entstehen lediglich Kosten für die Umsetzung. Gleichzeitig kann aber über den Hersteller, sofern Bedarf besteht, auch kostenpflichtiger Support sowie Consultingleistung eingekauft werden.

 

Alles aus einer Hand

appserver.io stellt als Infrastruktur- und Entwicklungsframework die für die Implementierung des Backends notwendigen Services einschließlich einer Middleware Lösung Out-of-the-Box zur Verfügung. Es wird keine zusätzliche Software benötigt.

Folgende Services stellen die Basis für die Realisierung des Backend’s dar.

  • Servlet-Engine als Basis für den RESTFul Webservice
  • Message-Queue für Datenimport

Durch den Einsatz bestehender Services, kann eine schnelle Time-To-Market gewährleistet werden, da die Orchestrierung einer komplexen Systemlandschaft wegfällt und ausschließlich die Entwicklung der Business Logik fokussiert werden kann.

 

Optimiertes Framework

Der modulare Aufbau von appserver.io und die Verwendung offenere Standards wie

  • XML für die Konfiguration
  • PSR-0, PSR-1, PSR-2, PSR-3 und PSR4
  • Composer für das Paket- und Dependency Management
  • Semantic Versioning von Bibliotheken

tragen in hohem Maß dazu bei, dass nahezu jede externe Library für die Realisierung eigener Projekte ohne großen Integrationsaufwand verwendet werden kann. Weiterhin wird durch den Einsatz von

ein hoher Qualitätsstandard sichergestellt und über die gesamte Laufzeit eines Projekts hinweg gewährleistet.

Bereits in die Infrastruktur integrierte Funktionalität unterstützt den Entwickler während des Entwicklungsprozesses und forciert die Einhaltung gängiger Standards. Dadurch kann die Einhaltung hoher Qualitätstandards sichergestellt werden.

 

Komponentenbasierte Entwicklung

Vor allem durch die strikte Trennung der Services forciert appserver.io, wie kein anderes aus der PHP Welt bekanntes Framework, die Entwicklung von komponentenbasierter Software. Hierbei spielen zum Einen, bereits in die Infrastruktur integrierte Funktionalitäten wie

  • AOP
  • Annotationen
  • Dependency Injection

eine maßgebliche Rolle, zum Anderen erlaubt die Infrastruktur die Verteilung der Anwendungskomponenten konfigurativ über beliebig viele Nodes. Durch diesen effizienten, aus der Java Welt bekannten Lösungsansatz, kann in vielen Fällen auch ohne Clustering skaliert werden.

Komponenten basierte Entwicklung erhöht die Wiederverwendbar- und Wartbarkeit des Quellcodes und hilft somit bereits während der Entwicklung, aber auch insbesondere im Support, Kosten einzusparen.

 

Völlig neue Möglichkeiten durch eigenen multithreaded Webserver

Im Gegensatz zur herkömmlichen Entwicklung mit PHP bietet appserver.io, durch den Infrastruktur Ansatz, vollkommen neue Möglichkeiten. Diese sind so im PHP Ökosystem weder bekannt, noch anderweitig verfügbar, gehören jedoch in Programmiersprachen wie Java seit langem zum Standard.

Der modular aufgebaute und vollständig in PHP implementierten, HTTP/1.1 konforme, multithreaded Webserver erlaubt die Manipulation des Requests auf einer Ebene, die völlig neue Perspektiven für die Anwendungsentwicklung eröffnet. So kann bereits in den Request Prozess eingegriffen werden, bevor die Anwendung überhaupt geladen oder gar ausgeführt wird.

Die Servlet-Engine verlagert das Bootstrapping auf den Start des Application Servers. Dadurch wird bei Ausführung des Requests nur noch die angeforderte Businesslogik durchlaufen, die eigentliche Anwendung wird, im Gegensatz zu herkömmlichen PHP Request Processing, hingegen nicht komplett geladen. Hierdurch lassen sich nicht nur extrem gute Request Zeiten erreichen, sondern auch die Serverlast wird spürbar reduziert. Zusätzlich erhält der Entwickler durch das mitgelieferte Authentifizierungs- und Authorisierungsframework ein mächtiges Werkzeug um deklarativ den Zugang zur Anwendung zu regeln.

Der Persistence-Container unterstützt die Verwendung von echten, Request übergreifenden Singletons, die während der gesamten Laufzeit des Application Servers im Speicher bleiben und beliebige Objekte vorhalten können. Stateful Session Beans sind automatisch an die Session eines Benutzers gebunden und können die Entwicklung semi-persistenter Funktionalität wie z. B. einem Warenkorb spürbar erleichtern und arbeiten ideal mit stateful Anwendungen wie Single-Page Apps zusammen.

Über die integrierte Message-Queue können lang laufende Prozesse von der Anwendung entkoppelt und im Hintergrund ausgeführt werden.

Timer-Services für Singleton, Stateful und Message Driven Beans erlauben die sekundengenaue, asynchrone Ausführung von Funktionalität.

Nahezu alle Funktionen können durch Annotationen deklariert und durch Deployment-Deskriptoren wieder überschrieben werden. Funktionen können somit ohne Programmieraufwand konfigurativ angepasst werden.

Technologien wie die Servlet-Engine, der Persistence-Container, die Message-Queue oder der Timer-Service nehmen dem Entwickler fehleranfällige Programmierarbeit ab. Durch deren Einsatz und den deklarativen Ansatz fällt nur wenig, in vielen Fällen sogar gar kein Programmieraufwand mehr an. Somit verkürzen und vereinfachen sie somit spürbar den Entwicklungsprozess und tragen spürbar zu einer Reduzierung der Time-to-Market als auch der Kosten bei.

 

Provisioning und Deployment

appserver.io bringt Out-of-the-Box ein PHAR basiertes Deployment mit. Anwendungen können somit entweder über die Konsole oder über die API sicher deployed werden. Während des Deployments kann die Anwendung provisioniert werden. Hierbei können Datenbank-Updates, Cache Warming oder andere Prozesse durchgeführt werden. Bis die Anwendung komplett deployed wurde, wird automatisch eine 503 Seite ausgeliefert. Sobald das Deployment abgeschlossen und das Provisioning erfolgreich durchgeführt wurde, kann auf die Anwendung zugegriffen werden.

Das Provisioning und Deployment wird bei der Entwicklung vieler Anwendungen vernachlässigt oder durch das Entwicklungsframework nicht besonders unterstützt. appserver.io bietet eine Lösung, die ohne erheblichen Aufwand an die eigenen Bedürfnisse angepasst werden kann und die sichere und schnelle Auslieferung der Anwendung gewährleistet.

 

Plattformunabhängig

appserver.io stellt für allen relevanten Betriebssystemen native Installationspakete zur Verfügung. Die Entwicklung kann somit sowohl unter Windows (!!!), Mac OS X sowie den gängigsten Linux Distributionen erfolgen.

Zusätzlich besteht die Möglichkeit die Anwendung selbst oder die Infrastruktur über Docker zu deployen.

Auf allen Betriebssystemen kann mit der gleichen Laufzeitumgebung entwickelt werden, es wird keine langsame und komplexe Virtualisierung benötigt. Dadurch werden bereits während der Entwicklung Betriebssystem spezifische Probleme umgangen, die ansonsten mühsam während des Betriebs gesucht und behoben werden müssten.

 

Wachsendes internationales Interesse

Mit dem Relase von appserver.io 1.0 Anfang letzten Jahres hat das Interesse und Feedback gerade in den letzten 6 Monaten enorm zugenommen und die Software wird inzwischen in unterschiedlichsten Webprojekten weltweit eingesetzt:

Insbesondere die zum Teil extrem positiven Rückmeldungen zeigen uns, dass wir auf dem richtigen Weg sind und bedeuten natürlich auch eine enorme Motivation. Aktuell arbeiten wir mit Hockdruck am kommenden appserver Release 1.2.0 Iron Dragon mit dem dann u.a. auch PHP 7 unterstützt wird.

Gerade durch die steigenden Anforderungen an Webapplikationen und die immer häufiger verwendeten Single-Page-Apps sehen wir appserver.io als perfekt geeignete Infrastruktur für eben solche Webanwendungen von denen wir inzwischen einige sehr erfolgreich gelauncht haben und hierbei eine JavaScript-Anwendung im Frontend mit appserver.io als Backend zu einer extrem leistungsfähigen und zukunftssicheren Applikation kombinieren. Insofern sehen wir appserver.io zukünftig gerade auch als Fundament für anspruchsvollen Browser-Applikationen, von denen es zukünftig immer mehr geben wird – man denke hier auch nur an die wachsende Verschmelzung von Tools und Geräten über das Web unter dem Stichwort Industrie 4.0.

Mittlerweile haben wir auch einen ersten appserver Hackathon veranstaltet, der sehr erfolgreich war und der nach Wiederholung schreit!

Bei Fragen, Ideen/Anregungen aber auch konstruktiver Kritik stehen wir gerne über unseren Gitter-Chat unter https://gitter.im/appserver-io/appserver zur Verfügung. Natürlich freuen wir uns auch immer über Verstärkung in unserem appserver.io Team – als freier Contributor oder auch gerne als festes Teammitglied!

Kommentar abgeben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.