Microsoft Team Foundation Server

O Team Foundation Server (comumente abreviado para TFS) é um produto da Microsoft que fornece gerenciamento de código fonte (com Team Foundation Version Control ou Git), relatórios, gerenciamento de requisitos, gerenciamento de projetos (para desenvolvimento de software ágil e equipes de cachoeiras) Gerenciamento de laboratório, testes e capacidades de gerenciamento de releases. Ele abrange todo o ciclo de vida do aplicativo e permite recursos do DevOps. O TFS pode ser usado como um back-end para vários ambientes de desenvolvimento integrado (IDEs), mas é adaptado para o Microsoft Visual Studio e o Eclipse em todas as plataformas.

Arquitetura

 

Arquitetura do servidor

 

Team Foundation Server é construído em arquitetura multi-camada, escalável. A estrutura principal consiste em uma camada de aplicativo responsável por processar a lógica e manter o portal de aplicativo da Web (conhecido como Team Web Access ou TWA). O TFS é criado usando os serviços da Web do Windows Communication Foundation. Estes podem ser consumidos por qualquer cliente, embora o modelo de objeto do cliente é recomendado. A camada de dados ea camada de aplicativo podem existir na mesma máquina.

Para suportar escalabilidade, a camada de aplicativo pode ser balanceada de carga e a camada de dados pode ser agrupada. Se estiver usando o Microsoft SQL Server 2012, os Clusters de Failover do AlwaysOn SQL Server e os Grupos de Disponibilidade são suportados, o que permite a replicação geográfica de dados. [4] O recipiente principal é a coleção do projeto. Uma coleção de projetos é um banco de dados que contém um grupo de Projetos de Equipe. A Coleção de Projetos é outro mecanismo de escalabilidade, em que cada coleção pode ser colocada em diferentes Servidores SQL ou instâncias do SQL Server. O banco de dados de configuração 'Oe' por instância TFS armazena os metadados da coleção de projetos. Os dados dos bancos de dados de coleta do projeto são agregados ao banco de dados do warehouse, que desnormaliza os dados em preparação para o carregamento em um cubo do Analysis Services. O warehouse eo cubo permitem relatórios complexos de tendências e análise de dados. 

O TFS pode se integrar a um farm do SharePoint existente. O SQL Server Reporting Services é suportado para relatórios mais avançados contra o data warehouse ou o cubo de dados do Analysis Services. Estas instalações podem estar no mesmo sistema ou em sistemas diferentes. Construir servidores, servidores de gerenciamento de laboratório, servidores de gerenciamento de liberação e servidores proxy (para reduzir parte da carga na camada de aplicativo), máquinas de teste e máquinas de teste de carga também podem ser adicionados à infraestrutura. Para oferecer suporte a equipes que exigem o planejamento de projetos empresariais, o TFS também se integra ao Microsoft Project Server, que permite o gerenciamento de portfólio, gerenciamento de recursos e acompanhamento de projetos em nível empresarial.

Extensibilidade


A Microsoft fornece duas APIs redistribuídas autônomas para se conectar ao TFS. Um é um SDK Java, o outro é um SDK do .NET Framework. Essas APIs permitem a conectividade do cliente com o TFS. Como o TFS é escrito em uma arquitetura orientada a serviços, ele pode se comunicar com praticamente qualquer ferramenta que possa chamar um serviço da Web. Outro mecanismo extensível é a assinatura de alertas do sistema: por exemplo, alertas de que um item de trabalho foi alterado ou uma compilação concluída. Existem aproximadamente 20 alertas pré-configurados e as equipes podem configurar quantos alertas adicionais forem necessários. Quando usados ​​em um cenário extensível, esses alertas podem ser enviados para um serviço da Web, desencadeando ações para alterar ou atualizar itens de trabalho.

O data warehouse também pode ser estendido através da criação de adaptadores de data warehouse personalizados.  Com a introdução do TFS 2012, os suplementos personalizados também podem ser criados para o Team Web Access, chamado Web Access Extensions.

Clientes


O TFS suporta o Visual Studio 2010 e posterior, o Microsoft Test Manager (MTM) 2012 e 2013. O Eclipse, versões mais antigas do Visual Studio e outros ambientes podem ser conectados ao TFS usando o Microsoft Source Code Control Integration Provider (Provedor MSSCCI - Chave "). Essas ferramentas fornecem acesso total aos recursos do TFS.Microsoft Excel e Microsoft Project também são suportados para ajudar a gerenciar itens de trabalho que permite atualizar em massa, entrada em massa e exportação em massa de itens de trabalho. O Microsoft Project pode ser usado para agendar o trabalho quando estiver em conformidade com uma metodologia de desenvolvimento de software de cachoeira. Tanto o Excel como o Project suportam atualizações bi-direcionais dos dados. Isto permite, por exemplo, que os gerentes de projeto coloquem um cronograma no projeto, tenham esse trabalho importado para o TFS, onde os desenvolvedores atualizam o trabalho e, em seguida, o cronograma pode ser atualizado sem que o gerente de projeto tenha que realizar trabalho extra.

Controle de versão


O Team Foundation Server suporta dois tipos diferentes de controle de origem - seu mecanismo de controle de origem original chamado Team Foundation Version Control (TFVC) e com o lançamento do TFS 2013, ele suporta o Git como um repositório de controle de origem.

Team Foundation Source Control


O TFVC é um sistema de controle de versão centralizado que permite que as equipes armazenem qualquer tipo de artefato em seu repositório. O TFVC suporta dois tipos diferentes de espaços de trabalho ao trabalhar com ferramentas de cliente - Espaços de Trabalho do Servidor e Espaços de Trabalho Locais. As áreas de trabalho do servidor permitem que os desenvolvedores bloqueiem os arquivos para check-out e forneçam notificações a outros desenvolvedores de que os arquivos estão sendo editados. Uma queixa frequente para esse modelo é que os arquivos na máquina de desenvolvimento são marcados como somente leitura. Também exige que os desenvolvedores "fiquem offline" quando o servidor não puder ser contatado. Espaços de trabalho locais foram projetados para evitar esses problemas. Em um cenário de espaço de trabalho local, os arquivos não são somente leitura e não precisam ser verificados antes de trabalhar neles. Enquanto os arquivos estiverem na máquina local do desenvolvedor, não importa se o servidor está conectado ou não. Conflitos são tratados no momento do check-in.
 

Git


Com o lançamento do TFS 2013, a Microsoft adicionou suporte nativo para o Git. Esta não é uma implementação específica da Microsoft, mas uma implementação padrão baseada na biblioteca libgit2. Esta é a mesma biblioteca que alimenta o popular GitHub e o código é livremente disponível a partir do GitHub. Como a Microsoft tomou a abordagem de usar uma biblioteca padrão, qualquer cliente Git agora pode ser usado nativamente com TFS (em outras palavras, os desenvolvedores podem usar suas ferramentas favoritas e nunca instalar os clientes TFS padrão). Isso permite que ferramentas em qualquer plataforma e qualquer IDE que suportem o Git para se conectar ao TFS. Por exemplo, tanto o Xcode quanto o Android Studio suportam plug-ins do Git. Além disso, se os desenvolvedores não quiserem usar o plug-in do Team Explorer Everywhere da Microsoft para o Eclipse, eles podem optar por usar o eGit [15] para se conectar ao TFS.

O uso do Git não exclui o benefício de usar o item de trabalho ou o sistema de compilação do TFS. Ao verificar o código com o Git, referenciar a ID do item de trabalho no comentário de check-in associará o check-in ao item de trabalho determinado. Da mesma forma, Team Build também irá construir projetos Git.

Uma das principais razões para usar o TFS como um repositório Git é que ele é suportado pelo SQL Server e tem a mesma proteção que o Team Foundation Version Control. Isso dá aos desenvolvedores algumas escolhas ao escolher o tipo de projeto e estilo de trabalho que funciona melhor para eles.


Referências

https://en.wikipedia.org/wiki/Team_Foundation_Server

https://msdn.microsoft.com/en-us/library/ms181238(v=vs.90).aspx

Um comentário: