Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps

Post on 21-May-2015

480 views 4 download

Tags:

description

Presentación sobre DevOps en el Visual Studio Tour de Plain Concepts en Madrid (octubre 2012)

transcript

DevOps

Jose Luis Soria

jlsoria@plainconcepts.com

@jlsoriat

• Conjunto de prácticas que fomentan una

colaboración más estrecha entre los equipos de

desarrollo y de operaciones

• Aplicables en todos los proyectos

– De uso común en escenarios SaaS

• Imprescindibles para modelos como Entrega

Continua

¿Qué es DevOps?

• Ahorro de costes

• Máxima entrega de valor

• Equipos más productivos

• Tres objetivos medibles

– Menores costes operacionales

– Minimizar Cycle Time

– Minimizar Mean Time To Recover (MTTR)

¿Por qué DevOps?

Prácticas que fomentan la colaboración entre equipos

• Design for Operations

• Requisitos operacionales

• Pruebas de aceptación operacionales

• Aprovisionamiento de entornos

• Automatización de despliegues

• Automatización de promoción

• Detección y recuperación de errores

• Telemetría y analíticas

Implementando DevOps

Reduciendo costes

operacionales

Construir aplicaciones fácilmente administrables

• Compatibles con el entorno

• Ajustadas a los procesos y herramientas de IT

• Que informan de su estado de salud

• Configurables en tiempo de ejecución

• …

Design for Operations

• Registro en el visor de sucesos y en otros logs

• Instrumentación WMI

• Contadores de rendimiento

• Paquetes de instalación

• …

• http://dfo.codeplex.com/

Design for Operations: en la práctica

Las características que la aplicación tenga que

cumplir desde el punto de vista de operaciones, se

han de gestionar junto al resto de requisitos en

cuanto a la planificación del proyecto

Requisitos operacionales

• Registrar los requisitos operacionales junto al

resto y tenerlos en cuenta en la planificación

• Usar elementos de trabajo en TFS: Product

Backlog Item, Requirement, etc.

– Muchas veces es útil usar las condiciones de

aceptación

Requisitos operacionales: en la práctica

• El esfuerzo de pruebas sobre nuestra aplicación,

debe contemplar la verificación de los requisitos

operacionales

• Esta verificación puede (y debe, en la medida de lo

posible) ser automatizada e incorporada a la suite

de aceptación de la aplicación

Pruebas de aceptación operacionales

• Incluir las pruebas en los planes de prueba de

Microsoft Test Manager (o de la herramienta que

se use)

• Automatizar la ejecución: pruebas de integración,

grabaciones de test manager, pruebas de interfaz

de usuario (CodedUI)

Pruebas de aceptación operacionales: en la

práctica

Minimizando el

Cycle Time

• Cuanto menos tardamos en tener listo un entorno,

más se reduce el tiempo de ciclo

• El mayor ahorro de tiempo se consigue con la

automatización

Aprovisionamiento de entornos

• Gestión de entornos físicos

• System Center Virtual Machine Manager y otras

plataformas de virtualización

• Lab Manager

Aprovisionamiento de entornos: en la

práctica

• Los despliegues manuales son propensos a

errores, costosos y difícilmente reproducibles

• Automatizar siempre que sea posible. Automatizar

también el proceso de vuelta atrás

• Como último recurso, generar instaladores o

scripts que se puedan ejecutar. No basarse en

documentos

Automatización de despliegues

• Scripting (Team Build, MSBuild, PowerShell)

• Web Deploy / MSDeploy

• Proyectos de base de datos, desarrollo declarativo

• Lab Manager

– Entornos estándar

• Despliegue automático de TFSService a Azure

Automatización de despliegues: en la

práctica

• Las distintas versiones de la aplicación que se van

generando, pueden ser desplegadas y probadas

automáticamente en distintos entornos

• Cada publicación es desencadenada si el resultado

de la anterior fue satisfactorio

Automatización de promoción

Minimizando el

MTTR

• Los errores son menos costosos cuanto antes

aparecen en el ciclo de vida

• Incluso en un entorno de producción, es mejor

detectar y resolver los errores por ti mismo en

lugar de que los sufra el usuario

• Para resolver los errores necesitamos la máxima

información posible

Detección y recuperación de errores

• Monitorización con SCOM

– Sincronización de alertas con TFS

• Pruebas de rendimiento de VS con SCOM

– Global Service Monitor

• Intellitrace (en producción). Servidores de

símbolos

Detección y recuperación de errores: en la

práctica

• Monitorización de la aplicación en producción

• Informan de errores y también de patrones de

uso, problemas potenciales, etc.

Telemetría y analíticas

• Preemptive Analytics

Telemetría y analíticas: en la práctica

• ALM Team Lead at Plain Concepts

• Professional Scrum Trainer

jlsoria@plainconcepts.com

http://geeks.ms/blogs/jlsoria

@jlsoriat

JOSE LUIS SORIA

Gracias!!!