2010-06-22 7 views
18

¿Qué usa para administrar el flujo de trabajo de implementación de su aplicación una vez que se completa la compilación? No estoy hablando solo del acto de obtener archivos en un servidor, estoy hablando de lo que sucede después de eso. Verificación, análisis, aprobación, la migración a la producción, y se retiró de edad construye, etc.Flujo de trabajo de compilación/implementación de aplicación

Ejemplo:

  1. compilación se complete
  2. Build se implementa en un entorno de prueba se ha completado
  3. Testing (paso manual)
  4. Si las pruebas pasan se despliegan en UAT, más bien rechazan la compilación
  5. U AT se ha completado (paso manual)
  6. Si UAT pasa a producción desplegar los demás rechazan construir
  7. Retirarse acumulación previamente en Prod

Cualquier buenas aplicaciones por ahí que puede gestionar los flujos de trabajo de construcción de larga ejecución?

actualización

También debería mencionar que estoy en busca de herramientas que realmente implementa el flujo de trabajo y no sólo para realizar un seguimiento de en qué estado se encuentra. (Copia construir, cambiar el estado de construcción, enviar mensajes de correo electrónico, iniciar/detener servicios, etc.)

+0

si puede agregar algún tipo de entorno para el que está desarrollando, sería más fácil sugerir la solución adecuada. – rasjani

Respuesta

3

esta acumulación y liberación de los sistemas son una mezcla de cosas diferentes, por lo que tras su lista voy a responder:

  1. compilación se complete (climatizador con Maven Build)
  2. Build se implementa en un entorno de prueba (tarea Ant, llamados de climatizador)
  3. de terminada la prueba (paso manual) (Maven que esto)
  4. indica si la prueba pasa a desplegar UAT demás rechazar acumulación (Si las pruebas fallan, Maven no va a terminar, no hay ninguna llamada a el implementador de hormigas)

A partir de aquí, lo hacemos más o menos con una mezcla de secuencias de comandos de hormigas y golpe

  1. UAT ha finalizado (paso manual)
  2. Si UAT pasa a desplegar a Prod demás rechazan construir
  3. Retirarse acumulación previamente en Prod

La cosa más difícil que hemos encontrado era para reiniciar los servidores de aplicaciones ya que no hemos tenido buenas experiencias con los despliegues calientes pero es factible con sólo el experto, hormiga y Bash.

+1

Disculpas por no aceptar esto mientras la recompensa todavía estaba activa. Estaba ocupado casándome y me olvidé de mi pregunta. Espero que entiendas. –

+0

No hay problema y viva feliz para siempre. – Eldelshell

2

Muchas empresas utilizan una aplicación de programación de proyectos, como MS Project.

Aquí hay una aplicación de programación de proyectos de código abierto, Open Workbench, que podría serle útil. Tiene limitaciones, pero lo he usado para administrar mis horarios.

2

ThoughtWorks Go se ve la pieza. Usamos Maven en este momento, pero aún en función de sus capacidades.

+0

Miré Cruise (nombre de Go versión previa 2) y aunque se veía bien no podemos usarlo ya que no funciona con TFS. Descargué e instalé Go hace unos días, pero los servicios no se iniciaron, así que no pude evaluarlo más. –

2

Realmente no entiendo por qué esto no se pudo hacer usando Ant (http://ant.apache.org) con algunas tareas, una por paso. Dado que el tiempo de estas cosas es manual y cada entorno solo puede tener una copia del software al mismo tiempo, no parece haber mucho que hacer, sino codificar el flujo de trabajo y dejar que la gente lo haga.

2

Si logra automatizar sus pruebas (y dependiendo del tipo de software que utilice, no hay ninguna razón para no hacerlo), debería poder utilizar cualquier software de integración continua.

El hecho es que cada fase se puede anotar como tareas que se pueden ejecutar una detrás de otra dependiendo de lo que fue el resultado del caso anterior.

Por ejemplo, he tenido una configuración de CruiseControl que hace exactamente lo que usted describe aquí, la fase de prueba estaba ejecutando un montón de pruebas de unidad (C++/qt) y todo estaba escrito con un controlador de prueba.

1

He usado una herramienta de código abierto basada en web llamada Hudson y he estado muy contenta con ella. Es muy bueno para administrar compilaciones y tiene una excelente integración con SVN y hormiga. La única advertencia es que necesitas alojarlo en tu propio servidor.

+0

Utilizamos Hudson para esto. Ejecutamos compilaciones nocturnas y semanales, y compilaciones para control de calidad y aceptación activada manualmente. Las compilaciones manuales van desde una etiqueta CVS, por lo que es fácil para un humano administrar el flujo de trabajo de alto nivel: crear un control de calidad; si tiene éxito, informe al equipo de control de calidad, espere recibir noticias del equipo de control de calidad, si se aprueba la compilación, éxito decirle al equipo de UAT, espere recibir noticias del equipo de UAT, si se aprueba, dígales a los chicos de operaciones que desarrollen la producción (que se activa manualmente, pero utilizando los mismos scripts que ejecuta Hudson). No automatizamos el flujo de trabajo, y no veo ningún beneficio para hacerlo (para nosotros). –

2

Hasta donde yo sé, no hay un solo sistema que automáticamente haga todas las tareas que usted menciona. Debe escribir algunos scripts y pruebas para automatizar la implementación de su sistema y sus pruebas. Luego puede usar un servidor de CI para armarlo. Esto es lo que te sugeriría:

  1. automatizar el proceso de despliegue utilizando un lenguaje de script apropiado para su plataforma (por ejemplo, hormiga, shell scripts, archivos por lotes). Eso incluye las tareas que se mencionan:
    • subir el binario al servidor de destino
    • tomar una copia de seguridad del sistema
    • enviando un correo electrónico para alertar a los usuarios la actualización
    • realizar la actualización mediante un descenso de la sistema, cambiando un enlace simbólico para que apunte a la nueva versión y lo inicie de nuevo.
  2. Escriba algunas pruebas que puedan verificar que el software está funcionando en un entorno particular.Debe poder ejecutarlos en su UAT y servidor de producción para verificar que el software se haya implementado y se esté ejecutando correctamente.

Una vez que haya automatizado estas cosas, puede utilizar un servidor de integración continua para programar estas tareas o hacerlas a pedido. Estoy más familiarizado con Bamboo (trabajo para Atlassian), pero estoy seguro de que CruiseControl y Hudson tienen características similares. He aquí cómo usted lo haría en bambú:

  1. crear un nuevo plan de construcción para la implementación de la UAT, que ejecuta el script de implementación seguido de las pruebas
  2. decidir cómo desea para desencadenar la construcción, ya sea:
    • añadiéndolo como una dependencia en su estructura principal, de modo que se ejecuta automáticamente en una compilación satisfactoria
    • hacer que se ejecute en un horario, para que pueda obtener los despliegues nocturnos
    • hacen que sea única disparado de forma manual, en el que caso que jus Ejecutar la compilación cuando desee que se implemente.
  3. Configure los permisos para la compilación para que solo los usuarios autorizados puedan implementar versiones en su servidor.

Luego haría lo mismo y configuraría una compilación para su implementación de producción, pero probablemente solo con activación manual y con permisos más restrictivos.

0

Usamos a este viejo galés llamado Alistair. Funciona de maravilla.