2012-07-10 19 views
12

He examinado ambos. Me gustaría recibir sus sugerencias sobre cuál es mejor para la implementación web automatizada en múltiples servidores.Cuál es mejor pulpo o msdeploy para la implementación automática en varios servidores usando teamcity

+0

yo no diría que es apropiado comparar ellos de esta manera. Aunque Octopus no usa MSDeploy, es esencialmente un envoltorio alrededor del concepto MSDeploy. Con MSDeploy usará una línea de comando o lo invocará dentro de MSBuild con varios argumentos. Octopus te ofrece una interfaz de usuario web amigable para administrar tu configuración. –

Respuesta

16

Creo que definitivamente debería darle una oportunidad a TeamCity y Octopus. Usamos TeamCity para crear paquetes Octopus (NuGet) y la herramienta Octo para activar automáticamente la implementación en un entorno de prueba después de cada compilación exitosa. Después de eso, utilizamos el portal Octopus para promover implementaciones en otros entornos.

se utiliza la siguiente línea de comandos para activar Octo despliegues de TeamCity:

Octo.exe create-release --apiKey=YourOctopusAPIKey --server=http://YourOctopusServer:9015/api --project=YourOctopusProjectName --deployto=YourOctopusEnvironment

El Octo-crear comunicado de paso tiene que estar en un proyecto TeamCity separado, de lo contrario el NuGet no se actualizará con el paquete resultante de la construcción.

+0

Parece que no es gratis. Si implementa un proyecto es gratis, pero luego necesita comprar. por favor guía – sam

+0

que acaba de salir de la versión beta y ya no es gratis, hasta donde yo sé. ofrece un uso ilimitado por poco menos de $ 800. –

+0

Marco: puede usted explicar cómo se utiliza octo herramienta para activar automáticamente la implementación en un entorno de prueba y luego usando el portal a otra guía environments..PLease – sam

4

MSDeploy se puede utilizar para implementar todo desde aplicaciones web a bases de datos, y Web Farm Framework se puede usar para sincronizar desde el servidor principal a servidores secundarios (que también puede hacer manualmente usando diferentes parámetros, si lo prefiere) .

Lo que está describiendo es una "tubería de implementación". No estoy seguro de cómo usted va sobre la integración de un equipo en la ciudad, pero la premisa básica es:

  1. generar la aplicación, y el paquete de prueba que (declarando los parámetros que necesitan ser ajustado). Empuje el paquete (y todos los archivos que necesitan los pasos futuros) a un repositorio de artefactos (posiblemente Equipo de la Ciudad, si lo soporta)
  2. (activa automáticamente) Obtener el paquete desde el repositorio de artefactos e implementarlo en dev llamando msdeploy -verb:sync -source:package.zip -dest:auto,computerName=http://server:8172/msdeploy.axd -setParamFile:dev.xml
  3. (activado manualmente) Implementar el paquete a la etapa
  4. (activado manualmente) implementar el paquete de vivir

MSDeploy soporta un sorprendente número de características, incluyendo el almacenamiento de credenciales en las ventanas administrador de credenciales y parametrización casi todos los aspectos de una implementación. Le recomiendo que eche un vistazo. (También es gratis, aparte de la licencia de Windows Server)

1

Depende. (Me sorprende que esta pregunta no se haya marcado todavía). Pero de todos modos, probablemente valga la pena preguntarse esto:

  1. ¿Está desarrollando un sitio web que requiere QA para cerrar la sesión y promover o tener el conjunto de pruebas automatizadas para verificar cada compilación?
  2. ¿Se está implementando en varios entornos (QA, UAT, Demostración, Producción) y desea ver un buen panel de control de qué versión es dónde?
  3. ¿Necesita ciertos usuarios para tener el permiso para impulsar a la producción?
  4. Necesita implementar otro tipo de componentes (servicios de Windows, bases de datos, etc.)
  5. ¿Necesita alguna configuración adicional en cada servidor antes de comenzar la implementación (por ejemplo, llamada chocolatey para instalar y configurar Mongo). Aprovisionamiento de servidor limitado de Aka.
  6. Se requiere control durante el ciclo de vida de la promoción (por ejemplo, pasar a producción solo si ha pasado por QA).

Si dijo sí a la mayoría de las anteriores, yo diría que Octopus Deploy gana sin problemas para su despliegue. Y adivina qué, es gratis para hasta 5 proyectos y es muy fácil comenzar a funcionar.

Para los sitios web simples que requieren una administración simple de CMS por usuarios finales o sitios web que no necesitan ser mantenidos por los desarrolladores, diría que todas las cosas de Azure y MSDeploy son una gran herramienta para el trabajo. Como Richard Szalay mencionó, actualmente tiene grandes herramientas de línea de comandos para publicar regularmente.

En términos de un servidor de compilación, que en realidad no importa, ya que se debe utilizar para simplemente que crea los artefactos. Team City es un ganador para mí porque tiene una buena integración con Octopus. OMI, eso es una discusión por separado.

Cuestiones relacionadas