Noções básicas sobre um sistema de compilação do Team Foundation
Você pode usar Team Foundation Build para compilar, testar e implantar o software em um sistema automatizado e distribuídos. Este software foi projetado para suportar o pequeno "início" esforços de software, além de para empresas de desenvolvimento de software maduro. O sistema foi projetado para ajudar a dimensionar seu sistema de compilação, conforme aumentam a sua equipe e a base de código.
Neste tópico
Criar máquinas
O serviço do Team Foundation Build
Usando as máquinas virtuais como máquinas de compilação
O controlador de compilação
O agente de compilação
Exemplos de topologia do sistema de compilação
Next Steps
Criar máquinas
Para usar Team Foundation Build, você deve ter pelo menos uma compilação de máquina. Para qualquer esforço de software de média ou grande, você provavelmente precisará de várias máquinas de compilação. Neste tópico, exemplos de várias configurações de sistema de compilação são oferecidos.
Uma máquina de compilação é um computador em que você tenha instalado e configurado Serviço Team Foundation Build. A máquina pode ser uma máquina física (por exemplo, um computador de pessoal que reside em sua mesa ou uma estação de trabalho em um laboratório). Você também pode aproveitar a flexibilidade de uma máquina virtual para servir como uma máquina de compilação.
Observação |
---|
Você pode configurar uma máquina de compilação do ad-hoc em qualquer computador que está disponível para você. Por exemplo, um desenvolvedor individual que tenha um computador extra disponível pode configurá-la como uma máquina de compilação para usar Serviço Team Foundation Build recursos. |
Embora a configurar, modificar e gerenciar uma máquina de compilação diretamente no computador onde Serviço Team Foundation Build está em execução, a configuração de dados em si são armazenados na coleção de projeto de equipe.
O serviço do Team Foundation Build
Para configurar uma máquina de compilação, instalar, configurar e executar Serviço Team Foundation Build.
Serviço Team Foundation Buildé um serviço do Windows que está listado em locais diferentes dentro do sistema operacional. Onde está listado depende Serviço Team Foundation Build está sendo executado como um serviço do Windows ou um serviço interativo. (Para obter mais informações sobre como definir essa opção, consulte Configurar uma máquina de compilação.)
Quando o serviço do Team Foundation Build é executado como um serviço do Windows:
No serviços nó, Serviço Team Foundation Build está listado como Visual Studio Team Foundation Build Service Host. Você pode exibir o serviços o nó em um dos seguintes locais:
Em um sistema operacional de servidor (por exemplo, Windows Server 2008) no Gerenciador de servidores
Em um sistema operacional do cliente (por exemplo, Windows Vista) no Computer Management
No Gerenciador de tarefas, Serviço Team Foundation Build está listado como Visual Studio Team Foundation Build Service Host sobre o serviços guia.
Observação |
---|
Você pode parar ou reiniciar o serviço de compilação a partir de locais na lista anterior. Parar ou reiniciar o serviço, você efetivamente parar ou reiniciar a máquina de compilação. No entanto, você pode gerenciar uma máquina de compilação mais conveniente usando o Console de administração do Team Foundation. For more information, see Gerenciar o sistema de compilação. |
Quando o serviço do Team Foundation Build é executado como um serviço interativo:
- No Gerenciador de tarefas, Serviço Team Foundation Build está listado como TFSBuildServiceHost sobre o aplicativos guia.
Usando as máquinas virtuais como máquinas de compilação
Você pode implantar Serviço Team Foundation Build em uma máquina virtual (por exemplo, uma máquina de virtual do Hyper-V está sendo executado em um computador físico que está executando o Windows Server 2008). Seguindo essa estratégia, podem facilmente executar as seguintes tarefas:
Recrie o sistema a partir de qualquer estado e de qualquer ponto no tempo. Por exemplo, se o sistema for corrompido, você pode rapidamente reverter para um instantâneo de um ambiente limpo e recriar o sistema.
Um instantâneo de uma máquina virtual, exportá-lo e arquivá-lo ou compartilhá-lo com outro membro da equipe.
A principal desvantagem do uso de uma máquina virtual é que ele funciona mais lentamente do que uma máquina física. Se a quantidade de trabalho que exigem a suas criações é pequena, ou se você executar compilações com pouca freqüência (por exemplo, à noite), uma máquina virtual pode ser suficiente como uma máquina de compilação no seu sistema.
Você pode executar as seguintes tarefas para melhorar o desempenho do Serviço Team Foundation Build quando ele é executado em uma máquina virtual:
Execute suas máquinas virtuais em uma máquina física que tem um processador de vários núcleos. Se, por exemplo, sua máquina física tem um processador quad-core, você pode executar quatro máquinas virtuais ao mesmo tempo, e eles executarão razoavelmente bem construir máquinas em muitas situações.
Dedicar e montar um disco rígido físico para cada máquina virtual.
O controlador de compilação
Cada controlador de compilação é dedicado a uma coleção de projeto de equipe único. O controlador aceita solicitações de compilação de qualquer projeto de equipe em uma coleção de projeto de equipe especificado.
Cada controlador de criação de pools e gerencia os serviços de um ou mais agentes de compilação. Ele distribui o trabalho de uso intenso do processador (como compilar o código ou executar testes) para os agentes de compilação dentro de seu pool.
O controlador de compilação processa o fluxo de trabalho e normalmente realiza o trabalho de leve principalmente como, por exemplo, determinando o nome da compilação, criando o rótulo no controle de versão, fazendo anotações e relatar o status da compilação.
Porque um controlador de compilação geralmente não exigem muito tempo do processador, uma máquina virtual geralmente é suficiente para servir como plataforma para um controlador de compilação. No entanto, um controlador de compilação pode exigir uma quantidade significativa de memória em determinadas situações. Portanto, certifique-se de fornecer memória suficiente para a máquina física ou a máquina virtual, no qual você configurar controladores de compilação.
O agente de compilação
Cada agente de compilação é dedicado à e controlado por um controlador de compilação única. O agente de compilação faz o trabalho de processamento intensivo e intensivo do disco. Esse trabalho inclui Obtendo arquivos e verificando os arquivos no controle de versão, o espaço de trabalho de provisionamento, compilar o código e executar testes.
Quando você montar um sistema de compilação, você pode começar com alguns agentes. Em seguida, você pode dimensionar o seu sistema de compilação para fora, adicionando mais agentes de compilação ao adicionar membros da equipe, à medida que cresce de sua base de código e como o trabalho que deve ser feito pelo seu sistema de compilação aumenta.
Se você configurar seus agentes tenham especializados de recursos, você deve atribuir marcas para esses agentes. Seguindo essa estratégia, você pode criar definições de compilação podem usar esses agentes especializados. Por exemplo, você pode aplicar a marca BVT para um pool de agentes são projetados para executar os testes no BVT. Em seguida, você poderia definir uma compilação noturno para usar somente esses agentes de compilação.
Como os agentes de compilação fazer grande parte do trabalho de uso intenso do processador, você deve verificar se a máquina de compilação tem o hardware suficientemente poderoso para habilitar o agente de compilação fazer o trabalho em um período aceitável.
Exemplos de topologia do sistema de compilação
Serviço Team Foundation Builddestina-se de forma que você pode iniciar com um sistema de compilação de menor e menos complexa. Como a base de código se expande e sua equipe cresce, você pode expandir o sistema incrementalmente com relativa facilidade adicionando máquinas de compilação para o sistema que você já possui.
Sistema de computador único (compartilhado com a camada de aplicativo)
A configuração a seguir pode oferecer suporte a uma equipe muito pequena, especialmente uma equipe irá executar compilações com pouca freqüência e somente durante o expediente. (Por exemplo, se você executar apenas uma única compilação noturna.)
Na maioria dos casos, uma topologia com uma máquina de compilação única for insuficiente por causa dos seguintes motivos:
O agente de compilação coloca exigem muito do processador, o que poderia diminuir significativamente o desempenho do seu nível de aplicativo.
O controlador de compilação pode exercer pressão sobre a memória do sistema, especialmente se o controlador está gerenciando vários agentes de compilação ativo ao mesmo tempo.
Instalando o Serviço Team Foundation Build aumenta a superfície de ataque de uma máquina de compilação. Por exemplo, um usuário mal-intencionado poderia construir uma definição de compilação para executar código arbitrário para assumir o controle do servidor e roubar dados.
Sistema de computador único (independente)
A seguinte configuração é um bom ponto de partida para uma equipe pequena.
Porque a compilação agentes realizam o trabalho de uso intenso do processador em uma máquina separada, elas não afetam o desempenho da camada do aplicativo quando as compilações são executadas.
Você também pode executar o controlador de compilação na máquina de compilação dedicado. Entretanto, a configuração na ilustração tem a vantagem de fazer alterações causa menos interrupções, como, por exemplo, quando é necessário reparar ou substituir a máquina de compilação do sistema de compilação.
A presença do controlador de compilação na mesma máquina como camada de aplicativos geralmente não é um problema do ponto de vista do processador. No entanto, você pode mover para cima a uma topologia mais escalonável pelos seguintes motivos:
O controlador de compilação pode exercer pressão sobre a memória do sistema, especialmente se o controlador está gerenciando vários agentes de compilação ativo ao mesmo tempo.
Instalando o Serviço Team Foundation Build aumenta a superfície de ataque de uma máquina de compilação. Por exemplo, um usuário mal-intencionado poderia construir uma definição de compilação para executar código arbitrário para assumir o controle do servidor e roubar dados.
Sistema de vários computadores
As equipes de médias e grandes geralmente terá várias máquinas de compilação para apoiar seus esforços. O exemplo a seguir, construir duas máquinas são implantadas.
Usando várias máquinas de compilação, você pode dedicar cada máquina para uma finalidade diferente, conforme descrito no exemplo a seguir:
Uma máquina de compilação poderia ser dedicada a esse processo de integração contínua de compilações de agentes de compilação. A equipe precisa desses tipos de compilações (especialmente gated check-in compilações) para executar rapidamente para que seu trabalho não é mantido aguardando uma compilação. Você usaria as configurações de parâmetros de processo de compilação para garantir que o compilações executado rapidamente. Essas configurações podem incluir o espaço de trabalho de limpeza, executando testes de prioridade apenas e definindo um valor baixo, para não o o tempo de execução máximo configuração.
Outra máquina de compilação poderia ser dedicada para programado e compilações de ad-hoc que exigem muito tempo para processar. Por exemplo, você pode configurar as definições de compilação destino os agentes de compilação nesta máquina para que as definições de limpar o espaço de trabalho, executam todos os testes e executar análise de código.
Multiple-machine system with multiple controllers
O seguinte exemplo de topologia pode oferecer suporte a esforços de software de nível empresarial.
Cada coleção de projeto de equipe deve ter seu próprio controlador de compilação, conforme mostrado na ilustração. Observe como essa topologia isola as máquinas de compilação. Os membros da equipe que trabalham na coleção de projeto de equipe a pode usam os agentes de compilação que o controlador de construir a controla.
Next Steps
Agora que você entende como um Team Foundation Build system works, que você está pronto para levar as próximas etapas: