Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Zero downtime deployments
with Laravel Envoy
Presented by Nguyen Thanh Tung D
About me
Nguyen Thanh Tung D
PHP Developer
Division 1 - Group 2
Agenda
❖ Deployment Fundamentals
➢ Deployment definition
➢ Deployment best practices
➢ Deployment tools
➢ Zero-downtime de...
Deployment Fundamentals
“Software deployment is all of the activities that make a
software system available for use.”
(htt...
Deployment Fundamentals
❖ Different ways:
➢ FTP
➢ Version Control Systems (Git, SVN, …)
and SSH
■ Webhook feature
➢ Third ...
Deployment Fundamentals
❖ Best practices
➢ Workflow: Development, Staging and Production
environment.
➢ Deploy to Producti...
Deployment Fundamentals
❖ Deployment tools:
➢ Capistrano
➢ Rocketeer
➢ Ansible
➢ Asistrano
➢ Envoy
➢ ...
Deployment Fundamentals
❖ Zero-downtime strategy
|-- deploy
|-- project_envoy
|-- current -> /home/deploy/project_envoy/re...
Introduction to Laravel Envoy
❖About Envoy
➢ Defining common tasks run on Remote Server.
➢ Using Blade style syntax.
➢ Onl...
Introduction to Laravel Envoy
❖Writing tasks
➢ All tasks should be defined in Envoy.blade.php file in root folder.
➢ Setup...
Zero-downtime deployment with Laravel Envoy
❖Reference: https://github.com/FramgiaCD/envoy-config
❖Three main stories:
➢ S...
Zero-downtime deployment with Laravel Envoy
DEMO
Message from Presenter
❖ Always think about the ways to make your life easier.
❖ Philosophy problem.
❖ Human readable.
Q&A
Zero downtime deployments with laravel envoy
Upcoming SlideShare
Loading in …5
×

Zero downtime deployments with laravel envoy

1,142 views

Published on

- Software deployment
- Zero-downtime deployment strategy
- Introduction to Laravel Envoy
- Rocketeer-like Envoy script for zero-downtime deployment

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Zero downtime deployments with laravel envoy

  1. 1. Zero downtime deployments with Laravel Envoy Presented by Nguyen Thanh Tung D
  2. 2. About me Nguyen Thanh Tung D PHP Developer Division 1 - Group 2
  3. 3. Agenda ❖ Deployment Fundamentals ➢ Deployment definition ➢ Deployment best practices ➢ Deployment tools ➢ Zero-downtime deployment ❖ Introduction to Laravel Envoy ➢ Definition ➢ Syntax
  4. 4. Deployment Fundamentals “Software deployment is all of the activities that make a software system available for use.” (https://en.wikipedia.org/wiki/Software_deployment)
  5. 5. Deployment Fundamentals ❖ Different ways: ➢ FTP ➢ Version Control Systems (Git, SVN, …) and SSH ■ Webhook feature ➢ Third party deployment web services (Beanstalk, Deploy, Bamboo, …) ➢ Command Line Interface (CLI) Tools (Capistrano, Ansible, rsync, …) ➢ PaaS - Platform as a Service (Heroku, AppFog, Pagoda Box, …)
  6. 6. Deployment Fundamentals ❖ Best practices ➢ Workflow: Development, Staging and Production environment. ➢ Deploy to Production at a scheduled time. ➢ Verify after finished. ➢ Rolling back strategy. ➢ Automatic deployments to Production? -> NO
  7. 7. Deployment Fundamentals ❖ Deployment tools: ➢ Capistrano ➢ Rocketeer ➢ Ansible ➢ Asistrano ➢ Envoy ➢ ...
  8. 8. Deployment Fundamentals ❖ Zero-downtime strategy |-- deploy |-- project_envoy |-- current -> /home/deploy/project_envoy/releases/20160923070018 |-- releases | |-- 20160923022158 | |-- 20160923024741 | |-- 20160923025123 | |-- 20160923030315 | |-- 20160923070018 | | |-- storage => /home/deploy/project_envoy/shared/storage | | |-- .env => /home/deploy/project_envoy/shared/.env |-- shared | |-- storage | |-- .env
  9. 9. Introduction to Laravel Envoy ❖About Envoy ➢ Defining common tasks run on Remote Server. ➢ Using Blade style syntax. ➢ Only support the Mac and Linux OS. ❖Installation ➢ Globally ■ composer global require "laravel/envoy=~1.0" ■ Use envoy command
  10. 10. Introduction to Laravel Envoy ❖Writing tasks ➢ All tasks should be defined in Envoy.blade.php file in root folder. ➢ Setup ➢ Variables ➢ Stories ➢ Multiple Servers ➢ Example: https://gist.github.com/gravitano/4a86e2de978c45aa2264 ❖Running tasks
  11. 11. Zero-downtime deployment with Laravel Envoy ❖Reference: https://github.com/FramgiaCD/envoy-config ❖Three main stories: ➢ Setup ➢ Deploy ➢ Rollback envoy run deploy --on=local,staging --branch=develop // OR envoy run deploy --on=production --branch=master envoy run rollback // OR envoy run rollback --rollback_version=20160923022158
  12. 12. Zero-downtime deployment with Laravel Envoy DEMO
  13. 13. Message from Presenter ❖ Always think about the ways to make your life easier. ❖ Philosophy problem. ❖ Human readable.
  14. 14. Q&A

×