Your SlideShare is downloading. ×
0
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SecondNug Febrero 2012 - Automatización de despliegues

2,214

Published on

Presentación de la sesión sobre Automatización de Despliegues en SecondNUG en febrero de 2012 …

Presentación de la sesión sobre Automatización de Despliegues en SecondNUG en febrero de 2012

http://bit.ly/z45mFU
http://bit.ly/xikaPq

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,214
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Automatización de Despliegues 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 #secondnug
  3. Contenido (I)• Por qué automatizar• Automatización de entornos – Lab Manager – Proyectos de servidor de SQL Server – Web Deploy
  4. Contenido (II)• Automatización de instalación – MSBuild y TFS Build – Versionado – Proyectos de instalación – Proyectos de base de datos – MSDeploy
  5. Contenido (III)• Automatización de configuración – Transformaciones de ficheros de configuración – Gestión de datos – Powershell• Planes de contingencia• Conclusiones• Preguntas
  6. Despliegues: situaciones típicas
  7. El proceso típico de despliegue• Montones de documentos a seguir• Muchos pasos manuales• Discusiones con otros departamentos• Correcciones sobre la marcha• Entornos en distintos estados• Resultados impredecibles• Largas noches sin dormir
  8. Desventajas de los despliegues manuales• Cada vez que despliego, puedo cometer errores distintos• El proceso no es repetible• Hay que mantener documentación• Se depende de personas concretas• Es aburrido• No hay garantías de que se siga el proceso
  9. ¡Automatización!• El proceso de despliegue se hace repetible y auditable• Está autodocumentado• Se minimizan errores• Se lanza con pulsar un botón• No se depende de personas concretas• La vuelta atrás se hace más sencilla
  10. ¿Qué significa desplegar una aplicación?Desplegar:• Instalar la aplicación en un entorno
  11. ¿Qué significa desplegar una aplicación?Desplegar:• Paso 1: Preparar el entorno en el que la aplicación va a ser ejecutada: hardware, software, infraestructura, servicios externos…• Paso 2: Instalar la aplicación en el entorno
  12. ¿Qué significa desplegar una aplicación?Desplegar:• Paso 1: Preparar el entorno en el que la aplicación va a ser ejecutada: hardware, software, infraestructura, servicios externos…• Paso 2: Instalar la aplicación en el entorno• Paso 3: Configurar la aplicación, incluyendo datos necesarios y estado
  13. ¿Qué significa desplegar una aplicación?Desplegar:• Paso 1: Preparar el entorno en el que la aplicación va a ser ejecutada: hardware, software, infraestructura, servicios externos…• Paso 2: Instalar la versión correcta de la aplicación en el entorno• Paso 3: Configurar la aplicación, incluyendo datos necesarios y estado
  14. Paso 1: automatizando entornos
  15. Automatización de entornos• ¿Cómo aprovisiono los entornos?• ¿Cómo despliego y configuro los prerrequisitos (middleware) en las máquinas?• ¿Cómo gestiono los entornos, una vez que están en marcha?
  16. (I) Aprovisionamiento y configuración de servidores• Opciones: – Aprovisionamiento y configuración completamente manual (no recomendable) – Instalación y configuración remota desatendida – Virtualización – Cloud
  17. Instalación remota desatendida• Windows Deployment Services http://bit.ly/wE6h8F – Despliegue remoto de sistema operativo, incluyendo drivers y configuración base – Proveedor de PXE – Las imágenes base se pueden crear y configurar usando Hyper-V
  18. Virtualización• Hyper-V & System Center Virtual Machine Manager http://bit.ly/wlaEUN – Uso de plantillas y de instantáneas• Para entornos de pruebas: Lab Management http://bit.ly/wK6YO4
  19. Cloud• Azure www.windowsazure.com – Ventajas similares a la virtualización – Escalabilidad, disponibilidad y seguridad proporcionadas por el proveedor – El entorno está estandarizado
  20. (II) Gestión de entornos• Para entornos de pruebas: Lab Management• Para entornos en general: System Center Operations Manager http://bit.ly/o8vZYa, políticas de Active Directory
  21. Demo: aprovisionamiento de entornoscon Lab Managementhttp://bit.ly/xvCl9W
  22. Gestión de prerrequisitos (middleware)• Bases de datos (SQL Server): proyectos de servidor de Visual Studio http://bit.ly/wCu5ZW• Servidores web (IIS): Web Deploy http://www.iis.net/download/webdeploy• PowerShell
  23. Demo: proyectos de servidor de SQL Server,Web Deployhttp://bit.ly/xvCl9W
  24. Paso 2: automatizando la instalación
  25. ¿Qué necesito para instalar una aplicación?• Construir la aplicación• Asegurarse de que es la versión correcta• Dotarla de un mecanismo de instalación
  26. Construir la aplicación• MSBuild http://bit.ly/IhQVT – Plataforma estándar de construcción de .NET – Lenguaje + herramienta de línea de comandos – Extensible• TFS Build http://bit.ly/hvTlnR – Construcción desatendida en un entorno controlado – Escalable a nivel empresarial – Personalizable http://bit.ly/gLf3jl
  27. Demo: MSBuild & TFS Buildhttp://bit.ly/xvCl9W
  28. Instalar la aplicación• Crear scripts o instaladores para cada fase del despliegue• Elegir la tecnología apropiada para cada elemento• Utilizar los mismos scripts para todos los entornos• Usar la herramienta de empaquetado del sistema operativo• Hacer que el proceso de despliegue sea idempotente• Comenzar desde el principio del proyecto e ir evolucionando
  29. Instalar la aplicación: versionado• Es imprescindible versionar cada construcción, para tener una visión clara de con cuál de ellas se está trabajando en cada momento• Versionado de ensamblados: AssemblyInfo http://bit.ly/zmuW9e• Versionado automático con TFS Build – TFSVersion en Community Build Extensions http://bit.ly/bS4XDK
  30. Demo: Versionadohttp://bit.ly/xvCl9W
  31. Instalar la aplicación: empaquetado (servicios windows, escritorio)• Generación de proyectos de instalación http://bit.ly/aSy71X – Visual Studio Setup projects (a extinguir) – WiX – InstallShield, Advanced Installer…• Despliegue: ejecución desatendida del instalador – msiexec – Team deploy http://teamdeploy.codeplex.com/
  32. Demo: Proyectos de instalaciónhttp://bit.ly/xvCl9W
  33. Instalar la aplicación: bases de datos• Herramientas de base de datos de Visual Studio http://bit.ly/yECCtG• Despliegue desatendido desde una construcción automatizada: MSBuild, vsdbcmd http://bit.ly/vB6G1
  34. Demo: Herramientas de bases de datoshttp://bit.ly/xvCl9W
  35. Instalar la aplicación: aplicaciones web• Web Deploy http://bit.ly/cUOpfw – Integrado con VS e IIS – Empaquetado y despliegue local y remoto – Incluyendo bases de datos• Despliegue desatendido desde una construcción automatizada: MSDeploy
  36. Demo: MSDeployhttp://bit.ly/xvCl9W
  37. Paso 3: automatizando la configuración
  38. ¿Por qué automatizar la configuración?• Se evitan errores al cambiar de entorno, o incluso de máquinas dentro del mismo entorno (ej.: cluster)• Se ahorra mucho tiempo• No es necesario modificar ficheros en entornos de producción• Es muy fácil romper la aplicación por configuración
  39. ¿Cómo hacer la configuración automatizable?• Identificar puntos en la aplicación susceptibles de ser configurables (evitar hardcoding, etc.)• Mantener la configuración en control de versiones• No modificarla a mano• Hacerla dependiente de la versión y entorno• No repetirse• Incluirla en el esfuerzo de pruebas
  40. Configuración: transformaciones de ficheros• Incluido en el Web Deployment Toolkit http://bit.ly/pxs8NK• Se define por cada configuración del proyecto• También para proyectos no Web: http://bit.ly/otg3b1• Transformación desatendida desde TFS Build
  41. Demo: Transformaciones de ficheros de configurachttp://bit.ly/xvCl9W
  42. Configuración: datos• Data compare, incluido en las herramientas de bases de datos de Visual Studio http://bit.ly/xwhmoM• Integrable en TFS Build: MSDeploy, vsdbcmd
  43. Demo: Data Comparehttp://bit.ly/xvCl9W
  44. Configuración: artefactos en general y middleware• Powershell http://bit.ly/fL1tcz – Shell estándar de Windows – Orientada a objetos – Posibilidad de ejecución en remoto – Snap-in’s para middleware• Se puede ejecutar de forma desatendida desde TFS Build
  45. Demo: Powershellhttp://bit.ly/xvCl9W
  46. Planes de contingencias
  47. Planes de contingencias• Es imprescindible tener un procedimiento claro de vuelta atrás, especialmente en entornos de producción• Hay que tener en cuenta los datos y otros posibles sistemas afectados• La técnica más simple y efectiva suele ser desplegar de nuevo la versión anterior; si el despliegue está automatizado (los tres pasos), esto es muy sencillo• Técnicas más avanzadas: Blue-Green deployments, Canary Releasing
  48. Conclusiones
  49. Conclusiones• Casi todo es automatizable• Puedes empezar a automatizar ya. Como muy tarde, la segunda vez que te veas haciendo la misma tarea manualmente• La automatización de despliegues es necesaria para la entrega continua (pero no suficiente)• Es un esfuerzo que involucra a roles más allá del desarrollo• Es responsabilidad de todos• Es mejor automatizar los cambios a producción, que hacerlos a mano
  50. Recursos• Continuous Delivery http://bit.ly/wdmkLZ• Inside the Microsoft Build Engine http://amzn.to/wZr5hp• Powershell http://amzn.to/xBbqCV• Professional ALM http://amzn.to/9jggZG• www.memegenerator.net• www.bitstrips.com
  51. ¿PREGUNTAS?• ALM Team Lead at Plain Concepts• Professional Scrum Trainer jlsoria@plainconcepts.com http://geeks.ms/blogs/jlsoria Jose Luis Soria @jlsoriat #secondnug ¡Gracias!Calendario cursos Professional Scrum 2012 http://bit.ly/xc3rPE

×