Condividi tramite


Panoramica dell'architettura per Azure DevOps Server

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

Per pianificare e gestire al meglio la distribuzione, è prima necessario comprendere l'architettura sottostante di Azure DevOps Server. Comprendere l'architettura consente di mantenere l'integrità complessiva della distribuzione e garantire la disponibilità complessiva dei server e dei servizi richiesti dai team di sviluppo.

È possibile distribuire Azure DevOps Server in diversi modi: in un server; su molti server; o in un dominio o in un gruppo di lavoro o in più domini. In alternativa, è possibile scegliere di usare Azure DevOps Services, in cui tutti gli elementi server della distribuzione sono ospitati da Microsoft. Comprendere l'architettura può aiutare a decidere quale topologia è più probabile soddisfare le esigenze aziendali. Indipendentemente dalla scelta della topologia, se si comprende l'architettura sottostante al server Azure DevOps, è possibile gestire meglio i requisiti fisici e logici. Questo articolo offre una semplice panoramica delle varie architetture, con collegamenti ad altre informazioni sulle distribuzioni di esempio. Fornisce inoltre informazioni tecniche sui servizi, i database, le informazioni di configurazione e le porte di rete e i protocolli delle distribuzioni locali.

Per comprendere l'architettura di Azure DevOps Server e come influisce sulla distribuzione, è necessario tenere presente quanto segue:

  • L'applicazione logica, i dati e i livelli client di Azure DevOps e se si vogliono usare uno o più server per l'applicazione e i livelli dati oppure se si vuole che l'applicazione e i livelli dati siano ospitati nel cloud usando Azure DevOps Services
  • Posizione dei server fisici o virtuali che ospitano tali livelli
  • Team Foundation Build e il numero e la posizione dei computer di build in esecuzione nell'ambiente, tra cui quanti potrebbero essere necessari per supportare le procedure di sviluppo o se si useranno i servizi cloud di Azure Pipelines per compilare e distribuire le applicazioni software
  • La potenziale necessità del server proxy di Azure DevOps

Inoltre, è necessario considerare le interazioni tra queste entità. Ad esempio, se si sceglie di usare il servizio Azure DevOps Server ospitato, è necessario assicurarsi che i client possano accedere al servizio sulla porta 443. Se si sceglie di distribuire Azure DevOps Server in locale, è necessario conoscere i servizi Web, i database e i modelli a oggetti usati da Azure DevOps Server. Inoltre, è necessario conoscere le porte di rete e i protocolli usati da Azure DevOps Server per impostazione predefinita e quali porte di rete è possibile personalizzare. Infine, è necessario comprendere quali autorizzazioni è necessario impostare in Azure DevOps Server e i componenti e i programmi da cui dipende la distribuzione.

Oltre ai propri servizi, Azure DevOps Server dipende da altri servizi per funzionare. Per ulteriori informazioni su questi servizi, vedere Concetti di Azure DevOps Server e Componenti del data warehouse di Azure DevOps Server. Per altre informazioni sui requisiti e sulle dipendenze per l'installazione, vedere la guida all'installazione di Azure DevOps Server.

Importante

Non è consigliabile modificare manualmente uno dei database del server Azure DevOps, a meno che non venga richiesto dal supporto tecnico Microsoft o di seguire le procedure descritte per il backup manuale dei database. Eventuali altre modifiche possono invalidare il contratto di servizio.

Servizi di Azure DevOps

Azure DevOps Services

Microsoft offre la possibilità di usare Azure DevOps Services, che può ospitare tutti gli aspetti lato server di Azure DevOps Server. Il codice sorgente, gli elementi di lavoro, le configurazioni di compilazione e le funzionalità del team sono tutti ospitati nel cloud. Dal punto di vista dell'architettura, questo semplifica notevolmente l'uso di Azure DevOps Server, in quanto gli unici aspetti dell'architettura da considerare sono i componenti client e il relativo accesso a Internet.

Quando si usa Azure DevOps Services, si usa un Web browser per connettersi al servizio usando l'account Microsoft. È possibile creare progetti, aggiungere membri al team e lavorare come si farebbe con un server Azure DevOps installato in locale, senza il sovraccarico di amministrazione dei server. Azure DevOps Services ospita il livello applicativo, il livello di dati e i server di build nel cloud.

Per altre informazioni sui servizi cloud rispetto alle distribuzioni locali, vedere Azure DevOps Services e Azure DevOps Server.

Modello a oggetti

Con l'architettura ospitata o distribuita in locale, è possibile estendere le funzionalità e le funzionalità di Azure DevOps scrivendo un'applicazione basata sul relativo modello a oggetti client o server. In tutti i tipi di distribuzione è possibile scrivere applicazioni che estendono le funzionalità client. Tuttavia, se si desidera estendere le funzionalità del server, l'applicazione deve essere eseguita nel server a livello di applicazione. Per estendere le funzionalità client, è necessario eseguire l'applicazione nello stesso computer di Team Explorer.

Modello a oggetti di Azure DevOps Server

Servizi Web e database per distribuzioni locali

Azure DevOps Server include un set di servizi Web e database installati e configurati separatamente nel server o nei server che ospitano l'applicazione logica, i dati e i livelli client per Azure DevOps. Alcune funzionalità, ad esempio la scheda attività e le funzionalità basate sul team di backlog, sono completamente basate sul Web e sono accessibili esclusivamente tramite un portale Web, un servizio basato sul Web sul lato client. Altri, ad esempio le funzionalità di controllo della versione, possono essere accessibili tramite un portale Web o tramite un'applicazione client. Le illustrazioni seguenti offrono una panoramica generale dei servizi Web, delle applicazioni e dei database per le distribuzioni locali di Azure DevOps Server.

Livelli di servizio principali di Azure DevOps Server

Servizi facoltativi di Azure DevOps Server

Client di Azure DevOps Server

Servizi a livello di raccolta

I servizi a livello di raccolta forniscono la funzionalità per le operazioni al livello della raccolta di progetti. È possibile creare applicazioni che estendono Azure DevOps Server usando alcuni di questi servizi. Per altre informazioni sulla creazione di applicazioni per Azure DevOps Server, vedere Sviluppare estensioni.

Annotazioni

Alcuni servizi vengono visualizzati in più livelli. Ad esempio, il servizio Registro di sistema funziona a livello di raccolta e a livello di server e viene visualizzato in entrambi gli elenchi.

Servizi di framework:

  • Servizio di registrazione
  • Servizio di registrazione (per compatibilità con le versioni precedenti di Azure DevOps Server)
  • Servizio proprietà
  • Servizio eventi
  • Servizio di sicurezza
  • Servizio di localizzazione
  • Servizio Identity Management
  • Servizio Web controllo della versione
  • Servizio web per il tracciamento degli elementi di lavoro
  • Servizio Web Build di Team Foundation
  • Servizio Web di Gestione del Laboratorio
  • Servizio Web amministrazione VMM
  • Servizio Web di Controllo degli Agenti di Test

Servizi a livello di server

I servizi a livello di server (noti anche come servizi a livello di applicazione) forniscono la funzionalità per le operazioni per Azure DevOps Server come applicazione software. È possibile creare applicazioni che estendono Azure DevOps Server usando alcuni di questi servizi.

Servizi del framework:

  • Servizio di registrazione
  • Servizio eventi
  • Servizio raccolta progetti
  • Servizio immobiliare
  • Servizio di sicurezza
  • Servizio di localizzazione
  • Servizio Identity Management
  • Servizio di amministrazione
  • Servizio di gestione delle raccolte
  • Servizio catalogo

Livello di dati

Il livello dati include dati, stored procedure e altra logica associata. Quando si usa Azure DevOps Services, il livello dati è ospitato per l'utente usando SQL Server Azure. In una distribuzione locale di Azure DevOps Server, il livello dati logico è costituito dai seguenti archivi operativi all'interno di SQL Server. Questi archivi possono trovarsi in un server fisico o distribuiti tra più server. È possibile creare applicazioni che estendono Azure DevOps Server usando alcuni di questi archivi operativi.

  • Database di configurazione (TFS_Configuration)
  • Magazzino applicazioni (TFS_Warehouse)
  • Database di Analysis Services (TFS_Analysis)
  • Database per le raccolte di progetti (TFS_CollectionName)

La tabella seguente fornisce un elenco dei database usati da Azure DevOps Server nelle distribuzioni locali. Se non diversamente specificato, è possibile spostare tutti i database in questo elenco dal server originale e dall'istanza in cui sono installati e ripristinarli in un altro server o istanza.

Nome del database Descrizione Servitore
TFS_Configuration Questo database archivia il catalogo delle risorse e le informazioni di configurazione per Azure DevOps Server. Questo database contiene gli archivi operativi per Azure DevOps Server. Istanza di SQL Server usata quando Azure DevOps Server è installato e configurato.
TFS_Warehouse Questo database archivia i dati per i report. Istanza di SQL Server usata quando Azure DevOps Server è installato e configurato.
TFS_Analysis Questo database multidimensionale archivia i dati aggregati dalle raccolte di progetti. Istanza di SQL Server usata quando SQL Server Analysis Services è installato e configurato.
Database per le raccolte di progetti Un database per ogni raccolta di progetti, contenente i dati di tutti i progetti in tale raccolta. Istanza di SQL Server compatibile con Azure DevOps Server.

Livello client

Il livello client comunica con il livello applicazione tramite il modello a oggetti server e usa gli stessi servizi Web elencati per tale livello. Questo vale se si distribuisce Azure DevOps Server in locale o se si usa Azure DevOps Services. Oltre a questo modello, il livello client è costituito da componenti dei Visual Studio Industry Partners (VSIP), integrazione con Microsoft Office, interfacce a riga di comando e un framework per i criteri di check-in.

Configurazione

Il servizio ospitato dipende dai servizi client, distribuiti in locale e da una connessione Internet ai livelli di dati e dell'applicazione ospitati nel cloud. Una distribuzione locale di Azure DevOps Server dipende da SQL Server, Internet Information Services (IIS) e dal sistema operativo Windows. In base alla topologia scelta, Azure DevOps Server potrebbe dipendere anche da SQL Server Reporting Services o prodotti SharePoint. Di conseguenza, le informazioni di configurazione per Azure DevOps Server possono essere archiviate in una delle posizioni seguenti:

  • Archivi dati IIS.
  • File di configurazione per Azure DevOps Server.
  • Origini dati per Reporting Services(ad esempio, dati TFSREPORTS).
  • Database di configurazione per Azure DevOps Server. Il Registro di sistema di Azure DevOps Server fa parte del database di configurazione.
  • Registro di sistema di Windows.

Per esempi di topologie di distribuzione locali diverse e in cui sono archiviate queste risorse, vedere Esempi di topologia semplice, esempi di topologia moderata ed esempi di topologia complessa. Quando si gestisce una distribuzione locale di Azure DevOps Server, è necessario tenere conto di queste origini di configurazione. Per modificare la configurazione in qualsiasi modo, potrebbe essere necessario modificare le informazioni archiviate in più posizioni. Potrebbe anche essere necessario modificare le informazioni di configurazione per i livelli dati e client. Azure DevOps Server include una console di amministrazione e diverse utilità della riga di comando che consentono di apportare queste modifiche. Per altre informazioni, vedere Guida di riferimento rapido all'attività amministrativa.

Active Directory e sincronizzazione delle identità del gruppo

Nelle distribuzioni locali in cui Azure DevOps è in esecuzione in un dominio di Active Directory, le informazioni di gruppo e identità vengono sincronizzate quando si verifica uno degli eventi seguenti:

  • Viene avviato il server a livello di applicazione.
  • Un gruppo di Active Directory viene aggiunto a un gruppo di Azure DevOps.

Il periodo di tempo specificato nel processo pianificato è trascorso. Il valore predefinito è un'ora e tutti i gruppi in Azure DevOps Server vengono aggiornati ogni 24 ore.

Identity Management Services (IMS) si sincronizza con Active Directory e le identità modificate si propagano dal server ai client. Per impostazione predefinita, tutti i gruppi vengono aggiornati entro 24 ore, ma è possibile personalizzarlo in base alle esigenze della distribuzione. Per altre informazioni, vedere Considerazioni su trust e foreste per Azure DevOps Server. Per le distribuzioni locali che non usano Active Directory, vedere Gestione di Azure DevOps Server in un gruppo di lavoro.

Gruppi e autorizzazioni

In una distribuzione locale, Azure DevOps Server ha un proprio set di gruppi e autorizzazioni predefiniti che è possibile impostare a livello di progetto, raccolta o server. È possibile creare gruppi personalizzati e personalizzare le autorizzazioni a livello di gruppo e singoli livelli. Tuttavia, gli utenti o i gruppi aggiunti ad Azure DevOps Server non vengono aggiunti automaticamente a due componenti in cui le distribuzioni locali di Azure DevOps Server possono dipendere: Prodotti SharePoint e Reporting Services. Se la distribuzione usa questi programmi, è necessario aggiungere utenti e gruppi a tali programmi e concedere le autorizzazioni appropriate per avere tali utenti o gruppi funzionare correttamente in tutte le operazioni in Azure DevOps Server. Per altre informazioni, vedere Gestire utenti o gruppi in Azure DevOps Server.

Per le distribuzioni ospitate, l'accesso viene controllato tramite una combinazione di account Microsoft e appartenenza al team. Per altre informazioni, vedere Panoramica di Azure DevOps Services.

Porte e protocolli di rete

Per impostazione predefinita, una distribuzione locale di Azure DevOps Server è configurata per l'uso di porte e protocolli di rete specifici. La figura seguente illustra il traffico di rete per Azure DevOps Server in una distribuzione semplice.

Installazione locale semplice

Analogamente, il servizio ospitato per Azure DevOps Server è configurato per l'uso di porte e protocolli di rete specifici. La figura seguente mostra il traffico di rete in una distribuzione ospitata.

Azure DevOps Server ospitato

 

La figura seguente illustra il traffico di rete in una distribuzione più complessa che include i componenti per Visual Studio Lab Management. Si noti che Lab Management è stato deprecato per TFS 2017 e versioni successive.

Livello applicazione

Ambienti virtuali

macchine virtuali

Le macchine virtuali usano la porta 80 per comunicare con qualsiasi controller di test sul download di un agente di gestione del lab. Verificare che questa porta sia abilitata se si verificano problemi di comunicazione.

Impostazioni di rete predefinite

Per impostazione predefinita, la comunicazione tra i computer in una distribuzione di Azure DevOps usa i protocolli e le porte illustrate nella tabella seguente. Se un asterisco (*) segue il numero di porta, è possibile personalizzare tale porta.

Livello e servizio Protocollo Porto
Livello applicazione - Servizi Web HTTP/HTTPS 8080/443*
Livello applicazione - Amministrazione prodotti SharePoint HTTP 17012* se Prodotti SharePoint è stato installato con Azure DevOps Server; in caso contrario, generato in modo casuale
Livello applicazione - Prodotti SharePoint e Reporting Services HTTP
Servizio Strumentazione gestione Windows (WMI) (necessario durante l'installazione per specificare e verificare gli URL per Reporting Services)
Porta dinamica 80*
Livello di dati MS-SQL TCP 1433*
Livello dati (SQL Server Analysis Services) MS-AS predefinito (2382 o 2383)*
La porta predefinita varia a seconda della versione di SQL Server installata e del tipo di istanza. Usare Gestione configurazione SQL Server per determinare le porte usate dalla distribuzione.
Server proxy di Azure DevOps - da client a proxy HTTP 8081*
Server proxy di Azure DevOps - Proxy al livello applicativo HTTP/HTTPS 8080/443*
Livello client - Reporting Services HTTP 80*
Livello cliente - Servizi Web HTTP/HTTPS 8080/443*
Creare il controller al livello dell'applicazione HTTP/HTTPS 8080/443
Creare un agente al livello applicazione HTTP/HTTPS 8080/443
Server di gestione delle versioni HTTP o HTTPS 1000*
Client di gestione delle versioni HTTP o HTTPS 1000*
Agente di Gestione delle Rilasci HTTP o HTTPS 1000*
Testare il controller al livello applicazione HTTP/HTTPS 8080/443*
Livello applicazione per testare il controller Comunicazione remota .NET 6901*
Livello dell'applicazione al Sistema dei Nomi di Dominio (DNS) Aggiornamento dinamico DNS 53
Livello applicazione - Virtual Machine Manager HTTP 8100
Testare il controller per testare l'agente Comunicazione remota .NET 6910*
Testare l'agente per testare il controller Comunicazione remota .NET 6901*
Creare il controller per creare l'agente SOAP su HTTP 9191
Agente di laboratorio per agente di laboratorio in un ambiente isolato Socket TCP 9050
Creare un agente per compilare il controller SOAP su HTTP 9191
Console di amministrazione di Virtual Machine Manager - Virtual Machine Manager HTTP 8100
Virtual Machine Manager – host di Virtual Machine Manager Gestione remota Windows (WinRM) per eseguire azioni
Servizio trasferimento intelligente in background (BITS) per trasferire i dati
80 per eseguire azioni
443 per trasferire i dati
Virtual Machine Manager – server della libreria di Virtual Machine Manager WinRM per eseguire azioni
BITS per trasferire i dati
80 per eseguire azioni
443 per trasferire i dati
Livello applicazione: host Virtual Machine Manager Comunicazione DCOM/WMI (Distributed Component Object Model/Windows Management Interface) per trasferire i dati 135
Assegnato dinamicamente nell'intervallo da 49152 a 65535
Livello client dell'host di Virtual Machine Manager Connessione basata su host alla macchina virtuale. 2179 per eseguire connessioni basate su host
Servizi ospitati HTTPS 443

Impostazioni di rete personalizzabili

Come illustrato nella tabella precedente, è possibile modificare la comunicazione tra l'applicazione, i dati e i livelli client nelle distribuzioni locali modificando Azure DevOps Server per usare porte personalizzate. Nella tabella seguente vengono descritte le modifiche di esempio nelle porte da HTTP a HTTPS.

Annotazioni

Per configurare Azure DevOps Server per l'uso di HTTPS e Secure Sockets Layer, è necessario non solo abilitare le porte per il traffico di rete HTTPS, ma anche eseguire molte altre attività. Per altre informazioni, vedere Configurare HTTPS con Secure Sockets Layer (SSL) per Azure DevOps Server.

Servizio Protocollo Porto
Servizi Web con SSL HTTPS Configurato dall'amministratore
Amministrazione centrale di SharePoint HTTPS Configurato dall'amministratore
Prodotti SharePoint HTTPS 443
Servizi di Reportistica HTTPS 443
Servizi Web del Cliente HTTPS Configurato dall'amministratore
Gestione delle versioni HTTPS Configurato dall'amministratore