Infraestructura agil

1,703 views
1,512 views

Published on

Mis láminas del Agile Tour Merida 2011

Published in: Self Improvement
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,703
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
40
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Infraestructura agil

  1. 1. Infraestructura deDesarrollo ÁgilComo apoyarnos en herramientas librespara construir software aplicando Scrum +XP.Ing. Adrian MoyaMérida, Octubre de 2011 1 de 52
  2. 2. Agenda1. Introducción.2. Infraestructura.3. Construcción.4. Utilización.5. Conclusiones. 2 de 52
  3. 3. Infraestructura de Desarrollo Ágil En casa de herrero, cuchillo de palo 3 de 52
  4. 4. Infraestructura Ágil ¿Qué necesitamos? 4 de 52
  5. 5. Prácticas y requerimientosSCRUM: Planificar y Gestionar el proyecto Llevar control de las historias de usuario. Planificar las entregas en iteraciones. Medir el avance del equipo.XP: Prácticas de Desarrollo Buena comunicación del equipo. Control de versiones de código. Integrar código continuamente. Pruebas unitarias de código. 5 de 52
  6. 6. Infraestructura Ágil Servidor de Servidor de Servidor Controlador Servidor de Scrum Información de Versiones Integración Continua Servidor de Estaciones de trabajo Desarrollo Servidor de Calidad 6 de 52
  7. 7. Servidor de Scrum 7 de 52
  8. 8. Servidor de Scrum Herramienta que lleva el control del proceso Scrum. Fácil instalación y configuración. Backlog de producto automatizado. Planificación de Entregas e Iteraciones. Tablero de actividad del proyecto. Gráficas de Burndown, Velocidad entre otras. 8 de 52
  9. 9. Servidor de Información DokuWiki 9 de 52
  10. 10. Servidor de Información DokuWiki Wiki sencillo de usar. Basado en archivos de texto (no requiere DB). Sintaxis simple pero poderosa. Rápido. Tematizable Extensible vía plugins. 10 de 52
  11. 11. Servidor Controlador de Versiones 11 de 52
  12. 12. Servidor Controlador de Versiones Sistema de control de versiones centralizado. Fácil uso y excelente documentación. Soporte de ramas y etiquetas. Soporte de archivos binarios. Cliente Tortoise (integración en Windows) y RabitVCS (Linux). Puede ser servido a través de apache. 12 de 52
  13. 13. Servidor de integración continua 13 de 52
  14. 14. Servidor de integración continua Herramienta que monitorea la ejecución de trabajos repetitivos. Construcción y prueba de proyectos de manera continua. Fácil instalación y configuración. Soporta múltiples control de versiones. Notificaciones por RSS/Correo. Extensible vía plugins. 14 de 52
  15. 15. Servidores de Desarrollo y Calidad 15 de 52
  16. 16. Infraestructura Ágil DokuWiki Servidor de Servidor de Servidor Controlador Servidor de Scrum Información de Versiones Integración Continua Servidor de Estaciones de trabajo Desarrollo Servidor de Calidad 16 de 52
  17. 17. Implementando la Infraestructura ¿Cómo instalo todo esto? 17 de 52
  18. 18. Implementando la Infraestructura Librería de aplicaciones que incluye lo mejor del software libre en un formato empaquetado y listo para usar. Servidores basados en Ubuntu 10.04 LTS. Optimizados para facilidad de uso y despliegue rápido (sólo minutos). Instalables en servidores físicos, máquinas virtuales o en la nube. 18 de 52
  19. 19. Implementando la InfraestructuraServidor de Scrum Imagen Comunitaria. Desarrollada porIcescrum: Adrian Moya.Servidor de Información Imagen Oficial DokuwikiDokuwiki: Imagen OficialServidor de Control Versiones Source ControlSubversion: Svn/Git/Bzr/HgServidor de Int. Continua Imagen Comunitaria. Desarrollada porJenkins: Adrian Moya. 19 de 52
  20. 20. Implementando la InfraestructuraServidor de Desarrollo / Calidad: LAMP/LAPP Tomcat PostgreSQL MySQL 20 de 52
  21. 21. Implementando la InfraestructuraConsolidar servidores virtualizando: Intel Core2Quad 4GB RAM 320GB Disco SO: Proxmox-VE 15 Servidores OVZ (TODA LA INFRAESTRUCTURA+)de 52 21
  22. 22. Utilizando la Infraestructura 22 de 52
  23. 23. Utilizando - Icescrum 1. Crear el proyecto y asignar/crear el equipo. 23 de 52
  24. 24. Utilizando - Icescrum2. Construir las historias y características en elárea de ensayo. 24 de 52
  25. 25. Utilizando - Icescrum3. Pasar las historias listas (aceptarlas) a la Pila delproducto y priorizarlas con el Product Owner. 25 de 52
  26. 26. Utilizando - Icescrum4. Estimar las historias con el equipo (Pockerplanning). 26 de 52
  27. 27. Utilizando - Icescrum5. Planificar historias en el sprint. 27 de 52
  28. 28. Utilizando - Icescrum6. Dividir historias en tareas y estimar en horas. 28 de 52
  29. 29. Utilizando - Icescrum7. Iniciar la iteración. El equipo toma las tareas y las pone en progreso. A medida que trabajaactualiza las horas restantes. 29 de 52
  30. 30. Utilizando - Icescrum8. Monitoriar el progreso de la iteración. 30 de 52
  31. 31. Utilizando - Icescrum9. Fin de la iteración - Retrospectiva 31 de 52
  32. 32. Utilizando - DokuwikiInformación general:1. Información de contacto de los miembros delequipo.2. Estándares de trabajo. 32 de 52
  33. 33. Utilizando - DokuwikiInformación por proyecto:1. Configuraciones del repositorio de código.2. Documentos/Información que respalden lashistorias.3. Recursos: Enlaces a Servidor IC, Ambientes deDesarrollo y Calidad. 33 de 52
  34. 34. Utilizando - Dokuwiki 34 de 52
  35. 35. Utilizando - SVNMantener el código organizado de acuerdo alestándar:Trunk / Tags / Branches 35 de 52
  36. 36. Utilizando - JenkinsComenzamos instalando plugins:Control de versiones: Subversion, GitHerramienta de construcción: Symfony (php),Grails (Groovy), Rails (Ruby), Django (Python),JavaAnálisis: Análisis de Código Estático, DRY,Buenas prácticas, etc.Post-construcción: Construir reportes, realizardespliegues.Notificaciones: Email, etc. 36 de 52
  37. 37. Utilizando - Jenkins1. Crear el proyecto (Generalmente estilo libre) 37 de 52
  38. 38. Utilizando - Jenkins2. Configurar el repositorio de codigo (trunk). 38 de 52
  39. 39. Utilizando - Jenkins3. Configurar el disparador de ejecución. 39 de 52
  40. 40. Utilizando - Jenkins4. Configurar pasos de ejecución.4.1. Pruebas unitarias/funcionales. 40 de 52
  41. 41. Utilizando - Jenkins4.2. Análisis de código estático y reportes. 41 de 52
  42. 42. Utilizando - Jenkins4.3. Construcción de la aplicación 42 de 52
  43. 43. Utilizando - Jenkins5. Desplegar en ambiente de desarrollo. 43 de 52
  44. 44. Utilizando - Jenkins6. Notificaciones: 44 de 52
  45. 45. Utilizando - JenkinsMonitorear las construcciones: 45 de 52
  46. 46. Utilizando - JenkinsAlgunas recomendaciones de trabajo:● Configurar límites de “violaciones” a las reglas aceptables.● Si el build se rompe, hay que repararlo de inmediato. 46 de 52
  47. 47. Utilizando – DEV y QA El servidor a utilizar dependerá del tipo de aplicación que estemos construyendo. En el servidor de desarrollo siempre estará disponible la última versión de la aplicación (desplegada por el Servidor de IC desde trunk). En el servidor de calidad estarán las versiones al final de una iteración (sprint). El servidor de calidad debe ser una COPIA FIEL del ambiente de producción. 47 de 52
  48. 48. Conclusiones● Debemos apoyarnos en un ecosistema de herramientas que faciliten nuestro trabajo y nos permitan atender rápidamente cualquier eventualidad que pueda presentarse.● El tiempo invertido en montar la infraestructura se ve compensando enormemente con las ventajas obtenidas de automatizar nuestro proceso de desarrollo ágil.● Debemos aprender a utilizar las herramientas, pues de lo contrario el resultado será el mismo que como si no estuviéramos utilizándolas. 48 de 52
  49. 49. Recomendaciones● Implementar una herramienta y/o práctica a la vez.● Para el manejo de incidencias, se usa el Area de Ensayo de Icescrum, pero podría incorporarse una herramienta de manejo de incidencias si fuera necesario (ChiliProject).● Para el manejo centralizado de usuarios y claves, se ha pensado agregar un servidor de autenticación (OpenLDAP). 49 de 52
  50. 50. RecursosIcescrum – http://www.icescrum.org/Dokuwiki – http://www.dokuwiki.org/Subversion – http://subversion.apache.org/Jenkins – http://www.jenkins-ci.org/Turnkeylinux – http://www.turnkeylinux.org/ 50 de 52
  51. 51. Preguntas 51 de 52
  52. 52. Gracias por su atención Para comentarios/preguntas, pueden hacerlo a adrianmoya@gmail.com Twitter - @adrianmoya Blog – http://www.adrianmoya.com 52 de 52

×