2009-12-22 9 views
6

Pregunta extraña, quizás. Tenemos una serie de utilidades simples escritas internamente que deben ejecutarse de forma automatizada. Estos son no trabajos de compilación. Solo cosas como ejecutar SendOutHourlyEmailAlarms.exe, KeepFoldersInSynch.exe y tal. Normalmente establecería estas cosas como simples tareas programadas/comandos AT (o un servicio de Windows si se necesita un control más granular sobre la programación), pero un compañero de trabajo ha configurado varias de estas tareas como proyectos de construcción en CruiseControl. Servidor de red Le pregunté por qué configuró esto de esta manera y su respuesta fue que las ejecuciones (y sus registros, valores devueltos, excepciones lanzadas) fueron rastreados y registrados y que esta información era accesible a través de una interfaz organizada en el sitio web del servidor de compilación. No podría discutir esto.¿Se debe usar CruiseControl.NET para manejar tareas que no están relacionadas con la fuente de construcción?

Pero esto solo tiene un olor que no puedo identificar del todo. ¿Es este un uso apropiado de CruiseControl.NET? Si no, ¿cuáles son los peligros? Incluso si se ajusta a la ley, ¿no hay otros productos más adecuados para este tipo de cosas?

+0

Me gustan los beneficios de usar CC.NET. Para cualquier objeción contra la mezcla de tareas no compiladas y compiladas, un trabajo fácil sería implementar una instancia separada CC.NET para tales tareas no compiladas. – hitec

Respuesta

6

Tenemos todo tipo de tareas no relacionadas con la construcción por la misma razón que tu compañero de trabajo, quiero que un solo lugar busque todos y cada uno de los trabajos que necesito ejecutar.

Algunos ejemplos de nuestros proyectos CC.NET:

  • FTP instaladores de control de calidad a distancia

  • Creación de Documentación del código fuente

  • Crear VM con los instaladores instalados para control de calidad en el mañana

  • Archivado de instaladores

Casi todo lo que tengo que hacer a mano más de una vez, se convierte en un proyecto. En mi humilde opinión, es mucho mejor que una tarea programada por otra razón también. Nuestros archivos de configuración están en control de fuente, por lo que tenemos 1 lugar para hacer ajustes. No tenemos que iniciar sesión en varios servidores y hacer ajustes o preguntarnos qué servidor hizo eso.

+0

Si la ejecución real de una de estas tareas necesita estar en una caja diferente que el servidor de compilación (por ejemplo, carga masiva en un servidor de base de datos, ejecutándose en la única máquina con controladores específicos, etc.), ¿existe una solución elegante? ? ¿O es solo para ejecutables que se pueden ejecutar directamente en el cuadro de compilación? –

+0

Hacemos esto con los agentes de Bamboo y Remote. Funciona realmente bien. – leonm

+0

Tenemos docenas de servidores, generalmente este tipo de cosas se realizan en servidores que no son de compilación. El panel de tu web puede apuntar a muchos servidores, por lo que no importa. – Alex

1

El hecho de que una herramienta esté diseñada para resolver un problema en particular no significa que no tendrá la misma facilidad para resolver problemas similares fuera del alcance concebido originalmente por el creador de la herramienta. Si CruiseControl.NET resuelve bien estos problemas, entonces es absolutamente la herramienta apropiada para usar.

2

Creo que su compañero de trabajo ha hecho una buena discusión. Si estas tareas están relacionadas con el proceso de desarrollo, entonces colocarlas en CruesControl.Net como un proyecto parece aceptable. Sin embargo, me gustaría trazar la línea de utilizar un servidor de desarrollo para ejecutar procesos de producción. Aunque es verdad que "si la única herramienta que tienes es un martillo, tiendes a ver cada problema como un clavo", ¡eso no significa que el martillo no sea capaz de resolver muchos problemas!

+0

Creo que el ángulo del proceso de producción/servidor fue lo que me llamó "olor". –

Cuestiones relacionadas