Visão geral da arquitetura para Azure DevOps Server

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Para planejar e gerenciar melhor sua implantação, primeiro você deve entender a arquitetura subjacente do Azure DevOps Server. A compreensão da arquitetura pode ajudá-lo a manter o funcionamento geral da implantação e ajudar a garantir a disponibilidade geral dos servidores e dos serviços que suas equipes de desenvolvimento necessitam.

Você pode implantar Azure DevOps Server de várias maneiras: em um servidor; em muitos servidores; ou em um domínio ou grupo de trabalho ou entre domínios. Como alternativa, você pode optar por usar Azure DevOps Services, em que todos os elementos de servidor da implantação são hospedados para você pela Microsoft. A compreensão da arquitetura pode ajudá-lo a decidir qual topologia provavelmente atende melhor às suas necessidades comerciais. Independentemente de sua escolha de topologia, se você entender a arquitetura subjacente Azure DevOps Server, poderá gerenciar melhor os requisitos físicos e lógicos. Este artigo fornece uma visão geral simples das várias arquiteturas, com links para obter mais informações sobre implantações de exemplo. Fornece também informações técnicas sobre os serviços, bancos de dados, informações de configuração e portas e protocolos de rede de implantações locais.

Para entender a arquitetura de Azure DevOps Server e como ela afeta sua implantação, considere o seguinte:

  • O aplicativo lógico, os dados e as camadas de cliente do Azure DevOps e se você deseja usar um ou mais servidores para o aplicativo e as camadas de dados ou se deseja que o aplicativo e as camadas de dados sejam hospedados na nuvem para você usando Azure DevOps Services
  • O local dos servidores físicos ou virtuais que hospedam essas camadas
  • Team Foundation Build e o número e o local dos computadores de build executados em seu ambiente, incluindo quantos talvez você precise para dar suporte às suas práticas de desenvolvimento ou se você usará os serviços de nuvem do Azure Pipelines para criar e implantar seus aplicativos de software
  • A necessidade potencial do Servidor Proxy do Azure DevOps

Além disso, você deve considerar as interações entre essas entidades. Por exemplo, se você optar por usar o serviço de Azure DevOps Server hospedado, deverá garantir que seus clientes possam acessar o serviço na porta 443. Se você optar por implantar Azure DevOps Server localmente, deverá saber quais serviços Web, bancos de dados e modelos de objeto Azure DevOps Server usa. Além disso, você deve saber quais portas e protocolos de rede Azure DevOps Server usa por padrão e quais portas de rede você pode personalizar. Por fim, você deve entender quais permissões devem ser definidas em Azure DevOps Server e os componentes e programas dos quais sua implantação depende.

Além de seus próprios serviços, Azure DevOps Server depende de outros serviços para funcionar. Para obter mais informações sobre esses serviços, consulte conceitos Azure DevOps Server e Componentes do data warehouse Azure DevOps Server. Para obter mais informações sobre os requisitos e as dependências para instalação, consulte Azure DevOps Server guia de instalação.

Importante

Você não deve modificar manualmente nenhum dos bancos de dados Azure DevOps Server, a menos que seja instruído a fazê-lo por Suporte da Microsoft ou esteja seguindo os procedimentos descritos para fazer backup manual dos bancos de dados. Quaisquer outras modificações podem invalidar o contrato de serviço.

Azure DevOps Services

Azure DevOps Services

A Microsoft oferece a opção de usar Azure DevOps Services, que pode hospedar todos os aspectos do lado do servidor de Azure DevOps Server para você. Seu código-fonte, seus itens de trabalho, suas configurações de compilação e seus recursos de equipe são todos hospedados na nuvem. Do ponto de vista arquitetônico, isso simplifica muito o uso de Azure DevOps Server, pois os únicos aspectos da arquitetura que você precisa considerar são os componentes do cliente e seu acesso à Internet.

Ao usar o Azure DevOps Services, você usa um navegador da Web para se conectar ao serviço usando sua conta Microsoft. Você pode criar projetos, adicionar membros à sua equipe e trabalhar como faria com um Azure DevOps Server instalado localmente, sem a sobrecarga de administrar os servidores. Azure DevOps Services hospeda a camada de aplicativo, a camada de dados e os servidores de build na nuvem.

Para saber mais sobre os serviços de nuvem versus implantações locais, examine Azure DevOps Services versus Azure DevOps Server.

O modelo de objeto

Com a arquitetura hospedada ou implantada localmente, você pode estender os recursos e a funcionalidade do Azure DevOps escrevendo um aplicativo baseado em seu servidor ou modelo de objeto cliente. Em todos os tipos de implantação, é possível gravar aplicativos que estendem os recursos do cliente. No entanto, se você quiser estender os recursos do servidor, seu aplicativo deverá ser executado no servidor da camada de aplicativo. Para estender os recursos do cliente, você deve executar o aplicativo no mesmo computador que o Team Explorer.

O modelo de objeto Azure DevOps Server

Serviços web e bancos de dados para implantações locais

Azure DevOps Server inclui um conjunto de serviços Web e bancos de dados que você instala e configura separadamente no servidor ou servidores que hospedam o aplicativo lógico, os dados e as camadas de cliente para o Azure DevOps. Alguns recursos, como o quadro de tarefas e recursos baseados em equipe de lista de pendências, são totalmente baseados na Web e acessados exclusivamente por meio de um portal da Web, um serviço baseado na Web do lado do cliente. Outros, como os recursos de controle de versão, podem ser acessados por meio de um portal da Web ou por meio de um aplicativo cliente. As ilustrações a seguir fornecem uma exibição de alto nível de serviços Web, aplicativos e bancos de dados para implantações locais de Azure DevOps Server.

Azure DevOps Server main camadas de serviço

Serviços de Azure DevOps Server opcionais

Azure DevOps Server clientes

Serviços de nível de coleção

Os serviços de nível de coleção fornecem a funcionalidade para operações no nível da coleção de projetos. Você pode criar aplicativos que estendem Azure DevOps Server usando alguns desses serviços. Para obter mais informações sobre como criar aplicativos para Azure DevOps Server, consulte Desenvolver extensões.

Observação

Alguns serviços aparecem em mais de um nível. Por exemplo, as funções do serviço de Registro no nível da coleção e no nível do servidor e aparecem nas duas listas.

Serviços de estrutura:

  • Serviço de Registro
  • Serviço de registro (para compatibilidade com versões anteriores do Azure DevOps Server)
  • Serviço de Propriedade
  • Serviço de Eventos
  • Serviço de Segurança
  • Serviço de Local
  • Serviço de Gerenciamento de Identidades
  • Serviço Web de Controle de Versão
  • Serviço Web de Acompanhamento do Item de Trabalho
  • Team Foundation Build Web service
  • Serviço Web de Gerenciamento de Laboratórios
  • Serviço Web de Administração de VMM
  • Serviço Web de Controlador de Agente de Teste

Serviços no nível do servidor

Os serviços de nível de servidor (também conhecidos como serviços no nível do aplicativo) fornecem a funcionalidade para operações para Azure DevOps Server como um aplicativo de software. Você pode criar aplicativos que estendem Azure DevOps Server usando alguns desses serviços.

Serviços de estrutura:

  • Serviço de Registro
  • Serviço de eventos
  • Serviço de Coleção de Projetos
  • Serviço de Propriedade
  • Serviço de Segurança
  • Serviço de Local
  • Serviço de Gerenciamento de Identidades
  • Serviço de Administração
  • Serviço de Gerenciamento de Coleções
  • Serviço de Catálogo

Camada de dados

A camada de dados inclui dados, procedimentos armazenados e outra lógica associada. Quando você usa Azure DevOps Services, a camada de dados é hospedada para você usando SQL Server Azure. Em uma implantação local de Azure DevOps Server, a camada de dados lógica consiste nos seguintes repositórios operacionais em SQL Server. Esses repositórios podem estar localizados em um servidor físico ou distribuídos em vários servidores. Você pode criar aplicativos que estendem Azure DevOps Server usando alguns desses repositórios operacionais.

  • Banco de dados de configuração (TFS_Configuration)
  • Depósito do aplicativo (TFS_Warehouse)
  • Banco de dados do Analysis Services (Tfs_Analysis)
  • Bancos de dados para coleções de projetos (TFS_CollectionName)

A tabela a seguir fornece uma lista dos bancos de dados que Azure DevOps Server usa em implantações locais. A menos que indicado de outra forma, você pode mover todos os bancos de dados nessa lista do servidor e da instância original em que eles estão instalados e restaurá-los para outro servidor ou instância.

Nome do Banco de Dados Descrição Servidor
Tfs_configuration Esse banco de dados armazena o catálogo de recursos e as informações de configuração para Azure DevOps Server. Esse banco de dados contém os repositórios operacionais para Azure DevOps Server. Instância de SQL Server que é usada quando Azure DevOps Server é instalado e configurado.
Tfs_warehouse Esse banco de dados armazena os dados para relatórios. Instância de SQL Server que é usada quando Azure DevOps Server é instalado e configurado.
Tfs_analysis Esse banco de dados multidimensional armazena os dados agregados de coleções de projetos. Instância de SQL Server que é usada quando SQL Server Analysis Services é instalado e configurado.
Bancos de dados para coleções de projetos Um banco de dados para cada coleção de projetos, contendo dados de todos os projetos nessa coleção. Instância de SQL Server compatível com Azure DevOps Server.

Camada do cliente

A camada do cliente se comunica com a camada do aplicativo por meio do modelo de objeto do servidor e usa os mesmos serviços Web que estão listados para essa camada. Isso é verdadeiro se você implantar Azure DevOps Server localmente ou se usar Azure DevOps Services. Além desse modelo, a camada do cliente consiste nos componentes Visual Studio Industry Partners (VSIP), na integração do Microsoft Office, nas interfaces da linha de comandos e em uma estrutura para políticas de check-in.

Configuração

O serviço hospedado depende dos serviços do cliente, implantados localmente e de uma conexão com a Internet para o aplicativo e as camadas de dados hospedados na nuvem. Uma implantação local de Azure DevOps Server depende do SQL Server, dos Serviços de Informações da Internet (IIS) e do sistema operacional Windows. Dependendo da topologia escolhida, Azure DevOps Server também pode depender de SQL Server Reporting Services ou produtos do SharePoint. Portanto, as informações de configuração para Azure DevOps Server podem ser armazenadas em qualquer um dos seguintes locais:

  • Armazenamentos de dados do IIS.
  • Arquivos de configuração para Azure DevOps Server.
  • Fontes de dados do Reporting Services (ex.: dados do TFSREPORTS).
  • Banco de dados de configuração para Azure DevOps Server. O registro Azure DevOps Server faz parte do banco de dados de configuração.
  • Registro do Windows.

Para obter exemplos de topologias de implantação locais diferentes e onde esses recursos são armazenados, consulte Exemplos de topologia simples, exemplos de topologia moderada e exemplos de topologia complexa. Ao manter uma implantação local de Azure DevOps Server, você deve levar essas fontes de configuração em conta. Para alterar a configuração de alguma maneira, talvez seja necessário modificar informações que estão armazenadas em vários locais. Talvez você também precise alterar as informações de configuração para os dados e as camadas de cliente. Azure DevOps Server inclui um console de administração e vários utilitários de linha de comando para ajudá-lo a fazer essas alterações. Para obter mais informações, consulte Referência rápida da tarefa administrativa.

Active Directory e sincronização de identidades de grupo

Em implantações locais em que o Azure DevOps está em execução em um domínio do Active Directory, as informações de grupo e identidade são sincronizadas quando ocorrem qualquer um dos seguintes eventos:

  • O servidor da camada de aplicativo é iniciado.
  • Um grupo do Active Directory é adicionado a um grupo do Azure DevOps.

O período de tempo especificado no trabalho agendado tiver decorrido. O padrão é uma hora e todos os grupos em Azure DevOps Server são atualizados a cada 24 horas.

O IMS (Identity Management Services) sincroniza com o Active Directory e as identidades alteradas se propagam do servidor para os clientes. Por padrão, todos os grupos são atualizados dentro de 24 horas, mas você pode personalizá-lo para atender melhor às necessidades da sua implantação. Para obter mais informações, consulte Considerações sobre relações de confiança e florestas para Azure DevOps Server. Para implantações locais que não usam o Active Directory, consulte Gerenciando Azure DevOps Server em um grupo de trabalho.

Grupos e permissões

Em uma implantação local, Azure DevOps Server tem seu próprio conjunto de grupos e permissões padrão que você pode definir no nível do projeto, da coleção ou do servidor. Você pode criar grupos personalizados e personalizar permissões nos níveis individuais e de grupo. No entanto, os usuários ou grupos que você adiciona a Azure DevOps Server não são adicionados automaticamente a dois componentes nos quais as implantações locais de Azure DevOps Server podem depender: Produtos do SharePoint e Reporting Services. Se sua implantação usar esses programas, você deverá adicionar usuários e grupos a eles e conceder as permissões apropriadas para que esses usuários ou grupos funcionem corretamente em todas as operações no Azure DevOps Server. Para obter mais informações, consulte Gerenciar usuários ou grupos em Azure DevOps Server.

Para implantações hospedadas, o acesso é controlado por meio de uma combinação de contas da Microsoft e da associação da equipe. Para obter mais informações, consulte a visão geral do Azure DevOps Services.

Portas e protocolos de rede

Por padrão, uma implantação local de Azure DevOps Server é configurada para usar portas e protocolos de rede específicos. A ilustração a seguir mostra o tráfego de rede para Azure DevOps Server em uma implantação simples.

Instalação local simples

Da mesma forma, o serviço hospedado para Azure DevOps Server é configurado para usar portas e protocolos de rede específicos. A ilustração a seguir mostra o tráfego de rede em uma implantação hospedada.

Hosted Azure DevOps Server

 

A ilustração a seguir mostra o tráfego de rede em uma implantação mais complexa que inclui os componentes do Visual Studio Lab Management. (Observe que o Lab Management foi preterido para o TFS 2017 e versões posteriores.)

Camada de aplicativo

Ambientes virtuais

máquinas virtuais

As máquinas virtuais usam a porta 80 para se comunicar com qualquer controlador de teste sobre o download de um agente de gerenciamento de laboratório. Verifique se essa porta está habilitada se você estiver tendo problemas de comunicação.

Configurações de rede padrão

Por padrão, a comunicação entre os computadores em uma implantação do Azure DevOps usa os protocolos e portas mostrados na tabela a seguir. Se um asterisco (*) seguir o número da porta, você poderá personalizar essa porta.

Camada e serviço Protocolo Porta
Camada de aplicativo – Serviços Web HTTP/HTTPS 8080/443*
Camada de aplicativo – Administração de Produtos do SharePoint HTTP 17012* se os Produtos do SharePoint tiverem sido instalados com Azure DevOps Server; caso contrário, gerados aleatoriamente
Camada de aplicativo – Produtos e Reporting Services do SharePoint HTTP
Serviço Instrumentação de Gerenciamento do Windows (WMI) (necessário durante a instalação para especificar e verificar as URLs para Reporting Services)
80* Porta dinâmica
Camada de dados TCP MS-SQL 1433*
Camada de dados (SQL Server Analysis Services) MS-AS padrão (2382 ou 2383)*
A porta padrão varia dependendo da versão de SQL Server instalada e do tipo de instância. Use SQL Server Configuration Manager para determinar as portas usadas por sua implantação.
Servidor Proxy do Azure DevOps – cliente para proxy HTTP 8081*
Servidor Proxy do Azure DevOps – proxy para camada de aplicativo HTTP/HTTPS 8080/443*
Camada de cliente - Reporting Services HTTP 80*
Camada de cliente - Serviços Web HTTP/HTTPS 8080/443*
Criar controlador para a camada de aplicativo HTTP/HTTPS 8080/443
Agente de compilação para camada de aplicativo HTTP/HTTPS 8080/443
Release Management Server HTTP ou HTTPS 1000*
Release Management Client HTTP ou HTTPS 1000*
Release Management Agent HTTP ou HTTPS 1000*
Controlador de teste para camada de aplicativo HTTP/HTTPS 8080/443*
Camada de aplicativo para controlador de teste .NET remoto 6901*
Camada de aplicativo para Sistema de Nomes de Domínio (DNS) Atualização Dinâmica de DNS 53
Camada de aplicativo – Virtual Machine Manager HTTP 8100
Controlador de teste para agente de teste .NET remoto 6910*
Agente de teste para controlador de teste .NET remoto 6901*
Controlador de compilação para agente de compilação SOAP sobre HTTP 9191
Agente de laboratório para agente de laboratório em um ambiente isolado Soquetes TCP 9050
Agente de compilação para controlador de compilação SOAP sobre HTTP 9191
Console do Administrador do Virtual Machine Manager – Virtual Machine Manager HTTP 8100
Virtual Machine Manager– Hosts do Virtual Machine Manager Windows Remote Management (WinRM) para executar ações
Serviço de Transferência Inteligente em Segundo Plano (BITS) para transferir dados
80 para executar ações
443 para transferir dados
Virtual Machine Manager– Servidor de bibliotecas do Virtual Machine Manager WinRm para executar ações
BITS para transferir dados
80 para executar ações
443 para transferir dados
Camada de aplicativo – Hosts do Virtual Machine Manager Comunicação do Distributed Component Object Model/Interface de Gerenciamento do Windows (DCOM/WMI) para transferir dados 135
Atribuído dinamicamente no intervalo de 49152 a 65535
Camada de cliente – Hosts do Virtual Machine Manager Conexão baseada em host para a máquina virtual. 2179 para executar conexões baseadas em host
Serviços hospedados HTTPS 443

Configurações de rede personalizáveis

Como mostra a tabela anterior, você pode alterar a comunicação entre o aplicativo, os dados e as camadas de cliente em implantações locais modificando Azure DevOps Server para usar portas personalizadas. A tabela a seguir descreve alterações de exemplo em portas de HTTP para HTTPS.

Observação

Para configurar Azure DevOps Server usar HTTPS e Secure Sockets Layer, você não deve apenas habilitar portas para o tráfego de rede HTTPS, mas também executar muitas outras tarefas. Para obter mais informações, consulte Configurar HTTPS com SSL (Secure Sockets Layer) para Azure DevOps Server.

Serviço Protocolo Porta
Serviços Web com SSL HTTPS Configurado pelo administrador
HTTPS da Administração Central do SharePoint Configurado pelo administrador
Produtos SharePoint HTTPS 443
Reporting Services HTTPS 443
Client Web Services HTTPS Configurado pelo administrador
Release Management HTTPS Configurado pelo administrador