DEPLOYMENTS Y EL CICLO DE
DESARROLLO EN DRUPAL
Nestor Mata Cuthbert
Senior Web Developer
Up And Running Software
Monday, April 23, 12
EL PROBLEMA
• Mas de 1 programador
• Mas de 1 servidor
• Mas de 1 ambiente
• Mas de una version
Monday, April 23, 12
EL PROBLEMA
• Integración
• Manejo de versiones
• Seguridad del código (ante perdidas, mantener historicos)
• Pruebas
• Puesta en producción
• Drupal tiene mucha configuracion y estructura en DB
Monday, April 23, 12
INTEGRACION DE CÓDIGO
MANEJO DE VERSIONES
• Perdida de horas de trabajo
• Versiones sobreescritas por otra persona o
uno mismo
• Accidentes
• Conflictos en lo implementado por diferentes personas del
equipo
• El enfoque que se utilizó no funcionó
Monday, April 23, 12
CONTROL DE VERSIONES
• No hay excusa, se debe hacer como regla
• Mantiene historicos de las modificaciones
• Hace sencillo volver a una versión anterior
• Comparar cambios que pudieron producir un problema
• Ingrar código de diferentes programadores
• Tener diferentes versiones en diferentes ambientes
• Crear esquema de aprovación por versiones
• Herramienta para proceso deployments
Monday, April 23, 12
CONTROL DE VERSIONES
• GIT
• SVN
• Otros
• Herramientas gratuitas
• Unfuddle (http://www.unfuddle.com)
Monday, April 23, 12
ESTRUCTURA CONTROL DE
VERSIONES
• No utilizar la raiz del código del sitio en la raiz del control de
versiones
• Posible estructura:
Monday, April 23, 12
DIRECTORIO FILES Y CACHE
• No utilice el directorio /files
en el directorio de configuracion
del sitio
• Y cree reglas de exclusion en
control de versiones
• O use links simbolicos hacia fuera del
directorio publico
Monday, April 23, 12
PASES A LOS SERVIDORES
Monday, April 23, 12
REGLAS
• Es necesario definir reglas en el equipo de trabajo
• No modificaciones directas al servidor
• Dias y horas para pases a producción
• Protocolos para pases de alta prioridad
• Protocolo de aprovacion y pase a producción
• Formato de comentario de commits
Monday, April 23, 12
PROTCOLO PASES A
PRODUCCIÓN
• En todo momento saber, en cada servidor: version,
timestamp, responable, que contiene y poder comparar
versiones
• Cada pase a producción, aprobado por responsable
• Efectuar respaldo antes del pase
• Protocolo de rollback
Monday, April 23, 12
UNIDADES DE PRUEBA
• Pruebas automaticas aplicables a una
unidad de código para corroborar que
cumple con lo esperado
• Es recomendable, aunque implica un cambio cultural en el
equipo de desarrollo
• TDD (Test Driven Development), aplaudido y criticado, es una
opción
• Reduce el riesgo de incrustar errores en algo que ya
es funcional
Monday, April 23, 12
DOCUMENTACIÓN
• Documentar al menos las cosas mas importantes
• Pasar las vacaciones sin ser llamado por emergencia
• Evitar llamar al que esta de vacaciones
• Entrar en crisis porque el unico que conocia se accidento o
renuncio
Monday, April 23, 12
DOCUMENTACION
• La información de los servidores
• Las claves (de forma segura)
• Los directorios importantes
• Los procedimientos de respaldo y restauración
• Las configuraciones
• Procedimientos importantes
• Etc
Monday, April 23, 12
DOCUMENTACION
• Se puede guardar parte de esta en el control de versiones
Monday, April 23, 12
ENFOQUES DE PASES DE
CODIGO Y ARCHIVOS
• Pull from server
• Push to server
• En combinacion con push o pull
• Enfoque con links simbolicos
• Un directorio nuevo para cada pase
Monday, April 23, 12
MANEJO DE
CONFIGURACIONES EN DB
• Si solo fuese código, seria relativamente sencillo
• Una vez que se ha puesto el sitio en producción se complica
el pase de configuraciones que existen en la base de datos
• No hay una solución sencilla y definitiva
Monday, April 23, 12
SOLUCIONES A
CONFIGURACION EN DB
• Update Hooks
• SQL Scripts
• Patterns
• Exportables
• Documentación de pasos manuales
• Database Diff
• Features
Monday, April 23, 12
FEATURES
• No se desarrollo como método para
efectuar pases a producción
• Forma de empaquetar funcionalidad instalable
• Por su concepto, puede ser utilizado para hacer deploy de
funcionalidad
• Convierte configuraciones a modulos en código
• Código se puede manejar control de versiones
Monday, April 23, 12
FEATURES
• Permite inspeccionar los cambios de configuración y
estructura
• Genera código organizado en modulos
• Esquema bastante fiable para pases
Monday, April 23, 12
HERRAMIENTAS PARA DEPLOY
• Aegir: Un administrador de sitios hecho en Drupal
• Capistrano: Herramienta hecha en Ruby que a travez de
recetas permite hacer un deployment
• Custom Scripts
Monday, April 23, 12
PREGUNTAS
Monday, April 23, 12
Unase a la división Drupal
Nestor Mata Cuthbert
Senior Web Developer
[email protected]
Twitter: @nestormata
Skype: nestor.mata
Monday, April 23, 12
Comentarios de: deployments y el ciclo de desarrollo en drupal (0)
No hay comentarios