Drush deploy 
Goruachev Mikhail
About drush-deploy 
● Drush deploy is a deployment framework built on Drush. 
● It is heavily influenced by Capistrano. 
Version control is not deployment tool
Analogs 
Capistrano 
Fabric
Why use Drush deploy? WHY?
KISS* 
*keep it short and simple
REQUIREMENTS 
- Drush 
- php 5.3 
- git
Installing drush-deploy 
cd ~/drush 
git clone git@github.com:AmazeeLabs/drush_deploy.git 
drush cc drush 
drush
Are you ready, drupal?!
aliases.drushrc.php
What about multi server Deployments? 
https://github.com/drush-ops/drush/blob/master/examples/example.aliases.drushrc.php
deploy.drushrc.php 
https://github.com/drush-ops/drush/blob/master/examples/example.drushrc.php
Filesystem Structure 
drush deploy-setup @web1
Filesystem Structure 
Current - Is a symlink to the 
latest release directory; 
Releases - Is a releases 
directory; 
Shared- (Git Cache / 
Configuration); 
httpdocs- Webroot (symlink 
to current);
TASKS
Tasks 
● Before or after moving to new version 
● On one or all servers 
● Any console commands
drush deploy @web1 
● updates your remote cache 
● initializes and updates git submodules 
● creates a new release directy 
● copies your current codebase to the release directory 
● links the ‚current‘ directory with your new deployed code 
● executes your tasks
drush deploy-rollback @web1 
● relinks the current directory with the previos release 
● removes the faulty release
Example
local files
Remote host 
Before After
Some questions? 
Goruachev Mikhail 
Email: Goruachev42@gmail.com

Drush deploy presentation by Goruachev Mikhail