Laravel ist ein einfaches, skalierbares und sicheres PHP-Framework, das von einer lebendigen und aktiven Community unterstützt wird. Es ist der Ausgangspunkt für viele großartige Webanwendungen und Online-Unternehmen. Es wurde entwickelt, um Entwicklern zu ermöglichen, sich auf die Schaffung von Mehrwert für ihre Kunden und Benutzer zu konzentrieren, anstatt sich mit einem starren Framework herumzuschlagen.
Upsun und Laravel teilen die gleiche Überzeugung, dass Entwickler sich mehr auf die Entwicklung von Funktionen und die Erforschung neuer Technologien und Möglichkeiten konzentrieren sollten und weniger darauf, die Tools, die ihre Vorhaben unterstützen, immer wieder neu zu entwickeln. Bei so viel gemeinsamer DNA kann man mit Sicherheit sagen, dass Upsun das perfekte PaaS für das Hosting und die Skalierung von Laravel-Anwendungen ist.
Es geht darum, sich auf das zu konzentrieren, was am wichtigsten ist: die Freiheit, großartige Anwendungen zu erstellen, ohne sich um Kleinigkeiten zu kümmern. Für alle web artisans: Upsun hilft Ihnen, mit Ihren Laravel-Anwendungen die Sterne zu erreichen, ein Deployment nach dem anderen.
Upsun gibt Entwicklungsteams die Flexibilität, verschiedene Anwendungen auf einer einzigen, self-service PaaS zu erstellen - und die Power, diese auszuführen. Durch die Automatisierung von Infrastrukturverwaltung und Sicherheit gibt Upsun jedem Entwickler die Freiheit, einfach zu experimentieren, schnell zu iterieren und Anwendungen in großem Umfang verantwortungsvoll bereitzustellen. Aber wie?
Unabhängig von der Komplexität Ihrer Anwendungen ermöglicht es Ihnen Upsun, Ihre Umgebung über Ihr Terminal und Ihre YAML-Dateien vollständig zu kontrollieren. Wir führen Sie durch die Schritte, wie Sie Ihre Laravel-Anwendungen auf Upsun ausführen können - die vollständige Dokumentation finden Sie hier.
Laden Sie zunächst die Upsun CLI herunter und installieren Sie sie. Dann können Sie alle Upsun-Befehle mit upsun list
entdecken - alles, was Sie brauchen, um das zu programmieren, was noch kein Entwickler zuvor programmiert hat, finden Sie hier.
Sobald Sie die Upsun CLI haben, benötigen Sie ein Projekt. Sie können Ihre Laravel-Anwendung aus ihrem Git-Repository klonen oder eine neue Laravel-Anwendung erstellen und ein Git-Repository initialisieren.
Wir empfehlen Ihnen, ein Git-Repository zu initialisieren, bevor Sie ein Upsun-Projekt erstellen.
Es ist nun an der Zeit, ein Upsun-Projekt mit upsun project:create
zu erstellen. Alternativ können Sie ein Projekt mit der UI erstellen und es lokal mit upsun get PROJECT_ID
abrufen.
Die Upsun CLI hat einen praktischen project:init
Befehl, der dazu dient, Konfigurationen zu laden und Ihnen zu helfen, in kürzester Zeit loszulegen. Dieser Befehl hat ein cooles Kürzel: upsun ify
. So einfach ist es, aber wie funktioniert es?
Der Befehl upsun ify
erkennt automatisch das verwendete Framework, die Laufzeitumgebung und die Abhängigkeitsmanager. Es liegt dann an Ihnen, Ihr Upsun-Projekt zu benennen und die verschiedenen Dienste auszuwählen, die Sie verwenden möchten.
Der Befehl upsun ify
bietet eine Liste von Diensten, deren Konfiguration für Sie gebootstrapt wird. Verwenden Sie die Pfeile, um den Selektor zu verschieben, die Leertaste, um einen Dienst auszuwählen, und die Eingabetaste, um die Liste zu filtern.
Sie können so viele Dienste zu Ihrer Anwendung hinzufügen, wie Sie möchten - werfen Sie einen Blick in die Dokumentation, um alles zu erfahren, was Sie brauchen, um Ihr Upsun-Projekt nach Ihren Wünschen zu gestalten.
Abhängig von der Komplexität der Anwendung kann es sein, dass der Befehl upsun ify
nicht die gesamten Konfigurationsdateien für Sie generiert, aber Sie können mit 80-90% der Dateien beginnen. Unsere Stack-Guides, die Dokumentation und die Discord-Community sind ebenfalls immer zur Stelle, um Ihnen zu helfen, eine Konfiguration in kürzester Zeit zu erstellen.
Upsun ist die PaaS, die Ihnen hilft, Ihre Laravel-Anwendungen in jede gewünschte Richtung zu skalieren, unabhängig davon, wie komplex Ihre Anwendung zu sein scheint. Vielleicht möchten Sie Ihr Projekt horizontal skalieren, indem Sie mehr Technologien einsetzen. Ihr Projekt muss nicht unbedingt nur aus einer einzelnen Laravel-Anwendung bestehen. Es könnte mit Workern, Webservices in NodeJS und Go und einer Datenschicht in Python gebündelt sein. Dies wäre dann Ihre technische Umgebung, mit Laravel als Kern, die Sie für Ihr Unternehmensprodukt oder Ihre Dienstleistung benötigen. Und Upsun kann Ihnen helfen, es zu verwalten.
Unsere Dokumentation bietet einen Leitfaden für den Aufbau mehrerer Anwendungen in Uspun-Projekten. Die Datei .upsun/config.yaml
enthält den Root-Level-Key einer application
und die Konfiguration Ihrer ersten Anwendungen. Sie können entweder weitere Einträge zu dieser Datei hinzufügen oder die Konfiguration in mehrere Dateien aufteilen, eine pro Anwendung. Während der Bereitstellung der Infrastruktur für unser Projekt fasst Upsun auch alle YAML-Dateien im Ordner .upsun
in einer Meta-Konfigurationsdatei zusammen.
Laravel verlangt, dass bestimmte Cache-Verzeichnisse beschreibbar sind. Bei Upsun müssen wir explizit festlegen, welche Ordner nach dem Build beschreibbar sind - diese Ordner werden Mounts genannt. Um sicherzustellen, dass die Verzeichnisse bootstrap/cache
und storage
beschreibbar sind, überprüfen Sie die mounts
-Definition Ihrer .upsun/config.yaml
-Datei, wie unten dargestellt. Ein Laravel-spezifischer Cache-Ordner sollte erstellt werden, während die Anwendung deployed wird, falls einer fehlt.
applications:
app:
...
mounts:
...
"bootstrap/cache":
source: "storage"
source_path: "cache"
"storage":
source: "storage"
source_path: "storage"
Mehrere Hooks werden als Teil des Prozesses der Erstellung und Bereitstellung Ihrer Anwendung ausgeführt. An diesen Stellen können Sie benutzerdefinierte Skripte ausführen, wie z. B. diesen deploy
-Hook, der sicherstellt, dass die Caches korrekt eingerichtet und erwärmt sind:
applications:
app:
...
hooks:
deploy: |
set -eux
# sicherstellen, dass die Cache-Verzeichnisse verfügbar sind
mkdir -p storage/framework/cache/data
mkdir -p storage/framework/views
mkdir -p storage/framework/sessions
# alle Caches und Dumped-Dateien löschen
php artisan optimize:clear
# alle verfügbaren Migrationen ausführen
php artisan migrate --force
Hooks bieten noch mehr Automatisierungssuperpower, da Sie mehrere Befehle zu einem kritischen Zeitpunkt des Bereitstellungslebenszyklus ausführen können, einschließlich build
, deploy
und post-deploy
.
Laravel erwartet, dass alle Konfigurationen über Umgebungsvariablen mit bestimmten Namen und in einem bestimmten Format eingegeben werden. Upsun stellt Konfigurationsinformationen als Umgebungsvariablen in einem anderen spezifischen Format bereit.
Die platformsh/laravel-bridge
-Bibliothek verbindet die Upsun-Variablen mit dem Format, das Laravel für erwartet, und macht das Leben unserer artisans viel einfacher. Fügen wir sie hinzu:
composer require platformsh/laravel-bridge
In der heutigen Ära der digitalen Nachhaltigkeit müssen die Entwickler das Steuer fest in der Hand behalten. Sie haben die Kontrolle über die optimale Ressourcenzuweisung, die direkt mit dem Erfolg einer Anwendung korreliert, und tragen eine größere Verantwortung für die Umwelt.
Eine übermäßige Ressourcennutzung ist nicht nur eine Frage von verschwendeten Kosten, sondern führt auch zu unnötigen Kohlenstoffemissionen. Durch eine sorgfältige Abstimmung der Ressourcen auf den Wachstumspfad einer Anwendung können Entwickler effiziente, leistungsstarke Anwendungen ohne ökologischen Ballast erstellen. Upsun möchte Entwicklern diese doppelte Aufgabe ermöglichen: die Förderung des digitalen Wachstums bei gleichzeitigem Einsatz für den Umweltschutz.
Mit dem Befehl upsunify und der Dokumentation sollten Sie die für Ihre Anwendung benötigte Infrastruktur beschreiben können. Von der ersten Bereitstellung an erfolgt die Ressourcenzuweisung mit Standardressourcen, die jederzeit angepasst werden können.
Ihre Projektdefinition sollte dann berücksichtigt werden. Sie müssen noch festlegen, welche Ressourcen für die Ausführung Ihrer Anwendung verwendet werden sollen, und das ist dann die endgültige Anforderung. Dies ist ein zweistufiger Prozess, bei dem Sie Ihre Infrastruktur in einer YAML-Datei beschreiben und die Ressourcenzuweisung definieren, um die Kosten zu kontrollieren.
Nehmen wir an, Sie haben eine mit Laravel betriebene backend
-Anwendung, ein frontend
in NodeJS oder Bun und eine MySQL-Datenbank definiert. Nun müssen wir sicherstellen, dass jeder dieser Container von der optimalen Menge an Ressourcen profitiert.
Werfen wir einen Blick auf die Vorgänge hinter den Kulissen, um die Möglichkeiten, die Sie jetzt haben, vollständig zu verstehen. Alle Images, die Ihnen zur Verfügung stehen, haben ein Standardprofil: BALANCED
, HIGH_CPU
, HIGH_MEMORY
, je nachdem, ob Sie die CPU oder den Speicher bevorzugen oder ein Gleichgewicht zwischen beiden Anforderungen anstreben. Dies entspricht einem Verhältnis von Arbeitsspeicher pro CPU-Einheit.
Images haben ein optimiertes Standardprofil, das in den meisten Fällen die bevorzugte Wahl sein wird. Aber wir möchten, dass Sie selbst das Steuer in die Hand nehmen. Sie können den Standardwert überschreiben und explizit festlegen, welches Profil Sie verwenden möchten, indem Sie die Definition der Dienste in Ihrer .upsun/config.yaml
-Datei erweitern.
services:
database:
type:
mysql:10.6
container_profile: HIGH_MEMORY
Sobald dies definiert ist, werden wir angeben, wie viel CPU und somit auch Speicher wir jedem Container zuweisen wollen. Diese Containergröße kann 0,1, 0,25, 0,5, 1, 2, 4, 6 oder 8 betragen. Die Menge des Speichers, die mit jeder CPU-Stufe verbunden ist, ist in der Dokumentation zu finden.
Unser node
-Frontend ist superleicht und benötigt nur 0,1 CPU, das Minimum. Wir haben eine Menge Verbesserungen an unserem backend
vorgenommen (danke Blackfire!), und 0,25 reicht aus. Unsere Datenbank ist größer und benötigt mehr Ressourcen, um schnell zu bleiben:
upsun resources:set --size frontend:0.1,backend:.25,database:1
Unser Backend benötigt Redundanz. Geben wir ihm 3 Instanzen:
upsun resources:set --count backend:3
Schließen wir unsere Konfiguration ab, indem wir der backend
-Anwendung 512 MB und dem database
-Service 2 GB Speicherplatz zuweisen:
upsun resources:set --disk backend:512,database:2048
Ein Deployment ist nicht erforderlich(upsun redeploy
). Unsere Änderungen sind bereits berücksichtigt worden. Dies bedeutet auch, dass nur ein paar CLI-Befehle erforderlich sind, um die zugewiesenen Ressourcen in Zukunft zu erhöhen oder zu verringern.
Stellen Sie sich vor, Sie stehen kurz vor der Markteinführung eines neuen, Produkts, das große Besucherzahlen auf Ihre Website bringen wird. Ein paar Befehle kurz vor dem "One more thing"-Moment in Ihrer Keynote sorgen dafür, dass Ihre Anwendung erreichbar bleibt und auch bei starkem und anhaltendem Datenverkehr weiterhin funktioniert.
Jedes Upsun-Projekt wird mit einer vollständigen Observability-Lösung geliefert, die es Entwicklern und Betriebsteams ermöglicht, ihre Anwendungen zu überwachen, Fehler und Anomalien zu erkennen und Probleme proaktiv anzugehen, bevor sie eskalieren.
Die Upsun Observability-Tools umfassen:
Dank der Observability auf allen Ebenen können Entwickler datengestützte Entscheidungen treffen und wertvolle Einblicke in das Verhalten ihrer Anwendungen gewinnen, so dass sie ihre Systeme kontinuierlich verbessern können, um optimale Leistung und Effizienz zu erzielen.
Upsun gibt Entwicklern nicht nur die Möglichkeit, die von ihnen benötigte Infrastruktur in einfachen YAML-Dateien zu beschreiben. Es nutzt Git als zentrale Quelle. Insbesondere ist jede Umgebung, die für Ihr Projekt erstellt wird, an Git-Branches gebunden.
Nehmen wir an, Sie möchten an einer bestimmten Funktion für Ihre Anwendung arbeiten. Sie erstellen eine Umgebung, die auf Ihrer Produktionsumgebung und höchstwahrscheinlich Ihrem main
-Branch basiert. Upsun wird automatisch einen Klon Ihrer Anwendung mit allen zugehörigen Diensten und Daten bereitstellen. Es wird sogar eine Entwicklungs-URL bereitgestellt, damit Sie Ihr Feature testen und mit Ihrem Team kollaborieren können.
Es gibt eine Integration mit GitHub, Gitlab sowie Bitbucket. Mit dieser Integration können Sie jedes Mal, wenn Sie Branches, Pull- oder Merge-Requestes erstellen, automatisch Vorschauumgebungen für Sie bereitstellen lassen. Beim Mergen eines Branches wird die Zielumgebung automatisch deployed.
Sie haben also die volle Kontrolle über Ihre Produktions- und Vorschauumgebungen. Das gilt auch für die Ressourcenzuweisung. Sie können die Ressourcen, die den verschiedenen Containern oder Ihrer Vorschauumgebungen zugewiesen werden, mit demselben Befehl upsun resources:set
reduzieren, während die Ressourcenanforderungen Ihrer Produktionsumgebung hoch bleiben.
Zusammenfassend lässt sich sagen, dass Upsun speziell entwickelt wurde, um Entwicklern das Beste aus beiden Welten zu bieten: die Möglichkeit, Ressourcen synchron mit den wachsenden Anforderungen ihrer Laravel-Anwendung zu skalieren und gleichzeitig umweltbewusst zu sein. Die Rolle des Entwicklers war noch nie so wichtig wie heute: Sie programmieren nicht nur eine Anwendung, sondern gestalten die Zukunft der digitalen Nachhaltigkeit und Leistung.
Wir sind uns bewusst, dass keine Entwicklungsreise allein unternommen wird. Es ist ein kollektives Unterfangen, das von gemeinsamem Wissen und gemeinschaftlichen Problemlösungen lebt. Deshalb laden wir Sie ein, den Dialog fortzusetzen und Ihre Erfahrungen, Fragen oder Erkenntnisse auf unseren speziellen Social-Media-Kanälen zu teilen.
Kommen Sie in einen Raum, in dem Laravel-Entwickler wie Sie zusammenarbeiten, lernen und wachsen können, um die nächste Generation von skalierbaren, entkoppelten und umweltfreundlichen Anwendungen zu entwickeln. Wir können es kaum erwarten zu hören, woran Sie arbeiten und wie wir Sie auf Ihrer Entwicklungsreise besser unterstützen können.
Lassen Sie uns gemeinsam etwas mit Laravel und Upsun entwickeln und dabei die volle Leistung unserer Laravel PaaS nutzen.