DevOps es un conjunto de prácticas que fomentan la colaboración entre equipos de desarrollo y operaciones para reducir costes, maximizar la entrega de valor y mejorar la productividad de los equipos mediante la automatización, la monitorización y la integración continua.
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
DevOpsPrácticasColaboraciónEquipos
1. DevOps
Jose Luis Soria
jlsoria@plainconcepts.com
@jlsoriat
2. ¿Qué es DevOps?
• 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
3. ¿Por qué 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)
4. Implementando 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
6. Design for Operations
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
• …
7. Design for Operations: en la práctica
• Registro en el visor de sucesos y en otros logs
• Instrumentación WMI
• Contadores de rendimiento
• Paquetes de instalación
• …
• http://dfo.codeplex.com/
8. Requisitos operacionales
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
9. Requisitos operacionales: en la práctica
• 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
10. Pruebas de aceptación operacionales
• 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
11. Pruebas de aceptación operacionales: en la
práctica
• 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)
13. Aprovisionamiento de entornos
• 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
14. Aprovisionamiento de entornos: en la
práctica
• Gestión de entornos físicos
• System Center Virtual Machine Manager y otras
plataformas de virtualización
• Lab Manager
15. Automatización de despliegues
• 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
16. Automatización de despliegues: en la
práctica
• 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
17. Automatización de promoción
• 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
19. Detección y recuperación de errores
• 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
20. Detección y recuperación de errores: en la
práctica
• 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
21. Telemetría y analíticas
• Monitorización de la aplicación en producción
• Informan de errores y también de patrones de
uso, problemas potenciales, etc.
23. JOSE LUIS SORIA
• ALM Team Lead at Plain Concepts
• Professional Scrum Trainer
jlsoria@plainconcepts.com
http://geeks.ms/blogs/jlsoria
@jlsoriat Gracias!!!