Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
david.gil@biko2.com 
@david_gil_biko2 
Desplegando drupal con 
capistrano
¿Cómo desplegais ahora mismo? 
• FTP, SFTP, SCP 
• SSH + GIT 
• Aegir 
• Drush
¿Problemas? 
• Normalmente demasiados procesos 
manuales en un despliegue 
– backup db 
– Actualizamos el código 
– update...
¿Lo complicamos más? 
Nuestro último proyecto: 
<n> frontales con auto-escalado + servers varnish 
+ instancia de control
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 ...
• 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 ...
¿cómo funciona? 
• En los servidores no hay que instalar nada 
• Capistrano ejecuta comandos remotos en los 
servidores so...
Deploy flow SSH 
al 
server 
Checkout 
revision 
de 
GIT 
Copia 
del 
código 
a 
releases/;mestamp 
Se 
añaden 
los 
symli...
Deploy flow: hooks 
• Extendemos el comportamiento por defecto de 
capistrano con hooks
La cagaste Burt Lancaster 
• cap deploy:rollback 
• Deja el symlink “current” en la realese anterior (es 
interactivo) 
• ...
Drupal 
deploy flow 
Backup 
DB 
Checkout 
revision 
de 
GIT 
Se 
añaden 
los 
symlinks 
de 
files 
y 
seCngs 
drush 
updb...
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, 
ram...
Server roles 
• En entornos multiservidor algunos servidores son 
diferentes: db, master, slave, etc…
Tasks para Drupal: build 
https://github.com/davidgil/capistrano-drupal
Tasks para Drupal: drush 
https://github.com/davidgil/capistrano-drupal
Tasks para Drupal: cache 
https://github.com/davidgil/capistrano-drupal
Tasks para Drupal: rsync
david.gil@biko2.com 
@david_gil_biko2 
¿preguntas? 
Desplegando drupal con 
capistrano
Nächste SlideShare
Wird geladen in …5
×

Desplegando Drupal con Capistrano

749 Aufrufe

Veröffentlicht am

Sesión del DrupalDay Bilbao 2014 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!.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Desplegando Drupal con Capistrano

  1. 1. david.gil@biko2.com @david_gil_biko2 Desplegando drupal con capistrano
  2. 2. ¿Cómo desplegais ahora mismo? • FTP, SFTP, SCP • SSH + GIT • Aegir • Drush
  3. 3. ¿Problemas? • Normalmente demasiados procesos manuales en un despliegue – backup db – Actualizamos el código – updatedb – clear caches • ¡No te olvides nada!
  4. 4. ¿Lo complicamos más? Nuestro último proyecto: <n> frontales con auto-escalado + servers varnish + instancia de control
  5. 5. Llamemos al equipo A + + drush y features
  6. 6. • 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
  7. 7. • 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
  8. 8. • 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
  9. 9. Estructura del docroot • docroot de apache apunta a current • symlinks para ficheros compartidos entre releases (files y settings).
  10. 10. ¿cómo funciona? • En los servidores no hay que instalar nada • Capistrano ejecuta comandos remotos en los servidores sobre ssh • > cap deploy
  11. 11. 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
  12. 12. Deploy flow: hooks • Extendemos el comportamiento por defecto de capistrano con hooks
  13. 13. La cagaste Burt Lancaster • cap deploy:rollback • Deja el symlink “current” en la realese anterior (es interactivo) • Ojito la BD • Para obtener listado completo de comandos: – cap -T
  14. 14. Drupal deploy flow Backup DB Checkout revision de GIT Se añaden los symlinks de files y seCngs drush updb drush fra -­‐-­‐force Tag GIT drush cc all
  15. 15. Una ejecución completa
  16. 16. Una ejecución completa
  17. 17. Talk is cheap show me the code! Configuración general en deploy.rb
  18. 18. Multi-­stage • Podemos definir diferentes entornos de despliegue • Normalmente configuramos las IPs de los servers, rama de GIT, diferente docroot, … • > cap <entorno> deploy
  19. 19. Server roles • En entornos multiservidor algunos servidores son diferentes: db, master, slave, etc…
  20. 20. Tasks para Drupal: build https://github.com/davidgil/capistrano-drupal
  21. 21. Tasks para Drupal: drush https://github.com/davidgil/capistrano-drupal
  22. 22. Tasks para Drupal: cache https://github.com/davidgil/capistrano-drupal
  23. 23. Tasks para Drupal: rsync
  24. 24. david.gil@biko2.com @david_gil_biko2 ¿preguntas? Desplegando drupal con capistrano

×