Transcript
Page 1: Drush deploy presentation by Goruachev Mikhail

Drush deploy Goruachev Mikhail

Page 2: Drush deploy presentation by 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

Page 3: Drush deploy presentation by Goruachev Mikhail

Analogs

Capistrano

Fabric

Page 4: Drush deploy presentation by Goruachev Mikhail

Why use Drush deploy? WHY?

Page 5: Drush deploy presentation by Goruachev Mikhail

KISS**keep it short and simple

Page 6: Drush deploy presentation by Goruachev Mikhail

REQUIREMENTS- Drush

- php 5.3

- git

Page 7: Drush deploy presentation by Goruachev Mikhail

Installing drush-deploycd ~/drushgit clone [email protected]:AmazeeLabs/drush_deploy.gitdrush cc drush drush

Page 8: Drush deploy presentation by Goruachev Mikhail

Are you ready, drupal?!

Page 9: Drush deploy presentation by Goruachev Mikhail

aliases.drushrc.php

Page 10: Drush deploy presentation by Goruachev Mikhail

What about multi server Deployments?

https://github.com/drush-ops/drush/blob/master/examples/example.aliases.drushrc.php

Page 11: Drush deploy presentation by Goruachev Mikhail

deploy.drushrc.php

https://github.com/drush-ops/drush/blob/master/examples/example.drushrc.php

Page 12: Drush deploy presentation by Goruachev Mikhail

Filesystem Structure

drush deploy-setup @web1

Page 13: Drush deploy presentation by Goruachev Mikhail

Filesystem StructureCurrent - Is a symlink to the latest release directory;

Releases - Is a releases directory;

Shared- (Git Cache / Configuration);

httpdocs- Webroot (symlink to current);

Page 14: Drush deploy presentation by Goruachev Mikhail

TASKS

Page 15: Drush deploy presentation by Goruachev Mikhail

Tasks● Before or after moving to new version

● On one or all servers

● Any console commands

Page 16: Drush deploy presentation by Goruachev Mikhail

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

Page 17: Drush deploy presentation by Goruachev Mikhail

drush deploy-rollback @web1● relinks the current directory with the previos release

● removes the faulty release

Page 18: Drush deploy presentation by Goruachev Mikhail

Example

Page 19: Drush deploy presentation by Goruachev Mikhail

local files

Page 20: Drush deploy presentation by Goruachev Mikhail

Remote host

Before After

Page 21: Drush deploy presentation by Goruachev Mikhail

Some questions?

Goruachev MikhailEmail: [email protected]