Laravel Vapor is an auto-scaling, serverless deployment platform for Laravel, powered by AWS Lambda. Manage your Laravel infrastructure on Vapor and fall in love with the scalability and simplicity of serverless. — Laravel Vapor Docs
Okay aber was bedeutet das? Laravel Vapor bietet uns die Möglichkeit unsere Laravel-App zu deployen. Die Besonderheit dabei ist, dass Vapor unsere App als ein Lambda nach AWS deployed und uns dabei jegliche Erstellung und Konfiguration der verschiedenen Services die unsere App benötigt abnimmt.
Was ist Serverless
Amazon Web Services, Google Cloud Platform, etc. Sind sogenannte Cloud Anbieter. Diese bieten uns die Möglichkeit unsere App auf ihre Server zu deployen. Das sind natürlich auch physische Server aber wir müssen uns nie wieder Gedanken um diese Server machen denn das übernimmt komplett der Cloud Anbieter. Dieser kümmert sich um die Provisionierung, Verwaltung und Skalierung der Infrastruktur.
Was macht Vapor
Wie weiter oben bereits erwähnt erstellt und konfiguriert Vapor für uns verschiedene Services bei AWS. Dazu zählen unter anderem:
- Drei Lambdas: HTTP, CLI, Quere
- Eine Datenbank in Form einer RDS-Instanz
- Ein S3-Bucket
- SQS
- Ein API Gateway
- Caches
Außerdem bietet Vapor eine unbegrenzte Anzahl an Teams, Projekten, Usern und Deployments ohne extra Kosten, handling von Environment Variablen und Secrets sowie Metriken und Einsicht in Logs. Wie bereits erwähnt erstellt Vapor eine Datenbank für uns, erstellt dabei automatisch Backups und lässt uns die Datenbank zu jedem Zeitpunkt in den letzten 3 Tagen (der Defaultwert) wiederherstellen.
Das alles macht Vapor anhand einer einfachen Config File namens vapor.yml
id: 1
name: my-vapor-app
environments:
production:
domain: "my-vapor-app.com"
database: my-vapor-app
storage: my-app-storage
build:
- 'composer install --no-dev --classmap-authoritative'
- 'php artisan config:cache'
deploy:
- 'php artisan migrate --force'
staging:
etc.
Mit dieser Config würde Vapor zusätzlich zu den Lambdas, dem API-Gateway und dem SQS noch eine Datenbank und ein S3-Bucket erstellen. Außerdem würden vor jedem deployment noch die sogenannten "Build steps" durchlaufen. Diese werden Lokal bzw. in der CI ausgeführt. Die "Deploy steps" hingegen werden bei AWS ausgeführt.
Kosten
Laravel Vapor hat zwei verschiedene Kostenmodelle ein monatliches für 39$ und ein jährliches für 399$. Diese beinhalten alle Funktionen und Services die Vapor bietet. Die Kosten von AWS sind dabei nicht enthalten.
Ich möchte mehr über Laravel Vapor erfahren
Wenn du mehr über Laravel Vapor erfahren möchtest und es mal in Aktion sehen möchtest, kannst du dich gerne bei uns melden. Außerdem kann ich dir empfehlen auf dem YouTube-Kanal von Laravel vorbeizuschauen. Dort haben sie eine Playlist "Learn Laravel Vapor". In weiteren Artikeln werden wir noch darüber sprechen wie wir Vapor nutzen und ein paar Tipps & Tricks verraten.