Pregunta

Actualmente implementamos aplicaciones web creando una base de datos y ejecutando scripts SQL a través del analizador de consultas.Luego copiamos el resultado de "publicar sitio web" y configuramos ese sitio web en IIS.

Hemos visto la configuración web en Visual Studio, pero esa parte parece estar poco documentada.Por ejemplo, no tenemos claro cómo pedirle al usuario la IP y la contraseña del servidor SQL.También tendemos a que los sitios web se implementen de esta manera en carpetas como http://ejemplo.com/proyecto, en lugar de simplemente http://ejemplo.com.

Luego hay problemas con AJAX.Net que no se instala o que algún parche no se aplica.

Hasta ahora, tenemos acceso físico a los servidores.Sin embargo, muy pronto estaremos enviando CDROM.¿Cuál es el equilibrio práctico entre intervención manual y automatización?

¿Fue útil?

Solución

Evite la implementación de Visual Studio y automatice tanto como sea posible.¡Web Deployment Projects y NAnt pueden ser tus amigos!

Brevemente, nuestra configuración de implementación:

  1. Usamos RedGate SQL para escribir las diferencias entre el desarrollador y la base de datos en vivo.

  2. Un archivo de compilación NAnt que llama a MSBUILD para compilar el proyecto de implementación web (.wdproj), comprime la aplicación web compilada resultante (junto con el script de cambio de SQL) y luego carga el archivo zip en el servidor.

  3. En el lado del servidor, hay otro archivo de compilación NAnt que desconecta la aplicación, realiza una copia de seguridad de la base de datos y del sitio web.ejecuta el script de cambio de SQL, descomprime la nueva versión y pone la aplicación en línea.

El paso 3 normalmente se ejecuta "manualmente" (un doble clic), pero a veces se programa para altas horas de la noche.Podrías hacer exactamente lo mismo desde un CDROM, o incluso escribir una pequeña aplicación de Windows Forms como contenedor.

Estaré encantado de brindarle detalles del script NAnt si está interesado.

Otros consejos

¿Has intentado usar Implementación web ¿proyecto?Hay apoyo para contra 2008 también ahora..

Implemento principalmente aplicaciones ASP.NET en servidores Linux.Aquí está mi flujo de trabajo estándar:

  • Utilizo un repositorio de código fuente (como Subversion)
  • En el servidor tengo un script bash que hace lo siguiente:
    • Comprueba el código más reciente
    • Hace una compilación (crea las DLL)
    • Filtra los archivos hasta lo esencial (elimina archivos de código, por ejemplo)
    • Realiza una copia de seguridad de la base de datos
    • Implementa los archivos en el servidor web en un directorio nombrado con la fecha actual.
    • Actualiza la base de datos si se incluye un nuevo esquema en la implementación.
    • Hace que la nueva instalación sea la predeterminada para que se entregue con el siguiente hit.

El pago se realiza con la versión de línea de comandos de Subversion y la construcción se realiza con xbuild (msbuild funciona igual que el proyecto Mono).La mayor parte de la magia se hace en ReleaseIt.

En mi servidor de desarrollo, básicamente tengo una integración continua, pero en el lado de producción, en realidad ingreso mediante SSH al servidor e inicio la implementación manualmente ejecutando el script.Mi secuencia de comandos se llama ingeniosamente 'implementar', así que eso es lo que escribo en el símbolo del sistema bash.Soy muy creativo.No.

En producción, tengo que escribir "implementar" dos veces:una vez para verificar, compilar e implementar en un directorio fechado y otra vez para convertir ese directorio en la instancia predeterminada.Dado que los directorios están fechados, puedo volver a cualquier implementación anterior simplemente escribiendo "implementar" desde el directorio correspondiente.

La implementación inicial tarda un par de minutos y la reversión a una versión anterior tarda unos segundos.

Ha sido una buena solución para mí y se basa únicamente en las tres utilidades de línea de comandos (svn, xbuild y releaseit), el cliente DB, SSH y Bash.

Realmente necesito actualizar la copia de ReleaseIt en CodePlex en algún momento:

http://releaseit.codeplex.com/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top