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.
david.gil@biko2.com / @david_gil_biko2
 #DrupalcampSpain2015
Desplegando drupal con
capistrano
Somos 60 personas
Más de 18 años de experiencia
aquí  es  donde  trabajo  
Estamos especializados en negocio digital	
  
C...
aquí  es  donde  trabajamos  
Podemos presumir de trabajar para y con…
www.museoreinasofia.es
MUSEO REINA SOFÍA
•  Museo reina sofía
www.selfbank.es
Selfbank.es
www.internetacademi.com
Internetacademi.com
¿Cómo  desplegais  ahora  mismo?  
•  FTP, SFTP, SCP
•  SSH + GIT
•  Scripts de shell
•  Aegir
•  Drush
•  Chef, Ansible, …
¿Problemas?  
•  Normalmente demasiados procesos
manuales en un despliegue
– backup db
– Actualizamos el código
– updatedb...
<n> frontales con auto-escalado + servers varnish
+ instancia de control
¿Lo  complicamos  más?    
  
Nuestro  último  pr...
Llamemos  al  equipo  A  
+
+drush y features
•  Capistrano es una herramienta de
desarrollo para desplegar aplicaciones
web.
•  Normalmente se instala en el equipo de
...
•  Ruby!
•  Creada para desplegar aplicaciones RoR
•  Ahora ya es Cross-platform, con recetas
para multitud de frameworks
...
Estructura  del  docroot
•  docroot de apache apunta a current
•  symlinks para ficheros compartidos
entre releases (files y...
¿cómo  funciona?  
•  En los servidores no hay que instalar nada
•  Capistrano ejecuta comandos remotos en los
servidores ...
Deploy  flow   SSH	
  al	
  server	
  
Checkout	
  revision	
  de	
  GIT	
  
Copia	
  del	
  código	
  a	
  
releases/;mes...
•  Extendemos el comportamiento por defecto de
capistrano con hooks
Deploy  flow:  hooks
•  cap deploy:rollback
•  Deja el symlink “current” en la realese anterior (es
interactivo)
•  Ojito la BD
•  Para obtener...
Drupal  
deploy  flow  
Backup	
  DB	
  
Checkout	
  revision	
  de	
  GIT	
  
Se	
  añaden	
  los	
  symlinks	
  de	
  
fi...
Una  ejecución  completa
Una  ejecución  completa
Talk  is  cheap
show  me  the  code!
Configuración
general en
deploy.rb
Multi-­stage  
•  Podemos definir diferentes entornos de despliegue
•  Normalmente configuramos las IPs de los servers,
rama...
Server  roles  
•  En entornos multiservidor algunos servidores son
diferentes: db, master, slave, etc…
Server  roles:  ejecución  deploy  
Tasks  para  Drupal:  build  
Tasks  para  Drupal:  drush  
Tasks  para  Drupal:  cache  
Tasks  para  Drupal:  rsync  
•  http://capistranorb.com
•  Mis recetas:
•  https://github.com/davidgil/capistrano-drupal
•  Basadas en:
•  https://gith...
¡Muchas  gracias!  
David gil
david.gil@biko2.com
http://www.biko2.com
@david_gil_biko2
Upcoming SlideShare
Loading in …5
×

Capistrano drupalcamp-jerez-2015

947 views

Published on

Sesión de la DrupalCamp Jerez 2015 sobre Drupal + Capistrano.

En esta sesión presentaremos de forma práctica como estamos realizando nuestros despliegues de proyectos Drupal en entornos clusterizados en Amazon AWS usando una combinación de Capistrano 3 (http://capistranorb.com/) y una política de ramas en GIT.

La sesión combinará una parte teórica con una parte de demo real. El objetivo es que en media hora se tengan los conceptos clave para que a partir de ahora os olvidéis de la subida a producción usando sFTP, scripts de shell o cualquier medio no automatizado. Además “destriparemos” las recetas ruby que estamos usando y las publicaremos para vuestro uso y disfrute!.

Published in: Software
  • Be the first to comment

Capistrano drupalcamp-jerez-2015

  1. 1. david.gil@biko2.com / @david_gil_biko2 #DrupalcampSpain2015 Desplegando drupal con capistrano
  2. 2. 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
  3. 3. aquí  es  donde  trabajamos   Podemos presumir de trabajar para y con…
  4. 4. www.museoreinasofia.es MUSEO REINA SOFÍA
  5. 5. •  Museo reina sofía www.selfbank.es Selfbank.es
  6. 6. www.internetacademi.com Internetacademi.com
  7. 7. ¿Cómo  desplegais  ahora  mismo?   •  FTP, SFTP, SCP •  SSH + GIT •  Scripts de shell •  Aegir •  Drush •  Chef, Ansible, …
  8. 8. ¿Problemas?   •  Normalmente demasiados procesos manuales en un despliegue – backup db – Actualizamos el código – updatedb – clear caches •  ¡No te olvides nada!
  9. 9. <n> frontales con auto-escalado + servers varnish + instancia de control ¿Lo  complicamos  más?       Nuestro  último  proyecto:  
  10. 10. Llamemos  al  equipo  A   + +drush y features
  11. 11. •  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
  12. 12. •  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
  13. 13. Estructura  del  docroot •  docroot de apache apunta a current •  symlinks para ficheros compartidos entre releases (files y settings).
  14. 14. ¿cómo  funciona?   •  En los servidores no hay que instalar nada •  Capistrano ejecuta comandos remotos en los servidores sobre ssh •  > cap deploy
  15. 15. 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  
  16. 16. •  Extendemos el comportamiento por defecto de capistrano con hooks Deploy  flow:  hooks
  17. 17. •  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
  18. 18. 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  
  19. 19. Una  ejecución  completa
  20. 20. Una  ejecución  completa
  21. 21. Talk  is  cheap show  me  the  code! Configuración general en deploy.rb
  22. 22. Multi-­stage   •  Podemos definir diferentes entornos de despliegue •  Normalmente configuramos las IPs de los servers, rama de GIT, diferente docroot, … •  > cap <entorno> deploy
  23. 23. Server  roles   •  En entornos multiservidor algunos servidores son diferentes: db, master, slave, etc…
  24. 24. Server  roles:  ejecución  deploy  
  25. 25. Tasks  para  Drupal:  build  
  26. 26. Tasks  para  Drupal:  drush  
  27. 27. Tasks  para  Drupal:  cache  
  28. 28. Tasks  para  Drupal:  rsync  
  29. 29. •  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  
  30. 30. ¡Muchas  gracias!   David gil david.gil@biko2.com http://www.biko2.com @david_gil_biko2

×