Este documento describe los conceptos de integración, entrega y despliegue continuos, y cómo Microsoft Azure y las herramientas de Visual Studio Team Services pueden ayudar a automatizar estos procesos. Cada confirmación de código desencadena una compilación automatizada que incluye pruebas unitarias. Si las pruebas tienen éxito, el código se implementa en un entorno de prueba. Si también pasa las pruebas de integración y aceptación, puede implementarse en producción a través de un intercambio sin problemas de Azure Web Apps.
6. Y en la oficina… el duelo
• Negación:
• ”En mi maquina funciona”
• Negociación:
• Vamos a forzar que los tests “pasen”
• QA no ha validado esa “feature”. Se queda fuera.
• Depresión:
• Tenemos dos horas para un merge y no nos va a dar tiempo
• La persona que hace el deploy tarda 4h. si no hay problemas
• Tenemos una ventana de 6h. para hacer la subida
• Ira:
• La culpa es del commit de “fulano”. Encima hoy se ha ido pronto a casa…
• Aceptación:
• Este fin de semana me va a tocar trabajar
7.
8. Continuous Integration
• Mantener un solo repositorio de código fuente
• Automatizar la “build”
• Automatizar los “tests” dentro de la “build”
• Todo el mundo hace “commit(s)” cada día
• Todo “commit” lanza una “build” en una máquina de integración
• Mantener la “build” rápida
• Probar la aplicación en una “copia” del entorno de producción
9. Continuous Delivery
• La entrega e implementación del software debe ser repetible y fiable
• Automatizar todo
• Si algo es duro o difícil, hacerlo más a menudo
• Mantener todo en control de código fuente
• Hecho significa publicado | Done = Released
• Construir con calidad
• Todo el mundo es responsable del proceso de publicación
• Mejora continua
10. Continuous Deployment
• Cada “commit” a la rama principal crea una versión candidata
• Feedback rápido de la “build” con integración continua
• Una vez conseguido esto, el “commit” se implementa en el siguiente
entorno para las pruebas automáticas
• Si las pruebas tienen éxito, entonces puede entrar en producción
11. Continuous Delivery and Deployment
Deploy to
Producion
Commit code Build
Unit Tests
Commit code Build
Unit Tests
Deploy to Test Integration and
Acceptance Tests
Commit code
Build
Unit Tests
Deploy to Test
Integration and
Acceptance Tests
Continuous Integration
Continuous Delivery
Continuous Deployment
14. VCS – Git and TFVC
Project Tools for Agile
and Scrum
Build Services
Load Testing
Release Management
Visual Studio Team Services
15. VSTS Build Services
• Orquesta las “builds” - no es un motor de
“builds”
• Multi-Plataforma (OSX, Linux y Windows)
• Extensible – todas las tareas son Open
Source
• Las “builds” van a una cola para que los
agentas puedan procesarlas
• Microsoft proporciona agentes hospedados
en azure, Windows. Y pronto Linux
16. VSTS Release
• Automatiza los “deployments”
• Automatiza los workflows de
aprovación
• Se extiende igual que el sistema
de “builds”
• Tracking del estado de tus
aplicaciones
19. Deploy to staging
environmentCommit code
Build
Unit Tests
Deploy to Test
Swap staging with
production
Artifact
Deployment Package
Continuous Deployment