SlideShare uma empresa Scribd logo
1 de 56
Automatización de
    Despliegues

        Jose Luis Soria
 jlsoria@plainconcepts.com
           @jlsoriat
Jose Luis Soria


• ALM Team Lead at Plain Concepts
• Professional Scrum Trainer

       jlsoria@plainconcepts.com

       http://geeks.ms/blogs/jlsoria

       @jlsoriat      #secondnug
Contenido (I)

• Por qué automatizar
• Automatización de entornos
  – Lab Manager
  – Proyectos de servidor de SQL Server
  – Web Deploy
Contenido (II)

• Automatización de instalación
  – MSBuild y TFS Build
  – Versionado
  – Proyectos de instalación
  – Proyectos de base de datos
  – MSDeploy
Contenido (III)

• Automatización de configuración
  – Transformaciones de ficheros de configuración
  – Gestión de datos
  – Powershell
• Planes de contingencia
• Conclusiones
• Preguntas
Despliegues: situaciones típicas
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
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
¡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
¿Qué significa desplegar una aplicación?

Desplegar:
• Instalar la aplicación en un entorno
¿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
¿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
¿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
Paso 1: automatizando entornos
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?
(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
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
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
Cloud

• Azure www.windowsazure.com
  – Ventajas similares a la virtualización
  – Escalabilidad, disponibilidad y seguridad
    proporcionadas por el proveedor
  – El entorno está estandarizado
(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
Demo: aprovisionamiento de entornos
con Lab Management




http://bit.ly/xvCl9W
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
Demo: proyectos de servidor de SQL Server,
Web Deploy




http://bit.ly/xvCl9W
Paso 2: automatizando la instalación
¿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
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
Demo: MSBuild & TFS Build




http://bit.ly/xvCl9W
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
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
Demo: Versionado




http://bit.ly/xvCl9W
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/
Demo: Proyectos de instalación




http://bit.ly/xvCl9W
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
Demo: Herramientas de bases de datos




http://bit.ly/xvCl9W
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
Demo: MSDeploy




http://bit.ly/xvCl9W
Paso 3: automatizando la configuración
¿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
¿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
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
Demo: Transformaciones de ficheros de configurac




http://bit.ly/xvCl9W
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
Demo: Data Compare




http://bit.ly/xvCl9W
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
Demo: Powershell




http://bit.ly/xvCl9W
Planes de contingencias
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
Conclusiones
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
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
¿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

Mais conteúdo relacionado

Semelhante a SecondNug Febrero 2012 - Automatización de despliegues

Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Jose Luis Soria
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsavanttic Consultoría Tecnológica
 
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...Herman Arnedo
 
Construyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingConstruyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingJaime Andrés Bello Vieda
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticassuserbd237f
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y BackEric Zeidan
 
Dynamics saturday madrid 2019 jose antonio estevan share
Dynamics saturday madrid 2019   jose antonio estevan shareDynamics saturday madrid 2019   jose antonio estevan share
Dynamics saturday madrid 2019 jose antonio estevan shareDemian Raschkovan
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...GeneXus
 

Semelhante a SecondNug Febrero 2012 - Automatización de despliegues (20)

Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
 
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
 
Construyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingConstruyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentesting
 
Memoria
MemoriaMemoria
Memoria
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informática
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y Back
 
Leccion0 sisop
Leccion0 sisopLeccion0 sisop
Leccion0 sisop
 
Dynamics saturday madrid 2019 jose antonio estevan share
Dynamics saturday madrid 2019   jose antonio estevan shareDynamics saturday madrid 2019   jose antonio estevan share
Dynamics saturday madrid 2019 jose antonio estevan share
 
VDI Security
VDI SecurityVDI Security
VDI Security
 
Software
SoftwareSoftware
Software
 
software
software software
software
 
software
softwaresoftware
software
 
Testlink
TestlinkTestlink
Testlink
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...
52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evo...
 

Mais de Jose Luis Soria

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyJose Luis Soria
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Jose Luis Soria
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Jose Luis Soria
 
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria
 
Jose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Jose Luis Soria
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTJose Luis Soria
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?Jose Luis Soria
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorJose Luis Soria
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresJose Luis Soria
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for deliveryJose Luis Soria
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilJose Luis Soria
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSJose Luis Soria
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaJose Luis Soria
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coachingJose Luis Soria
 
Agile Database Development - SDC2012
Agile Database Development - SDC2012Agile Database Development - SDC2012
Agile Database Development - SDC2012Jose Luis Soria
 
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...Jose Luis Soria
 
12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nubeJose Luis Soria
 

Mais de Jose Luis Soria (20)

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international company
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO
 
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
 
Jose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release Pipeline
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITT
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for delivery
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
 
Agile Database Development - SDC2012
Agile Database Development - SDC2012Agile Database Development - SDC2012
Agile Database Development - SDC2012
 
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y ...
 
12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

SecondNug Febrero 2012 - Automatización de despliegues

  • 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
  • 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.
  • 11. ¿Qué significa desplegar una aplicación? Desplegar: • Instalar la aplicación en un entorno
  • 12.
  • 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 aplicación en el entorno
  • 14.
  • 15. ¿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
  • 16.
  • 17. ¿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
  • 18.
  • 20. 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?
  • 21. (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
  • 22. 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
  • 23. 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
  • 24. Cloud • Azure www.windowsazure.com – Ventajas similares a la virtualización – Escalabilidad, disponibilidad y seguridad proporcionadas por el proveedor – El entorno está estandarizado
  • 25. (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
  • 26. Demo: aprovisionamiento de entornos con Lab Management http://bit.ly/xvCl9W
  • 27. 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
  • 28. Demo: proyectos de servidor de SQL Server, Web Deploy http://bit.ly/xvCl9W
  • 29. Paso 2: automatizando la instalación
  • 30. ¿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
  • 31. 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
  • 32. Demo: MSBuild & TFS Build http://bit.ly/xvCl9W
  • 33. 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
  • 34. 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
  • 36. 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/
  • 37. Demo: Proyectos de instalación http://bit.ly/xvCl9W
  • 38. 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
  • 39. Demo: Herramientas de bases de datos http://bit.ly/xvCl9W
  • 40. 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
  • 42. Paso 3: automatizando la configuración
  • 43. ¿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
  • 44. ¿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
  • 45. 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
  • 46. Demo: Transformaciones de ficheros de configurac http://bit.ly/xvCl9W
  • 47. 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
  • 49. 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
  • 52. 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
  • 54. 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
  • 55. 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
  • 56. ¿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