betabeers - continuous deployment

Post on 19-Feb-2017

273 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Continuous Deploymentsuper-vitaminado gracias a Microsoft AzureEntornos de trabajo automatizados

Fernando EscolarDevelopment & Cloud Lead Consultantfernando.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 TestsCommit 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!

top related