POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Destino la Nube 2012 - ALM para Azure
1. ALM para Azure
Jose Luis Soria
jlsoria@plainconcepts.com
@jlsoriat
2. Jose Luis Soria
• ALM Team Lead at Plain Concepts
• Professional Scrum Trainer
jlsoria@plainconcepts.com
http://geeks.ms/blogs/jlsoria
@jlsoriat
3. Contenido
• Azure para ALM
• ALM para Azure
– Particularidades de los proyectos Azure
– ALM para el desarrollo
– ALM para las pruebas
– ALM para el despliegue y la entrega
5. Azure para ALM
• Uso de Azure para dar soporte a actividades de
gestión del ciclo de vida de las aplicaciones
• Proporciona las ventajas de Cloud cuando
necesitamos aplicarlas a ALM
– Fiabilidad
– Rendimiento
– Escalabilidad
– Seguridad
–…
6. Azure para ALM
• Ejemplo: Uso de Azure para pruebas de carga
– Optimizando La Cura con Azure http://bit.ly/z4ajpw
• Ejemplo: TFS Service
– www.tfspreview.com
8. ALM para Azure
• Uso de prácticas y herramientas ALM para dar soporte
a proyectos Azure
• Los proyectos Azure, como cualquier otro desarrollo,
tienen un ciclo de vida que es necesario gestionar
– Gestión de la configuración
– Soporte al desarrollo
– Pruebas
– Gestión de la entrega
– Etc…
9. Particularidades de los proyectos Azure
• El despliegue se realiza a dos entornos idénticos,
pero con distintas URL’s: staging y production
• Todas las instancias de nuestros servicios se
ejecutan en la misma versión de sistema
operativo, con las mismas actualizaciones
aplicadas
10. Particularidades de los proyectos Azure
• Las instancias se reciclan aleatoriamente, por lo
que la información almacenada localmente puede
perderse
• Es posible tener actualizaciones en contexto de los
servicios
• El coste de los entornos es siempre claramente
conocido
11. Particularidades de los proyectos Azure
• El desarrollo se hace en local y la aplicación puede
ser ejecutada mediante el uso de emuladores
– Para desplegar en Azure, se crea un paquete que
contiene todos los ficheros e información de
configuración a desplegar
14. Flujo de despliegue durante el desarrollo
Desarrollo local con los emuladores
Entorno híbrido usando Azure Storage
Despliegue completo en staging
Swap de staging a producción
15. Particularidades del desarrollo
• La depuración sólo es posible en el emulador. Pero
podemos usar Intellitrace http://bit.ly/ckTDCD
• También es posible activarlo en publicaciones sin
Visual Studio http://bit.ly/dQld5w
• El emulador “Compute” es muy similar al entorno
en Azure, pero el emulador “Storage” no lo es
http://bit.ly/xI1CV1
16. Particularidades del desarrollo
• Pasaremos a usar Azure Storage cuando queramos
probar en el entorno real, o con volúmenes de
datos mayores
• Pasaremos todo a Staging para validar el
funcionamiento de los servicios. Desde ahí
promocionamos a producción
17. Particularidades del desarrollo
• Puedo usar transformaciones de ficheros de
configuración para manejar cambios de
configuración entre los distintos entornos
– http://bit.ly/a5pdGx
18. Particularidades del desarrollo
• ¡¡¡Staging cuesta dinero!!!
• Storage cuesta dinero, pero en comparación es
mucho más económico que Staging
21. Pruebas manuales en Azure
• Podemos hacer uso de herramientas oriantadas a
testers, como Microsoft Test Manager
• Es necesario balancear la confiabilidad de las
pruebas con el coste económico que suponen
• Preparar planes de prueba que tengan en cuenta
los distintos entornos (local, staging)
• Ejecutar en Azure las pruebas de validación de la
plataforma
22. Pruebas manuales en Azure
• Es posible configurar entornos locales de pruebas
sin necesidad de instalar Visual Studio en ellos
– Instalar Azure SDK e IIS 7
– Usar CSRun.exe para lanzar la aplicación a partir de la
carpeta CSX y el fichero CSFG
• Tanto en entornos locales como al pasar a
staging/producción, puede haber problemas con
las URL’s (usar pasos compartidos en MTM)
23. Pruebas manuales en Azure
• Es posible que los testers necesiten determinados
datos de la ejecución y no tengan acceso (trazas,
logs…)
• Posible solución: los recolectores de datos y
diagnósticos de MTM son personalizables
– Es posible crear un recolector personalizado para
obtener de Azure los datos que nos interesen, usando
la API de extensibilidad de Test Manager y la de Azure
http://bit.ly/i28QJx
24. Pruebas manuales en Azure
• Algunas características de Test Manager no
funcionan en Azure
– Análisis de tests impactados
– Intellitrace
25. Pruebas manuales en Azure
• Nos podemos beneficiar enormemente si
automatizamos el despliegue de los entornos
27. Pruebas automatizadas en Azure
• Tenemos particularidades muy similares a las de
las pruebas manuales:
– Se necesita una estrategia para optimizar el uso de los
entornos
– Puedo tener problemas con las URL’s
• Para la automatización de pruebas se hace
imprescindible la automatización de despliegues
en entornos
30. Automatización del despliegue
• Primer paso: automatizar el empaquetado
– El empaquetado se puede automatizar utilizando
MSBuild
– Se puede utilizar una construcción automatizada (de
TFS) para hacerlo de forma desatendida
MSBuild /t:Publish
31. Automatización del despliegue
• Segundo paso: automatizar el despliegue del
paquete
– Se puede utilizar la API de Management de Azure
http://bit.ly/nqBUta
– Se pueden utilizar los Cmdlets de Powershell de
Windows Azure http://bit.ly/m75gEc
– En cualquier caso, se puede utilizar una construcción
automatizada (de TFS) para hacerlo de forma
desatendida
32. Automatización del despliegue
• Información completa sobre el proceso:
– Continuous Delivery for Cloud Applications in Windows
Azure http://bit.ly/y88Drv
– Automated Build and Deployment with Windows Azure
SDK 1.6 http://bit.ly/tbpa3R
33. Solución completa para TFS Build
• Deploy To Azure http://bit.ly/lwKMeF
– Actividades de WF para TFS Build, incluyendo
empaquetado, despliegue, gestión de certificados, etc.
34. Despliegues con Web Deploy
• Web Deploy (MSDeploy) puede ser utilizado para
actualizar roles en ejecución, sin necesidad de crear
un paquete
• Es una forma fácil y rápida de subir cambios a la nube,
para que estén disponibles rápidamente (por ejemplo
para testing)
• No es una opción para despliegues permanentes en
producción, ya que los cambios se pierden cuando la
instancia se reinicia
• http://bit.ly/hcYD7w
35. ¿Se puede automatizar algo más?
• Todo lo que está expuesto a través de la API de
Management es susceptible de ser automatizado
• Ejemplo: WF Activity Pack http://bit.ly/o0Xu3i
– Trabajo con Blobs, Tablas y Servicio de Cache
36. ¿Y algo más?
• La gestión de entornos para pruebas manuales y
automatizadas puede ser automatizada (y es
recomendable hacerlo)
– Ejemplo en TFS: usar actividad InvokeProcess para
ejecutar CSRun.exe
39. Conclusiones
• Plantea una estrategia para optimizar el uso de los
entornos, orientada a todas las actividades ALM
(desarrollo, testing, despliegue)
• Lo proyectos Azure tienen algunas particularidades
que pueden gestionarse con las herramientas
adecuadas: Intellitrace, Shared Steps, etc.
• Aunque las pruebas en Azure cuestan dinero, no
podemos prescindir de ellas
• Automatiza todo lo posible
40. ¿PREGUNTAS?
• ALM Team Lead at Plain Concepts
• Professional Scrum Trainer
jlsoria@plainconcepts.com
http://geeks.ms/blogs/jlsoria Jose Luis Soria
@jlsoriat ¡Gracias!
Calendario cursos Professional Scrum 2012 http://bit.ly/xc3rPE