Buildbot é um sistema para automatizar o ciclo de compilação / teste. O Buildbot suporta clusters de máquinas.
(não tenho certeza se esse é o grupo certo)
Eu tenho uma situação em que tenho vários aplicativos que são criados / criados. Esses aplicativos mudam com o tempo, então eles precisam ser testados. Eu tenho um número de servidores de teste distribuídos, para que eu possa essencialmente testar os aplicativos em paralelo nas diferentes caixas de teste.
A situação que estou enfrentando é aquela em que podemos ter ~ 200-300 aplicativos separados que precisam ser executados / testados de forma iterativa, em que cada execução pode levar de ~ 1-2 horas para ser executada.
Estou procurando algum tipo de aplicativo que permita criar um processo de lote / trabalho, em que cada lote / trabalho contenha os aplicativos que devem ser executados, e eu posso agendar o lote para executar conforme necessário. O processo teria, então, a máquina cliente solicitando que o lote / trabalho fosse executado quando a máquina estivesse pronta para executar o próximo lote / trabalho.
Eu pesquisei o Sourceforge / Freshmeat de sempre, assim como observei alguns dos tipos de aplicativos globus / cluster management. Ainda não vi nada perto do que estou procurando.
Pensamentos / comentários seriam úteis.
Obrigado
Buildbot é um sistema para automatizar o ciclo de compilação / teste. O Buildbot suporta clusters de máquinas.
Existem muitas respostas para esta questão. No entanto, tenha em mente que tudo exigirá alguns scripts e personalizações da sua parte.
A sugestão de alvosu de usar o Buildbot é excelente e você deve definitivamente verificar isso primeiro. Algumas outras ideias que posso pensar incluem:
Hudson distribuído vale a pena ser investigado. O Hudson é a estrutura de integração contínua padrão que todos usam atualmente e você pode distribuir seu trabalho entre um conjunto de máquinas.
Você mencionou que já analisou o software de gerenciamento de clusters, essa é outra opção popular, embora seja necessária mais configuração. Por exemplo, uma abordagem interessante seria configurar um Cluster de ROCKS e usar seu SGE de mecanismo de execução remota padrão para iniciar tarefas na criação anfitriões.
Estou pessoalmente interessado na ideia de usar GNU Parallel como um simples sistema de lançamento .