Der Webhoster IONOS schlägt ein neues Kapitel bei der Bereitstellung von Webangeboten auf – und setzt mit Deploy Now, seinem Allzweck-Werkzeug für Entwickler, auf mehr Professionalität. Erfahren Sie, was das für die Entwicklung und Einrichtung neuer Webprojekte bringt.
Professionelle Websites und dynamische Webanwendungen benötigen für Entwicklung und Bereitstellung eine entsprechende Infrastruktur. Diese wird heute über Web Stacks oder Web Application Stacks realisiert. Bei diesen Stapeln bauen die notwendigen Software-Komponenten Schicht für Schicht aufeinander auf.
Im einfachsten Fall besteht ein Stack aus Betriebssystem, Webserver, Datenbank und einem Skript-Interpreter. Das Bundle sorgt dafür, dass die benötigten Informationen über das Webprojekt an den Client, also den Netz-Browser, ausgeliefert werden. Der Browser verarbeitet dann die HTML-, CSS- und JavaScript-Codes und stellt das Webangebot schließlich für den Endnutzer dar.
Grundsätzlich können die Komponenten des Stacks individuell und für unterschiedliche Anforderungen zusammengestellt werden. Im Lauf der Zeit haben sich daher für diverse Einsatzszenarien verschiedene Varianten solcher Stacks entwickelt. Die populärste Version ist das Open-Source-Bundle LAMP, das sich aus Linux, Apache, MySQL und PHP zusammensetzt.
Obwohl LAMP kostenlos und Open Source ist, konnte es von Beginn an mit proprietären Lösungen mithalten. Es wurde schnell erfolgreich, da es einfach verfügbar und preiswert in der Anschaffung ist. Das LAMP-Paket eignet sich zudem hervorragend zur Umsetzung mehrseitiger dynamischer Websites. Nutzer profitieren vor allem von der großen Community, ausführlichen Tutorials und der Möglichkeit, PHP sowie leistungsstarke Tools wie phpMyAdmin einzusetzen.
Die Wiki-Software MediaWiki, mit der auch Wikipedia betrieben wird, ist ein Beispiel für eine Website, die auf einer LAMP-Umgebung aufbaut. Der Server, der die dynamischen Webseiten von Wikipedia zur Verfügung stellt, nutzt PHP-Skripte, um Daten aus einer MySQL-Datenbank zu generieren und mit Apache über das World Wide Web bereitzustellen. Darüber hinaus ist LAMP aber auch die Basis von vielen Content-Management-Systemen (CMS) wie WordPress und Joomla.
LAMP versus JAMstack
Obwohl der LAMP-Stack viele Vorteile bietet, ist er alles andere als perfekt – was zum großen Teil der frühen Phase seines Entstehens geschuldet ist. So haben sich über die Jahre neue Konzepte und Sprachen herausgebildet, die speziellere Anforderungen als PHP erfüllen, wie zum Beispiel Python. Im Vergleich zu anderen Stacks benötigen LAMP-Server häufig auch mehr Ressourcen und viele Entwicklerinnen und Entwickler bemängeln die fehlende Sicherheitsunterstützung wie die Unterbindung der Code-Ausführung von Skriptsprachen oder SQL-Injection.
Den größten Nachteil stellen jedoch Leistungsprobleme dar – eine Folge des datenbankgestützten Modells und der Rendering-Methoden von LAMP-Anwendungen. So muss jeder dynamische Inhalt beim Besuch eines Nutzers zunächst über eine Anfrage an einen Server generiert werden. Dieses Designmodell erzeugt viele wiederholende und häufig teure Anfragen an die Server- und Datenbank-Architektur. Oft wird versucht durch Caches diese Defizite abzumildern – zum Preis meist wachsender Komplexität der Architektur.
Mit dem in die Jahre gekommenen PHP, der mangelnden Performance, der Komplexität der Architektur und der Security-Problematik ist LAMP nicht mehr auf der Höhe der Zeit. Diese Nachteile beseitigt der JAMstack weitgehend - ein weiterer von vielen Stacks, der zuletzt immer populärer wurde. Anders als LAMP baut der JAMstack – „JAM“ steht für JavaScript, APIs und Markup – die Websites bereits vorab zur Build Time und nicht erst zur Laufzeit, wenn der Nutzer auf die Website klickt.
Für den JAMstack existieren inzwischen vielfältige Site-Generatoren zum schnellen Aufbau statischer Websites. Solche Site-Generatoren sammeln in regelmäßigen Abständen alle Inhalte aus Datenbanken, CMSs oder APIs zusammen, kombinieren diese mit dem Markup und bauen daraus eine statische Website.
Diese vorab gerenderten Websites werden dann über ein Content Delivery Network (CDN) ausgeliefert. Da zur Runtime jetzt keine Anfragen mehr an einen Server gesendet werden müssen, sind solche JAMstack-Websites in der Regel deutlich schneller als klassische LAMP-Stack-Seiten. JAMstack-Websites haben damit deutlich bessere Ladezeiten und sind zudem weniger Sicherheitsrisiken ausgesetzt, da während der Laufzeit keine Interpreter und Datenbanken verfügbar sind.
Allerdings hat auch der JAMstack Nachteile. Wenn zu viele Inhalte asynchron nachgeliefert werden müssen, schwindet der Vorteil bei der Performance schnell. Darüber hinaus muss immer die Build Time bedacht werden, die je nach Größe schon einmal über eine Minute Zeit in Anspruch nehmen kann. Es kann also manchmal ein wenig dauern, bis Inhalte wie ein Blogartikel für den Nutzer sichtbar werden. Abhilfe kann hier Incremental Static Regeneration (ISR) schaffen.
Schweizer Taschenmesser - Deploy Now
Viele Hosting-Anbieter entscheiden sich für eines der beiden Lager und legen ihre Kundschaft damit fest. Der deutsche Webhoster IONOS hat sich dazu entschlossen, beiden Seiten eine Heimat zu geben. Er bietet einen vollständigen, gemanagten LAMP-Stack als Shared Hosting und Dedicated Hosting an - mit Deploy Now aber zusätzlich eine Hosting-Plattform, die das automatisierte Bereitstellen von statischen Seiten via GitHub ermöglicht.
Was steckt hinter Deploy Now? Deploy Now versucht nicht, ideologisch einen Technologie-Stack zu favorisieren. Vielmehr können in Deploy Now neben dem JAMstack und LAMP auch andere Stacks genutzt werden. Das Limit setzt lediglich die von Deploy Now verwendete Infrastruktur. Auch lassen sich Änderungen jederzeit und weltweit von jedem Rechner aus vornehmen.
Grundsätzlich kann man sich das IONOS Modell als ein „Allzweck“-Werkzeug vorstellen, eine Art Schweizer Taschenmesser für die moderne Web-Entwicklung. Damit versucht Deploy Now mehr Professionalität in die Masse der Webprojekte zu bringen. Beispielsweise ist CI/CD – die kontinuierliche Automatisierung und Überwachung des Webangebots - in der professionellen Software-Entwicklung nicht mehr wegzudenken. Der höhere Automatisierungsgrad soll Fehlervermeidung, Effizienz und Zuverlässigkeit verbessern.
Das neue Deployment-Modell erlaubt zudem eine nahtlose Integration in andere Entwicklungstools. Alle Daten gehören allein dem Nutzer und auch die Deployment-Konfiguration ist Teil des Git-Repositories des Nutzers. Außerdem ist Deploy Now bequem zu handhaben: Bei der Einrichtung eines Projekts unterstützt das Modell durch die Erkennung des Frameworks, der Projekteinstellungen und der voreingestellten Best-Practice-Definitionen.
Automatisierte Bereitstellung
Wie funktioniert Deploy Now im Detail? Mit der Hosting-Plattform können Entwickler statische Websites und PHP-Anwendungen direkt über GitHub bereitstellen und nahtlos in einer Live-Umgebung hosten. Das Tool automatisiert die Entwicklung und das Deployment, so dass sich Website-Programmierer ganz auf ihren Code konzentrieren können. Die Ergebnisse des Build-Prozesses werden automatisch auf der georedundanten Shared-Hosting-Infrastruktur von IONOS bereitgestellt. Der Nutzer muss sich über die Wartung und den Verbindungsaufbau zu seiner Infrastruktur keine Gedanken machen.
Die Automatisierung des Workflows basiert auf GitHub Actions und kann direkt im Repository angepasst werden. Code-Änderungen via GitHub werden auf den IONOS Server übertragen, was Entwicklungsschritte reduziert. Zur Deployment-Automatisierung verwendet Deploy Now das Feature GitHub Actions. Ein neues Deployment kann beispielsweise durch ein Code-Update ausgelöst werden. Die von Deploy Now erstellten Workflows lassen sich dabei beliebig anpassen und erweitern. GitHub stellt hierfür mehr als 13.000 Actions im GitHub Marketplace zur Verfügung.
Deploy Now unterstützt den Aufbau von JAMstack-Websites auf Basis von Javascript und HTML5. Dem Nutzer stehen alle technischen Möglichkeiten heutiger Frameworks in diesem Bereich offen. Beispielsweise unterstützt Deploy Now Angular JS, HTML5, PHP, React und Vue.js sowie die Static Website Generators Gatsby, Gridsome, Hexo, Hugo, Jekyll, Jigsaw, Next.js und Nuxt.js .
Feature Requests können von Anwendern direkt bei GitHub eingereicht werden. Die Dokumentation von Deploy Now ist öffentlich bei GitHub einsehbar und wird mit Deploy Now bereitgestellt.
Alle weiteren Informationen zu Deploy Now und den Tarifen finden Sie hier.
Fazit
Agenturen und andere Internet-Akteure müssen ihre Kundenprojekte möglichst skalierbar und schnell aus wiederkehrenden Komponenten formen. Mit Deploy Now vereinfacht und professionalisiert IONOS diesen Prozess. Die Idee zeigt, wie Hosting aussehen kann, in welche Richtung es sich entwickelt und wie innovativ europäische Hosting-Anbieter sein können.