Laravel Vapor, serverless hosting service

Advertisements

What is Laravel Vapor?

Laravel Vapor is a serverless deployment platform for Laravel, powered by AWS. You can launch your Laravel infrastructure on Vapor with very easily and seamlessly. It provides On-demand auto-scaling with zero server maintenance.

Vapor is can handle more than 5000 users with 2312 requests per second and still getting 12ms request times.

Advertisements

What is serverless?

Serverless is a way of providing backend services on as-used requirements. Serverless architecture empowers the developer to deploy code without the bother of worrying about the underlying infrastructure. An organisation that makes backend services from a serverless platform is charged based on their computation and do not have to reserve and pay for a set amount of bandwidth or quantity of servers, as the service is auto-scaling. Note that although termed serverless, physical servers are still worked but developers do not require to be aware of them.

How much does Vapor cost?

Laravel Vapor has two pricing plan monthly and yearly with Unlimited projects and Unlimited deployments.

You have to pay extra cost for AWS services which is not included in Vapor plan.

Laravel Vapor, serverless hosting service 1
Vapor Cost

What does Vapor do?

Projects

Respectively project has various environments, recording recent deployments for each environment.

Each .env prepares its individual vanity URL. E.g. https://snowy-hurricane-12349834327854.vapor.build/ to view your original app.

Staging domains receive no-index header so they’re not indexed.

Pushing code to Vapor

Vapor has a command-line tool which can deploy your code directly to the production server from your project folder.

You can upload your assets directly to Cloudfront and kicks off the application build.

Vapor deployment is super easy and you can easily rollback from the UI dashboard.

Config

Set different config for each environment.

vapor.yaml

id: 4
name: vapor-laracon
environments:
    production:
        database: laracon-deb
        cache: laracon-cache
        domain: scenery.io
        storage: laracon-us-2019-storage
        build:
            - `composer install --no-dev --classmap-authoritative`
            - `php artisan event:cache`
        deploy:
            - `php artisan migrate --force`
    staging:
        etc.

Maintenance mode

Vapor gives you UI based enable/disable maintenance button which is super easy for the developers. You can still access the full app from your vanity URL to keep developing and testing on it while your production app is in maintenance mode.

Logs

AWS Cloud Watch is very difficult to analyze log but vapor provides you logs with very user-friendly UI based log dashboard.

CI

You can deploy your code from your CI pipeline. In composer.json you have to add laravel/vapor-cli, so you can run Vapor from your CI directly.

Configure your CI deploy:

php vendor/bin/vapor deploy production

File Uploads

Upload files directly to S3 using pre-signed URLs which is complected with another way. Vapor makes it super easy.

Vapor.store(file, {
    progress: currentProgress => {
        this.uploadProgress = Math.round(currentProgress * 100);
    }
}).then(storedFile => {
    // storedFile.uuid, .key, .bucket, .extension
});

Email

If your domain is managing by Vapor then it will automatically set DKIM etc.

On-demand auto-scaling with zero server maintenance.

Databases

Vapor isn’t just about deployments. Create, manage, scale, and even restore your traditional and serverless databases directly from Vapor’s intuitive dashboard.

Caches

Need data fast? Vapor makes it a breeze to create and manage ElastiCache Redis clusters. Need even more speed? Let Vapor scale your cache while you kick back and relax.

Advertisements