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.

Integración y Entrega Continua con Visual Studio Online

1,225 views

Published on

Charla presentada en el DevDays 2014 (http://www.comunidadesmicrosoft.org/detalles-de-developer-days-2014) presentando la necesidad de Integración y Entrega Continua, y el como Visual Studio Online nos facilita el poder desplegar nuestros proyectos a la nube y a entornos on premise.
Cualquier duda consultarme en twitter via @fisica3

Published in: Technology
  • Be the first to comment

Integración y Entrega Continua con Visual Studio Online

  1. 1. Integración y Entrega Continua con Visual Studio Online Ernesto Cárdenas Cangahuala Senior Software Engineer| Avantica Technologies @fisica3
  2. 2. Presentación
  3. 3. Erase una vez… un desarrollador
  4. 4. En la Universidad • !En mi casa compilaba!
  5. 5. • ¿Qué has hecho ayer en todo el día? • …¡Subir el proyecto a preproducción! Durante el Desarrollo
  6. 6. • ¡La web de producción esta grabando en la BD de preproducción! • Este… ayer subí la corrección de un bug…. • ¡Además ahora las formulas dan valores incorrectos! … Mantenimiento
  7. 7. ¡Busquemos una salida!
  8. 8. Integración Continua • Martin Fowler:“La integración continua es una práctica de desarrollo de software en la cuál los miembros de un equipo integran su trabajo frecuentemente, como mínimo de forma diaria. Cada integración se verifica mediante una herramienta de construcción automática para detectar los errores de integración tan pronto como sea posible.”
  9. 9. ¿Qué perseguimos con la CI? • Tener un proyecto “sano y funcionando” siempre • Mayor confianza del equipo y de los stakeholders
  10. 10. ¿Y si damos un paso mas? •Valor es Software funcionando en manos del usuario ¿verdad? •Entonces nuestro siguiente objetivo es la Entrega Continua
  11. 11. ¿Qué lograremos con todo eso? • Tener un proyecto “sano y funcionando” siempre • Mayor confianza del equipo y de los stakeholders • No dedicar tiempo excesivo a la integración y despliegue • Mayor visibilidad y feedback continuo (QA) -> menos riesgos
  12. 12. Primero veamos los pilares
  13. 13. Versionado
  14. 14. Automatización
  15. 15. • Mantener un único repositorio de código fuente • Automatizar la construcción, validación y despliegue del proyecto de manera rápida (¡un clic!) • Que sea fácil probar la ultima versión en una replica del entorno de producción • Publicar qué está pasando (alertas!!!) Practicas para el día a día
  16. 16. Ok, ¿cómo lo logramos?
  17. 17. Empecemos con una visión inicial
  18. 18. Aterrizando la teoría
  19. 19. Team Foundation Build • Considerado parte del núcleo de la plataforma TFS/VSO • Los miembros del equipo pueden ser notificados del estado de la build, para prevenir checkin que no sean correctivos • MSBuild hace el “building”, Windows Workflow hace la orquestación • Extensible: Soporte Java, Maven, Ant vía TFS Build Extensions
  20. 20. Arquitectura de Team Foundation Build Application Tier Build Controller Build Agent Drop Server Build
  21. 21. Esto, traducido a VSO/Azure…
  22. 22. • Controlado por un archivo XAML Windows Workflow 4.0 • Tres plantillas de proceso “out-of-the-box” • DefaultTemplate (ahora con versión Git!) • Almacenado en TFS • Se pueden crear plantillas de build personalizadas Team Build Process
  23. 23. Demo
  24. 24. Principios para el desarrollador • Diseña características apagables!! • Contribuye a menudo (código sano!) • Soluciona los build rotos inmediatamente • Escribe tests automáticos • Todos los tests deben pasar
  25. 25. Llegados a este punto… • ¿Cuanto le tomaría a tu organización desplegar un cambio que involucre tan solo una línea de código? • ¿Lo haces de una manera confiable y reproducible? Mary & Tom Poppendieck
  26. 26. Todo eso esta muy pero… • Yo tengo que desplegar en local!
  27. 27. Entonces… otro escenario
  28. 28. Ingredientes • TFS Controller/Agent 2013 • Publish Profiles • .config Transformations • MS Web Deploy
  29. 29. Mejor veamoslo en acción
  30. 30. Reforzando el factor humano • Establecer políticas de contribución, ramificación y Code Review • Configurar bien las alertas • Detenerse cuando la Build se cae • Si se cae la Build no es el fin del mundo • Antes de hacer commit, Get latest versión y probar en local • Probar en ambiente de Integración • Validar siempre la actualización del Modelo de BD • Considerar CodeAnalysis, StyleCop y opcionalmente convertir warning en errors
  31. 31. Caso real • DEV1: Solo compila y corre tests, ejecutada automáticamente • DEV2: DEV1+Despliegue en DEV, cada hora (si hay cambios) • QA: DEV1 + Despliegue en QA, cada 6 horas • Staging: DEV1 + Empaquetado automatico para despliegue manual, bajo demanda ¡Cada una con sus propias configuraciones!
  32. 32. Enlaces útiles • El Bruno • Jersson on the Block! • SedoDream • How to install Web Deploy on Windows Server 2012 • Consultor Internet
  33. 33. ¿Preguntas?

×