Zum Inhalt Zum Hauptmenü

Blog

Diese Backend Technologien erwarten uns 2015

Die Vorschau für das aufregende Jahr 2015 haben wir bereits mit den Frontend Trends eingeläutet. Das optische Vergnügen haben wir also geklärt. Schenken wir der Karosserie überlebensnotwendige Innereien: Sehen wir uns an, was im Jahr 2015 den Benzinbrüdern unter uns Web Entwicklern ein Grinsen ins Gesicht jagt.

Backend Technologien 2015, &copy Christian Weilguny

Das Garagentor ist offen, der Flitzer steht auf der Hebebühne. Rechts an der Wand hängen die Werkstattlampen, greifen Sie sich eine und kommen Sie mit, wir fangen mit dem Unterboden an.

Laravel 5

PHP macht manchmal einen etwas antiquierten Eindruck. Wir wissen aber: Was aussieht wie Staub ist edle Patina. PHP bietet eine robuste, stabile Basis für moderne, zeitgemäße Frameworks die den für unsere Kunden meist unsichtbaren Rahmen unserer Arbeit bilden. Am 4. Februar wurde Laravel 5 mit einem Tweet aus der Taufe gehoben:

„Nice to meet you, #L5 laravel.com … enjoy! :)“

Laravel ist ein MVC Framework und folgt damit einem bewährten Muster. Durch Model View Controller (MVC) wird Programmcode strukturiert. Die nötige Flexibilität für schrittweise Erweiterungen wird erst durch eine solche Struktur vom Wunsch zur Realität. Laravel kann das besonders gut. Auch bei Laravel können wir noch einige Schrauben entfernen und hinter die Abdeckung schauen: Mit „Eloquent“ nutzt das Framework eine solide Lösung, um Daten einfach und sicher aus der logischen Schicht direkt in die Datenbank zu übertragen. Mit „Migration“ unterstützt uns Laravel dabei, die Struktur der Datenbank zu versionieren und auf allen Test- und Produktivsystemen aktuell zu halten. Um alle Vorteile eines Frameworks nach außen zu transportieren, braucht es eine Template Engine. Mit einer Template Engine wird HTML um eine logische Komponente erweitert. Aufgebohrtes HTML also – Kompressor, Sportauspuff, Chiptuning und im Fall von Laravel sogar Nitroeinspritzung. Denn auch in diesem Bereich hat Laravel mit der „Blade“ Template Engine ein heißes Eisen im Feuer.

Laravel 5 ist also eine junge, moderne Alternative für die breite Basis unseres Systems. Doch erst eine große Auswahl gibt uns die Möglichkeit zu entscheiden, welcher Weg für das nächste Projekt die besten Voraussetzungen bietet.

Symfony

Eine arrivierte, moderne Alternative zu Laravel ist Symfony. Mit der Beschreibung „Symfony is a set of PHP Components“ gibt sich das MVC Framework nach außen hin als Baukasten. Das wirkt abschreckend und erfreulich zugleich. Ein Baukasten bedeutet viel Flexibilität und wenig Overhead. Und das ist bitter nötig für High-Performance Lösungen. Ein Baukasten bedeutet aber auch erstmal Chaos das sortiert werden muss – normalerweise. Und genau an dieser Stelle hebt sich Symfony ab: Das Chaos ist vorsortiert wie ein dreitausendteiliges Legoauto, wo jeder Abschnitt fein sortiert in kleinen Säckchen geliefert wird. Bauplan natürlich inklusive. Und das ist auch schon die nächste Stärke von Symfony: Der Bauplan, die Dokumentation. Die erklärt an sich schon alles in prägnanter und konsequent vollständiger Art und Weise. Doch wer auf der Leitung steht, dem hilft die beste Dokumentation nichts. Auch hier sammelt Symfony Extrapunkte: Die große Community hilft mit zahlreichen Blogs und Howtos. Auch die beliebte Entwickler Plattform stackoverflow unterstützt den verzweifelten Web Entwickler Benzinbruder immer wieder in Sachen Symfony.

Das sind für uns so herausragende Eigenschaften von Symfony, dass wir die technischen Details wie MVC, ORM, DI oder Twig im Schrank lassen und ein anderes Mal in einer Nerd-Talk-Session behandeln. Lassen wir unser Sportgerät von der Hebebühne, schalten wir die große Lampe ein, und kümmern uns um die Hochzeit – stecken wir den Motor in die Karosserie.

nginx

So wie Symfony hängt sich auch nginx das „High-Performance“ Schild um. Und hier klärt sich nun auch, warum wir von Autos und Motoren sprechen: nginx, gesprochen „Engine X“ ist der Motor der schon seit einigen Jahren viele Websites antreibt. Einer Netcraft Statistik zufolge sind es im Jänner über 128 Millionen Webserver, die auf nginx setzen. Das sind knapp 15% aller von der Statistik erfassten Webserver. Der bewährte Apache Webserver hat mit 36% immer noch klar die Nase vorn. Doch Microsofts IIS muss schon zittern. Denn die ebenso 36% des Microsoft IIS müssen stark nach unten korrigiert werden: Mitte 2013 wurden zahlreiche riesige chinesische Linkfarmen aufgrund der großen digitalen Mauer international ausgelagert. Aus ungeklärten Gründen arbeiten diese Linkfarmen mit Microsofts IIS. Korrigiert man die Statistik und geht von „sinnvollen“ Websites aus, ist nginx schon dabei, Microsoft die Silbermedaille abzunehmen.

Auch unser langjähriger, erfahrener Technik Partner, Dipl.-Ing. Dr. Walter Brunner, ist überzeugt von nginx:

Es ist bei Ruby on Rails der beste Weg.

Der versierte Leser rätselt vielleicht, warum wir einen Webserver, der seit 2004 öffentlich zur Verfügung steht, im Jahr 2015 als trendig deklarieren. Klären wir das auf: Die niedrigen Anforderungen an Ressourcen sind der USP des ursprünglich für eine russische Suchmaschine entwickelten Webservers. Im Vergleich zum Hardware hungrigen Apache Webserver ist nginx ein vegetarischer Spargeltarzan, der mit fast jedem Gemüse auskommt, das gerade noch die Bezeichnung „Computer“ verdient. Diese Eigenschaft verträgt sich hervorragend mit der Tatsache, dass schon seit Jahren alles mobil wird. Dieses „mobil werden“ ist ein zweistufiger Prozess. Die Software wurde in den letzten Jahren auf mobil getrimmt. Websites wurden responsive und damit mobil. Und wir sprechen nun nicht mehr von Programmen, sondern schon ganz alltäglich von Apps. Damit haben wir das Zündritzel und den ersten Gang voll ausgeschöpft. Geben wir Gas, wir sind bereit, die zweite Stufe im Mobile Prozess zu zünden: Denn nun kommt auch die Hardware Branche in die Gänge und bietet immer kleinere, mobilere Hardware an – abgesehen von Smartphones und Tablets die schon seit Jahren als eher abgeschlossenes System eine andere Kategorie darstellen. Die großartigen Web Technologien bekommen durch die Verwendung in mobilen Systemen einen neuen Schub. Web Technologien können in ganz neuem Umfeld für alltägliche Anwendungen genutzt werden. Der Hosentaschenserver ist in Mode. nginx spielt hier ganz vorne mit und kann in der Statistik eine steile Kurve nach oben hinlegen. Die Hardware Branche muss zwar mitspielen. Die läuft dem Zug aber zum Glück nicht hinterher, sondern sitzt schon Business Class. In bester Gesellschaft.

node.js

Mit node.js hat nginx einen gesprächigen Sitznachbarn in der Business Class. Damit reiten wir nicht nur bedeutungslos eine Analogie. Denn node.js ist Vorreiter in Sachen Websockets und damit wirklich sehr gesprächig. Bisher waren Websites ein Frage/Antwort Spiel: Die Website oder Webapplikation, die im Browser des Benutzers geöffnet ist, stellt dem Webserver Fragen und der Webserver antwortet. Ein Webserver ist aber nicht per se ein introvertierter, launischer Genosse der nur auf Fragen antwortet. Mit HTTP hatte er bisher nur einfach nicht die Möglichkeit, seinen veritablen Kommunikationsdrang auszuleben. Mit Websockets wird er zum Entertainer. Unser Rockstar kann durch Websockets aktiv mit der Website sprechen, anstatt nur auf Fragen zu warten. Das bedeutet, dass die Website nicht in regelmäßigen Abständen beim Webserver fragen muss, ob er zum aktuellen Stand der Dinge eine Meinung hat. Das wiederum bedeutet weniger Traffic, weniger Last für die Leitungen und die Hardware. Bilden wir die Summe dieser Rechnung, dann steht unterm Strich: Mehr Performance!

Doch node.js ist nicht nur #websockets. node.js ist auch #javascript #serverseitig. Wenn ein Web Entwickler die Worte „Was? Echt jetzt?“ sagt, dann hat entweder Microsoft das Ende des Internet Explorers verkündet, oder jemand hat ihm von serverseitigem Javscript und node.js erzählt. Nach dem Prinzip „throw money at the problem“ hat Google versucht mit „Dart“ eine ganz neue Plattform zu entwickeln, mit der auf dem Server und beim Client, also dem User, die gleiche Programmiersprache eingesetzt werden kann. node.js geht den effizienteren Weg und bringt mit Javascript einen alten Bekannten aus der Frontendwelt auf den Server. Theoretisch kann node.js sogar selbst Webserver spielen. Die optimale Lösung ist jedoch meistens, node.js mit einem low footprint Webserver zu kombinieren, der statische Inhalte ausliefert. Im Fall von node.js ist das meistens nginx. Was in node.js fehlt, deckt unser solide gebauter Unterboden ab. Die Mittel der Javascript Plattform enden nicht einfach, sie werden nahtlos durch PHP Frameworks wie Laravel oder Symfony erweitert.

Auch node.js steht schon einige Zeit auf der Bühne. Der ehemalige nginx Groupie wird jetzt aber zum Lead Gitarristen der Band und spielt ganz vorne mit.

Wir haben also einen soliden Unterbau und haben den Motor mit der Karosserie verheiratet. Uns fehlt noch die Elektronik für die Motorsteuerung und Autofahren ohne Musik zu hören macht auch nur halb so viel Spaß.

AngularJS

Die Elektronik ist in unserem Fall die direkte Schnittstelle zum Frontend. Um die neu gewonnene Dynamik zwischen Server und Client auch ausnutzen zu können, muss diese Schnittstelle eine moderne sein. Mit reinem Javascript ist meist nur eine unstrukturierte und sehr schnell chaotische Verbindung zwischen Server und HTML zu schaffen.

Frameworks to the Rescue!

Mit AngularJS bewirbt sich ein Javascript Framework um die Krone in dieser Wertung. Die treibende Kraft hinter dem Projekt hat sich in der Vergangenheit schon mal durch eine Suchmaschine mit Ruhm bekleckert: Google. Die Internet Hoheit himself entwickelt AngularJS. Ähnlich wie Template Engines in serverseitigen Frameworks bringt ein Javascript Framework Logik ins statische HTML. Mit AngularJS können Prozesse, die in dieser Schicht der Architektur immer wieder vorkommen vereinfacht abgebildet werden. Ein absolutes Killer Feature ist dabei das Data Binding: Um Inhalte, die vom Server geladen werden auch darstellen zu können, musste man sich im Code darum kümmern, dass die Daten zum HTML transportiert werden. Durch Data Binding wird einem HTML Element mitgeteilt, welche Javascript Variable es darstellen soll. Im Javascript Code bleibt man somit auf der logischen Ebene und befüllt nur Models und Variablen mit den jeweiligen Inhalten. Logik und Darstellung werden nicht mehr vermischt. Der Code wird dadurch übersichtlicher, flexibler und leichter erweiterbar.

Das Prinzip von AngularJS ist für nahezu jede Website nützlich. Seine Vorteile kann das Framework allerdings besonders gut bei modernen Single Page Sites und Single Page Apps ausspielen.

Ähnlich wie bei Symfony ist auch bei AngularJS die Community sehr breit aufgestellt. Lösungen für alltägliche Situationen im Umgang mit AngularJS sind leicht zu finden. Wie bei Symfony ist auch stackoverflow eine sehr gute Informationsquelle rund um das Framework.
Probefahrt?

„The Future’s So Bright, I Gotta Wear Shades“ ist der Titel eines ’80er Hits. Die Technologien, die uns im Jahr 2015 erwarten, sind aufregend und bringen neuen Schwung in die eingefahrene Beziehung zwischen Frontend und Backend. Also setzen Sie die Sonnenbrille auf und nehmen Sie Platz, wir machen jetzt eine Spritztour. Der Schlüssel steckt – Sie fahren!