Dividir construir cruzar a rede?

3

Existe uma solução conhecida para dividir o processo de criação entre as máquinas da rede?

Caso de uso:

Somos uma empresa média de desenvolvimento de software. Nós possuímos cerca de 50 estações de trabalho de desenvolvimento (Quad Core 2.66Ghz, 4 GB de RAM, 200 GB de raid). Não é necessário dizer que, a qualquer momento, nem todas as máquinas são carregadas no máximo.

Existem 5 a 15 projetos em execução simultânea a qualquer momento. Obviamente, todos eles são continuamente construídos em servidor, do que implantados em um ambiente adequado. A construção de um único projeto leva de 3 a 15 minutos.

O problema : Sempre que construímos 5 projetos seguidos, o último projeto estará pronto após cerca de 25 a 50 minutos. Construir em paralelo não resolve o problema (construir é apenas uma parte do jogo, então você precisa implantar, executar testes, etc.)

SIM, a solução correta é adicionar outro servidor de compilação, mas "Isso envolve a compra de novo hardware caro, e já gastamos muito!". Sim, certo (condena-os)!

De qualquer forma. Que tal dividir a compilação entre a estação de trabalho dos desenvolvedores? Vamos dizer que sempre que precisarmos construir o projeto "A", checamos 5 estações de trabalho e começamos a construir sobre todas que não estão sobrecarregadas. A construção pode ser cancelada por um desenvolvedor se ele realmente precisar de todo o poder de sua máquina, desde que haja pelo menos uma máquina que ainda esteja construindo. Após a conclusão da construção, a implantação pode ser realizada em um ambiente adequado (hospedado em algum servidor, não na estação de trabalho :)). Quanto maior a empresa, mais isso faz sentido para mim.

Alguém tentou algo assim? Existem boas práticas? Algum software útil?

(90% dos projetos são .net C # , plataforma - Windows )

    
por Dandikas 31.03.2010 / 14:51

1 resposta

3

Geralmente, alternar para um ambiente de compilação distribuído significa alterar a cadeia de compilação, pois você não deseja usar compiladores diferentes no desenvolvimento e na produção.

O fato de você mencionar jogos me faz supor que você está no VS e usa o windows, mas vou oferecer algumas recomendações gerais

Eu sei que existem muitas outras soluções (algumas mais listadas aqui link ) por aí, mas sem saber mais sobre seu ambiente e requisitos, é difícil dar uma recomendação melhor do que dar uma olhada nos vários sistemas, ver como eles se encaixam no seu ambiente atual e escolher um deles.

A propósito, quando você está com 50 desenvolvedores, sua empresa provavelmente atingiu o tamanho onde a criação de um ambiente de criação distribuído pode ser motivada simplesmente pela produtividade aprimorada do desenvolvedor. O gerenciamento normalmente não gosta de desenvolvedores relaxarem enquanto esperam pelos servidores de compilação ...;)

    
por 31.03.2010 / 15:16