Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano....

30
[email protected] / @david_gil_biko2 #DrupalcampSpain2015 Desplegando drupal con capistrano

Transcript of Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano....

Page 1: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

[email protected] / @david_gil_biko2 #DrupalcampSpain2015

Desplegando drupal con capistrano

Page 2: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Somos 60 personas

Más de 18 años de experiencia

aquí  es  donde  trabajo  

Estamos especializados en negocio digital  Creamos relaciones a largo plazo

Page 3: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

aquí  es  donde  trabajamos  

Podemos presumir de trabajar para y con…

Page 4: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

www.museoreinasofia.es

MUSEO REINA SOFÍA

Page 5: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  Museo reina sofía

www.selfbank.es

Selfbank.es

Page 6: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

www.internetacademi.com

Internetacademi.com

Page 7: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

¿Cómo  desplegais  ahora  mismo?  •  FTP, SFTP, SCP •  SSH + GIT •  Scripts de shell • Aegir • Drush • Chef, Ansible, …

Page 8: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

¿Problemas?  •  Normalmente demasiados procesos

manuales en un despliegue – backup db – Actualizamos el código – updatedb – clear caches

•  ¡No te olvides nada!

Page 9: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

<n> frontales con auto-escalado + servers varnish + instancia de control

¿Lo  complicamos  más?    

 Nuestro  último  proyecto:  

Page 10: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Llamemos  al  equipo  A  

+ +

drush y features

Page 11: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  Capistrano es una herramienta de desarrollo para desplegar aplicaciones web.

•  Normalmente se instala en el equipo de los desarrolladores.

•  Despliega el código desde un control de versiones (GIT) a uno o más servidores.

http://capistranorb.com

Page 12: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  Ruby! •  Creada para desplegar aplicaciones RoR •  Ahora ya es Cross-platform, con recetas

para multitud de frameworks •  Requiere una estructura de carpetas

“especial” en los servidores

http://capistranorb.com

Page 13: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Estructura  del  docroot

•  docroot de apache apunta a current •  symlinks para ficheros compartidos

entre releases (files y settings).

Page 14: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

¿cómo  funciona?  •  En los servidores no hay que instalar nada •  Capistrano ejecuta comandos remotos en los

servidores sobre ssh •  > cap deploy

Page 15: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Deploy  flow   SSH  al  server  

Checkout  revision  de  GIT  

Copia  del  código  a  releases/;mestamp  

Se  añaden  los  symlinks  de  shared  a  la  release  

Se  actualiza  el  current  symlink  

Page 16: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  Extendemos el comportamiento por defecto de capistrano con hooks

Deploy  flow:  hooks

Page 17: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  cap deploy:rollback •  Deja el symlink “current” en la realese anterior (es

interactivo) •  Ojito la BD •  Para obtener listado completo de comandos:

–  cap -T

La  cagaste  Burt  Lancaster

Page 18: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Drupal  deploy  flow  

Backup  DB  

Checkout  revision  de  GIT  

Se  añaden  los  symlinks  de  files  y  seCngs  

drush  updb  drush  fra  -­‐-­‐force  

drush  cc  all  Tag  GIT  

Page 19: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Una  ejecución  completa

Page 20: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Una  ejecución  completa

Page 21: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Talk  is  cheap show  me  the  code!

Configuración general en deploy.rb

Page 22: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Multi-­stage  •  Podemos definir diferentes entornos de despliegue •  Normalmente configuramos las IPs de los servers,

rama de GIT, diferente docroot, … •  > cap <entorno> deploy

Page 23: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Server  roles  •  En entornos multiservidor algunos servidores son

diferentes: db, master, slave, etc…

Page 24: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Server  roles:  ejecución  deploy  

Page 25: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Tasks  para  Drupal:  build  

Page 26: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Tasks  para  Drupal:  drush  

Page 27: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Tasks  para  Drupal:  cache  

Page 28: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

Tasks  para  Drupal:  rsync  

Page 29: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

•  http://capistranorb.com •  Mis recetas:

•  https://github.com/davidgil/capistrano-drupal •  Basadas en:

•  https://github.com/mordonez/capistranorb-drupal •  https://github.com/generoi/capistrano-tasks

•  Lo mismo con Ansible •  http://blog.versioneye.com/2014/09/24/rebuilding-capistrano-like-

deployment-with-ansible/

•  GIT branching model •  http://nvie.com/posts/a-successful-git-branching-model/

Referencias  

Page 30: Desplegando drupal con capistrano - DrupalCamp Spain 2015 · Desplegando drupal con capistrano. Somos 60 personas Más de 18 años de experiencia aquí es donde trabajo Estamos especializados

¡Muchas  gracias!   David gil

[email protected]

http://www.biko2.com

@david_gil_biko2