Continuous Deployment
super-vitaminado gracias a Microsoft Azure
Entornos de trabajo automatizados
Fernando Escolar
Development & Cloud Lead Consultant
fernando.escolar@tokiota.com
@fernandoescolar
TOKIOTA,
the Microsoft leading partner for innovative technology solutions,
empowering our customers while taking care of our people.
Un día cualquiera…
Hoy toca puesta en producción…
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
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
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
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
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
¿Cómo lo hacemos?
VCS – Git and TFVC
Project Tools for Agile
and Scrum
Build Services
Load Testing
Release Management
Visual Studio Team Services
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
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
Demo
Azure Web Apps Swap
Deploy to staging
environmentCommit code
Build
Unit Tests
Deploy to Test
Swap staging with
production
Artifact
Deployment Package
Continuous Deployment
Preguntas
¡Muchas gracias!

Betabeers - continuous deployment

  • 1.
    Continuous Deployment super-vitaminado graciasa Microsoft Azure Entornos de trabajo automatizados
  • 2.
    Fernando Escolar Development &Cloud Lead Consultant fernando.escolar@tokiota.com @fernandoescolar
  • 3.
    TOKIOTA, the Microsoft leadingpartner for innovative technology solutions, empowering our customers while taking care of our people.
  • 4.
  • 5.
    Hoy toca puestaen producción…
  • 6.
    Y en laoficina… 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
  • 8.
    Continuous Integration • Mantenerun 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 • Laentrega 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 andDeployment 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
  • 12.
  • 14.
    VCS – Gitand 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 • Automatizalos “deployments” • Automatiza los workflows de aprovación • Se extiende igual que el sistema de “builds” • Tracking del estado de tus aplicaciones
  • 17.
  • 18.
  • 19.
    Deploy to staging environmentCommitcode Build Unit Tests Deploy to Test Swap staging with production Artifact Deployment Package Continuous Deployment
  • 20.
  • 21.