As I mentioned in another chapter of the book, deployment of the code is a pretty complicated process – actually, not only in Laravel, in any modern robust projects. So, to make it easier – Laravel creator Taylor Otwell has built some additional tools to make it easier.
If you or your developers don’t like to work with command-line environment too much, Laravel Forge is a system where you can log in and manage your servers visually – create a new server, add some deployment scripts and click “Deploy Now” button.
That’s only the surface – there is much more functionality in Forge, but to have a basic understanding – it’s used to manage servers without Terminal or Command line interaction. Especially useful if you have more than one project and need to perform multiple operations with them.
Envoyer is used for deployment with so-called “Zero Downtime”. You see, the whole deployment process takes time: from the start of the process, it might take a few minutes to get the latest code, run database migration script, download new versions of packages etc. So usually, while it’s in progress, the website itself is either not working at all, or shows “maintenance” page, if configured.
But to avoid downtime in the first place, you have Envoyer – it does the “magic” by deploying new changes to a separate folder, performing all those operations there, and then just re-pointing your website to that new folder. Again, especially useful if you handle more than one project/server, or if downtime of your website is really expensive with every minute.
This one is not from Laravel family – New Relic is a tool to monitor your servers and application performance. I really recommend it for those cases where you need to quickly see the server load percentage, define the slow pages/functions easily, see some charts for the last hours/days/weeks.
Though not created by Laravel creators, New Relic is quite conveniently integrated into Laravel projects – so in New Relic dashboard you can see Laravel URLs, analyze them and make the conclusions you need to optimize performance.
There are actually much more tools available for deployment and server performance, but I’ve mentioned the main ones that are used widely. Anything you would add here?
– – – – – –
Want to read the full e-book for free? Go to LaravelForClients.com