Implementación web avanzada de empresa

de Jason Lee

En este tutorial se muestra cómo realizar varias tareas necesarias o deseables en muchos escenarios de implementación empresarial.

Para obtener una traducción italiana de estos tutoriales, visite http://www.lucamorelli.it.

Esto forma parte de una serie de tutoriales basados en los requisitos de implementación empresarial de una empresa ficticia denominada Fabrikam, Inc. Esta serie de tutoriales utiliza una solución de muestra -la solución Contact Manager- para representar una aplicación web con un nivel de complejidad realista, que incluye una aplicación ASP.NET MVC 3, un servicio Windows Communication Foundation (WCF) y un proyecto de base de datos.

El método de implementación que constituye el núcleo de estos tutoriales se basa en el enfoque del archivo de proyecto dividido descrito en Comprensión del proceso de compilación, en el que el proceso de compilación está controlado por dos archivos de proyecto: uno que contiene las instrucciones de compilación que se aplican a todos los entornos de destino y otro que contiene los ajustes de compilación e implementación específicos del entorno. En tiempo de compilación, el archivo de proyecto específico del entorno se combina en el archivo de proyecto independiente del entorno para formar un conjunto completo de instrucciones de compilación.

Información general del escenario

El escenario de alto nivel de estos tutoriales se describe en Implementación web empresarial: Información general sobre escenarios. Se recomienda revisar este tema antes de empezar a trabajar en este tutorial.

Cómo usar este tutorial

  • Cada uno de los temas de este tutorial es independiente y aborda un desafío o problema concreto que se produce en escenarios de implementación empresarial. No es necesario trabajar con estos temas en un orden determinado. Sin embargo, en este tutorial se tratan algunas tareas avanzadas. Por ello, debe familiarizarse con los conceptos y técnicas que trata el tutorial Implementación web empresarial para sacar el máximo provecho de este contenido.
  • Este tutorial incluye estos temas:
  • Realizar una implementación de hipótesis En muchos escenarios, querrá determinar el impacto de una implementación propuesta en un entorno de destino o en cualquier contenido existente antes de realizar cambios. En este tema se describe cómo puede ejecutar una implementación de hipótesis para generar archivos de registro y scripts de actualización de base de datos como si hubiera implementado contenido en un entorno de destino, sin realizar ningún cambio. El análisis de estos recursos puede ayudarle a detectar los posibles problemas de antemano de una implementación activa.
  • Personalizar las implementaciones de la base de datos para varios entornos Al implementar un proyecto de base de datos en varios destinos, a menudo querrá personalizar las propiedades de implementación para cada entorno de destino. Por ejemplo, en entornos de prueba normalmente volvería a crear la base de datos en cada implementación, mientras que en entornos de ensayo o producción sería mucho más probable que realice actualizaciones incrementales para conservar los datos. En este tema se describe cómo puede incorporar estos cambios de propiedad en la lógica de implementación mediante la creación de un archivo de configuración de implementación (.sqldeployment) específico del entorno para cada entorno de destino.
  • Implementar las pertenencias a roles de base de datos en entornos de prueba. Al volver a crear una base de datos en cada implementación (por ejemplo, como parte de una compilación de integración continua (CI) e implementar en un entorno de prueba, normalmente deberá configurar las pertenencias a roles de base de datos cada vez. Por ejemplo, normalmente necesitará conceder permisos a la identidad del grupo de aplicaciones asociada a la aplicación web. En este tema se describe cómo puede automatizar este proceso agregando un script SQL posterior a la implementación a la lógica de implementación.
  • Implementar bases de datos de pertenencia en entornos empresariales. Las bases de datos de pertenencia a ASP.NET tienen varias características que pueden complicar el proceso de implementación. Por ejemplo, una implementación solo de esquema dejará la base de datos en un estado no operativo. En la mayoría de los escenarios, es preferible crear una base de datos de pertenencia directamente en cada entorno de destino. Sin embargo, si tiene que implementar una base de datos de pertenencia, en este tema se describen algunos de los enfoques que puede usar para satisfacer los desafíos inherentes.
  • Excluir archivos y carpetas de la implementación. En algunos escenarios, querrá adaptar el contenido del paquete web a entornos de destino específicos. Por ejemplo, es posible que desee incluir versiones completas de bibliotecas de JavaScript al implementar en un entorno de prueba, para admitir la depuración del lado cliente, pero usar versiones mínimas de las bibliotecas al implementar en un entorno de ensayo o producción. En este tema se describe cómo puede excluir archivos y carpetas específicos del proceso de creación de paquetes.
  • Desconectar aplicaciones web con Web Deploy Al implementar soluciones en un entorno de ensayo o producción, a menudo querrá desconectar las aplicaciones web durante el proceso de implementación. En este tema se describe cómo agregar un archivo App_offline.htm a la aplicación web al principio del proceso de implementación y quitarlo al final. Aunque el archivo App_offline.htm está en vigor, los usuarios que navegan a la aplicación web se redirigen automáticamente al archivo App_offline.htm.
  • Ejecutar scripts de Windows PowerShell desde MSBuild. Muchos escenarios de implementación requieren acciones posteriores a la implementación más complejas, como agregar orígenes de eventos personalizados al registro o configurar la replicación entre instancias de SQL Server. Estas acciones se realizan a menudo a través de scripts de Windows PowerShell. En este tema se describe cómo ejecutar scripts de Windows PowerShell desde un archivo de proyecto de Microsoft Build Engine (MSBuild) como parte del proceso de compilación e implementación.
  • Solucionar problemas del proceso de empaquetado La canalización de publicación web (WPP) define una propiedad de MSBuild denominada EnablePackageProcessLoggingAndAssert que puede usar para generar información detallada sobre el proceso de empaquetado para proyectos de aplicaciones web. En este tema se describe lo que hace la propiedad y cómo usarla.

Tecnologías clave

Este tutorial se centra en cómo usar estos productos y tecnologías para admitir la compilación automatizada y la implementación web:

  • Visual Studio 2010 y Team Foundation Server (TFS) 2010
  • Compilación del equipo de MSBuild y TFS
  • Internet Information Services (IIS) 7.5
  • Herramienta de implementación web de IIS (Web Deploy) 2.1
  • Utilidad de implementación de base de datos VSDBCMD.exe

Otros tutoriales de esta serie

Esto forma parte de una serie de cinco tutoriales sobre la implementación web a escala empresarial. Estos son otros tutoriales de la serie:

  • Implementación de aplicaciones web en escenarios empresariales. Este contenido introductorio proporciona el fondo contextual de la serie de tutoriales. Describe el escenario del tutorial y muestra cómo las tareas y los tutoriales descritos en toda la serie encajan en un proceso más amplio de Administración del ciclo de vida de las aplicaciones (ALM).
  • Implementación web en la empresa. En este tutorial se proporciona una introducción conceptual a los archivos de proyecto de MSBuild, WPP, Web Deploy y otras tecnologías relacionadas. Explica cómo puede usar estas herramientas conjuntamente para administrar procesos de implementación complejos.
  • Configurar entornos de servidor para la implementación web. En este tutorial se describe cómo configurar servidores de Windows para admitir varios escenarios de implementación, incluida la implementación remota de paquetes web mediante el servicio agente de implementación web (el agente remoto) o la implementación remota de controlador y base de datos remota de Web Deploy. Proporciona instrucciones sobre cómo elegir el método de implementación adecuado para su propio entorno y describe cómo usar el marco de granja de servidores web (WFF) para replicar aplicaciones web implementadas en todos los servidores web de una granja de servidores.
  • Configurar Team Foundation Server para la implementación web. En este tutorial se describe cómo configurar TFS para admitir varios escenarios de implementación, incluida la implementación automatizada como parte de un proceso de CI y las implementaciones desencadenadas manualmente de compilaciones específicas.