SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Ähnlich wie 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
 
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
 

Ähnlich wie 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
 
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...
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 

Kürzlich hochgeladen (20)

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 

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