studio programacion móviles gestor desplegar desarrollo curso aplicaciones aplicacion .net php deployment web-applications

.net - programacion - ¿Despliegue Automático para Aplicaciones Web?



manual de programacion android pdf (9)

Consulte Setup Factory (de indigo rose). Es bastante robusto en lo que puede hacer. Utiliza la API de instalación de Windows. Probablemente puede hacer lo que necesita.

Mi equipo actualmente está tratando de automatizar la implementación de nuestras aplicaciones web .Net y PHP. Queremos simplificar las implementaciones y evitar las molestias y muchos de los dolores de cabeza causados ​​por hacerlo manualmente.

Requerimos una solución que nos permita:

- Compile the application - Version the application with the SVN version number - Backup the existing site - Deploy to a web farm

Todas nuestras aplicaciones se controlan desde la fuente usando SVN y nuestras aplicaciones .Net usan CruiseControl. Hemos intentado utilizar scripts de implementación de MSBuild y NAnt con un éxito limitado. También hemos usado Capistrano en el pasado, pero deseamos evitar usar Ruby si es posible.

¿Hay alguna otra herramienta de implementación que nos ayude?


He usado Visual Build Pro durante años. Es bastante elegante y fácil de usar, y tiene muchas operaciones estándar (como las que mencionas) integradas.


Yo uso Puppet , Makefiles para construir RPMs y Bamboo para hacer esto por mí. Mi sistema no se aplica directamente, y no estoy familiarizado con el mundo de Windows, pero hay algunos patrones transferibles.

Mi configuración de make me permite construir RPM para todo (php libs, sitios php, módulos perl, aplicaciones C, etc.) que componen mi aplicación. Esto se puede llamar manualmente o a través de Bamboo. Transfiero estos RPM a un yum repo y manejadores de marionetas asegurándome de que las versiones más recientes (o correctas) de software estén instaladas en el clúster.

¿Podría automatizar la construcción de paquetes de software en MSI? Creo que Puppet puede administrar la instalación de paquetes de software y versiones en Windows.


Tela . Parece pequeño, simple, de procedimiento. Escrito en Python, ya que Ruby es un no-no (¿por qué?).


En lugar de utilizar xcopy, logramos utilizar el comando -source: dirpath con direcciones UNC en los servidores con msdeploy. La clave era ignoreAcls = true y eliminaba llamadas a nombre de usuario y contraseña en la cadena msdeploy:

msdeploy -verb:sync -source:dirpath=//build/e$/app -dest:dirpath=//live/d$/app,ignoreAcls=true

El ejemplo implementa el sitio desde la unidad E de nuestro servidor de compilación hasta la unidad D en nuestro servidor en vivo. Existen algunas consideraciones de seguridad con la exposición de recursos compartidos o este nivel de acceso al disco en un servidor activo. Actualmente estamos buscando utilizar una carpeta compartida de acceso limitado.

Luego canalizamos esta salida a un archivo de registro que luego se mueve al archivo de respaldo para referencia. El archivo de registro registra qué archivos se movieron y cuándo. Continuando con el ejemplo anterior con el comando output pipe:

... > E:/archive/msdeploy.log


Gracias a todos por sus amables sugerencias. Los revisamos todos, pero después de una cuidadosa consideración, decidimos lanzar el nuestro con una combinación de CruiseControl, NAnt, MSBuild y MSDeploy.

Este artículo tiene mucha información: Integrando MSBuild con CruiseControl.NET

Aquí es más o menos cómo funciona nuestra solución:

  • Los desarrolladores crean la versión de "depuración" de la aplicación y ejecutan pruebas unitarias, luego se registran en SVN.
  • CruiseControl ve las actualizaciones y llama a nuestro script de compilación ...
    • Ejecuta cualquier nueva migración en la base de datos de compilación
    • Reemplaza los archivos de configuración con la configuración del servidor de compilación
    • Crea la configuración de "depuración" de la aplicación
    • Ejecuta todas las pruebas de unidad e integración
    • Crea la configuración de ''implementación'' de la aplicación
      • Versiones de las DLL con la versión principal / secundaria actual y la revisión de SVN, por ejemplo 1.2.0.423
      • Mueve esta nueva compilación a una carpeta ''release'' en nuestro servidor de compilación
      • Elimina los archivos innecesarios
    • Actualiza IIS en el servidor de compilación si es necesario

Luego, cuando hayamos verificado que todo está listo para subir a escena / puesta en escena, ejecutaremos otro script para:

  • Ejecutar migraciones en el servidor activo / en etapas
  • MSDeploy: archivo del sitio actual en vivo / de ensayo
  • MSDeploy: sincroniza el sitio desde la compilación hasta el live / staging

No fue lindo llegar a esta etapa, pero ahora está funcionando como un encanto: D

Voy a tratar de mantener actualizada esta respuesta a medida que hacemos cambios en nuestro proceso, ya que parece haber varias preguntas similares sobre SA ahora.


La única razón por la que Nant debería existir es para que tenga un marco similar a Ant en el que podamos escribir Tareas usando el conjunto de lenguajes .NET. Si no quiere que un desarrollador .NET puro escriba Tareas personalizadas, no veo ninguna razón por la que no pueda usar Ant. Solo porque usted escriba su aplicación en un lenguaje .NET, no significa que tenga que usar una herramienta de compilación .NET.


Yo uso msdeploy para esto. Funciona perfecto.

Acerca de Ant; para la plataforma .NET tenemos NAnt y puede usarlo en combinación con MSDeploy; tienes la posibilidad de llamar a MSDeploy desde tu script de Nant.

Editado: solo para aclarar las cosas; puedes hacer todo con msdeploy. Usar Nant no es un requisito.


Nadie mencionó Final Builder http://www.finalbuilder.com . Está a la par con Visual build Pro. Buena GUI para crear arneses automatizados de despliegue de construcción