Información general sobre la arquitectura para Azure DevOps Server

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

Nota

Azure DevOps Server anteriormente se denominaba Visual Studio Team Foundation Server.

Para planear y administrar mejor la implementación, primero debe comprender la arquitectura subyacente de Azure DevOps Server. Entender la arquitectura puede ayudarle a mantener el buen estado global de la implementación y a garantizar la disponibilidad global de los servidores y servicios que los equipos de desarrollo requieren.

Puede implementar Azure DevOps Server de varias maneras: en un servidor; en muchos servidores; o en un dominio o grupo de trabajo o entre dominios. Como alternativa, puede optar por usar Azure DevOps Services, donde Microsoft hospeda automáticamente todos los elementos de servidor de la implementación. Entender la arquitectura puede ayudarle a decidir la topología que puede satisfacer mejor sus necesidades empresariales. Independientemente de la topología que elija, si entiende la arquitectura subyacente Azure DevOps Server, puede administrar mejor los requisitos físicos y lógicos. En este artículo se proporciona información general simple sobre las distintas arquitecturas, con vínculos a más información sobre las implementaciones de ejemplo. También proporciona información técnica sobre los servicios, las bases de datos, la información de configuración, y los puertos y protocolos de red de las implementaciones locales.

Para comprender la arquitectura de Azure DevOps Server y cómo afecta a la implementación, debe tener en cuenta lo siguiente:

  • Las capas lógicas de aplicación, datos y cliente de Azure DevOps y si desea usar uno o varios servidores para las capas de aplicación y de datos, o si desea que las capas de aplicación y de datos se hospeden en la nube automáticamente mediante Azure DevOps Services
  • La ubicación de los servidores físicos o virtuales que hospedan esas capas
  • Team Foundation Build y el número y la ubicación de los equipos de compilación que se ejecutan en su entorno, incluido el número de que puede necesitar para admitir las prácticas de desarrollo o si va a usar Azure Pipelines Cloud Services para compilar e implementar aplicaciones de software.
  • La necesidad potencial del servidor proxy de Azure DevOps

Además, debe tener en cuenta las interacciones entre estas entidades. Por ejemplo, si decide usar el servicio de Azure DevOps Server hospedado, debe asegurarse de que los clientes puedan tener acceso al servicio en el puerto 443. Si decide implementar Azure DevOps Server localmente, debe saber qué servicios Web, bases de datos y modelos de objetos Azure DevOps Server utiliza. Además, debe saber qué puertos de red y protocolos Azure DevOps Server utiliza de forma predeterminada y qué puertos de red se pueden personalizar. Por último, debe entender qué permisos debe establecer en Azure DevOps Server y los componentes y programas de los que depende su implementación.

Además de sus propios servicios, Azure DevOps Server depende de otros servicios para funcionar. Para obtener más información acerca de estos servicios, vea Azure DevOps Server conceptos y componentes de la Azure DevOps Server almacenamiento de datos. Para obtener más información acerca de los requisitos y las dependencias de la instalación, consulte Azure DevOps Server guía de instalación.

Importante

No debe modificar manualmente ninguna de las bases de datos Azure DevOps Server a menos que se le indique que lo haga Soporte técnico de Microsoft o siga los procedimientos descritos para realizar copias de seguridad manuales de las bases de datos. Cualquier otra modificación puede invalidar el contrato de servicio.

Azure DevOps Services

Azure DevOps Services

Microsoft ofrece la opción de usar Azure DevOps Services, que puede hospedar todos los aspectos del lado servidor de Azure DevOps Server. El código fuente, los elementos de trabajo, las configuraciones de compilación y las características del equipo se hospedan en la nube. Desde el punto de vista arquitectónico, esto simplifica en gran medida el uso de Azure DevOps Server, ya que los únicos aspectos de la arquitectura que debe tener en cuenta son los componentes de cliente y su acceso a Internet.

Al usar el Azure DevOps Services, se usa un explorador Web para conectarse al servicio mediante el cuenta Microsoft. Puede crear proyectos, agregar miembros al equipo y trabajar como lo haría con un Azure DevOps Server instalado localmente, sin la sobrecarga de administrar los servidores. Azure DevOps Services hospeda la capa de aplicación, la capa de datos y los servidores de compilación en la nube.

Para obtener más información sobre los servicios en la nube frente a las implementaciones locales, revise Azure DevOps Services frente a Azure DevOps Server.

El modelo de objetos

Con la arquitectura hospedada o implementada localmente, puede extender las características y la funcionalidad de Azure DevOps escribiendo una aplicación basada en su servidor o modelo de objetos de cliente. En todos los tipos de implementación, se pueden crear aplicaciones que extienden las capacidades de cliente. Sin embargo, si desea extender las capacidades de servidor, la aplicación debe ejecutarse en el servidor de capa de aplicación. Para ampliar las capacidades de cliente, debe ejecutar la aplicación en el mismo equipo que Team Explorer.

Modelo de objetos de Azure DevOps Server

Servicios Web y bases de datos para implementaciones locales

Azure DevOps Server incluye un conjunto de servicios web y bases de datos que se instalan y configuran por separado en el servidor o servidores que hospedan las capas lógicas de aplicación, datos y cliente de Azure DevOps. Algunas características, como el panel de tareas y las características basadas en equipo del trabajo pendiente, están totalmente basadas en Web y se accede a ellas únicamente a través de un portal web, un servicio basado en Web del lado cliente. A otras, como las características de control de versiones, se puede tener acceso a través de un portal web o de una aplicación cliente. En las ilustraciones siguientes se proporciona una vista de alto nivel de servicios Web, aplicaciones y bases de datos para implementaciones locales de Azure DevOps Server.

Azure DevOps Server niveles de servicio principales

Servicios de Azure DevOps Server opcionales

Clientes Azure DevOps Server

Servicios de nivel de colección

Los servicios de nivel de colección proporcionan la funcionalidad para las operaciones en el nivel de la colección de proyectos. Puede crear aplicaciones que extiendan Azure DevOps Server mediante el uso de algunos de estos servicios. Para obtener más información sobre la creación de aplicaciones para Azure DevOps Server, consulte desarrollo de extensiones.

Nota

Algunos servicios aparecen en varios niveles. Por ejemplo, el servicio de Registro funciona en el nivel de colección y en el de servidor, y aparece en ambas listas.

Servicios de Framework:

  • Servicio del Registro
  • Servicio de registro (para la compatibilidad con versiones anteriores de Azure DevOps Server)
  • Servicio de propiedades
  • Servicio de eventos
  • Servicio de seguridad
  • Servicio de ubicación
  • Servicio de administración de identidades
  • Servicio Web de control de versiones
  • Servicio Web de seguimiento de elementos de trabajo
  • Servicio Web de Team Foundation Build
  • Servicio Web de Lab Management
  • Servicio Web de administración de VMM
  • Servicio Web de controlador de Test Agent

Servicios de nivel de servidor

Los servicios de nivel de servidor (también denominados servicios de nivel de aplicación) proporcionan la funcionalidad para las operaciones de Azure DevOps Server como una aplicación de software. Puede crear aplicaciones que extiendan Azure DevOps Server mediante el uso de algunos de estos servicios.

Servicios de Framework:

  • Servicio del Registro
  • Servicio de eventos
  • Servicio de la colección de proyectos
  • Servicio de propiedades
  • Servicio de seguridad
  • Servicio de ubicación
  • Servicio de administración de identidades
  • Servicio de administración
  • Servicio de administración de colecciones
  • Servicio del catálogo

Capa de datos

La capa de datos incluye datos, procedimientos almacenados y otra lógica asociada. Cuando se usa Azure DevOps Services, la capa de datos se hospeda automáticamente mediante SQL Server Azure. En una implementación local de Azure DevOps Server, la capa de datos lógica consta de los siguientes almacenes operativos dentro de SQL Server. Estos almacenes pueden estar ubicados en un servidor físico o distribuidos en varios servidores. Puede crear aplicaciones que extiendan Azure DevOps Server mediante el uso de algunos de estos almacenes operativos.

  • Base de datos de configuración (TFS_Configuration)
  • Almacén de la aplicación (TFS_Warehouse)
  • Base de datos de servicios de análisis (TFS_Analysis)
  • Bases de datos para colecciones de proyectos (TFS_CollectionName)

En la tabla siguiente se proporciona una lista de las bases de datos que Azure DevOps Server usa en las implementaciones locales. A menos que se indique lo contrario, puede mover todas las bases de datos de esta lista del servidor y la instancia originales donde están instaladas y restaurarlas en otro servidor o instancia.

Nombre de la base de datos Descripción Server
TFS_Configuration Esta base de datos almacena el catálogo de recursos y la información de configuración para Azure DevOps Server. Esta base de datos contiene los almacenes operativos para Azure DevOps Server. Instancia de SQL Server que se utiliza cuando se instala y configura Azure DevOps Server.
TFS_Warehouse Esta base de datos almacena los datos de los informes. Instancia de SQL Server que se utiliza cuando se instala y configura Azure DevOps Server.
TFS_Analysis Esta base de datos multidimensional almacena los datos agregados de las colecciones de proyectos. Instancia de SQL Server que se utiliza cuando se instala y configura SQL Server Analysis Services.
Bases de datos para colecciones de proyectos Una base de datos para cada colección de proyectos, que contiene datos de todos los proyectos de esa colección. Instancia de SQL Server que es compatible con Azure DevOps Server.

Capa de cliente

La capa de cliente se comunica con la capa de aplicación a través del modelo de objetos de servidor y utiliza los mismos servicios Web que se enumeran para esa capa. Esto es así tanto si implementa Azure DevOps Server localmente como si utiliza Azure DevOps Services. Además de ese modelo, la capa de cliente está formada por los componentes de Visual Studio Industry Partners (VSIP), la integración con Microsoft Office, las interfaces de línea de comandos y un marco para directivas de protección.

Configuración

El servicio hospedado depende de los servicios de cliente, implementados localmente, y de una conexión de Internet a las capas de aplicación y de datos hospedadas en la nube. Una implementación local de Azure DevOps Server depende de SQL Server, Internet Information Services (IIS) y el sistema operativo Windows. En función de la topología elegida, Azure DevOps Server podría depender también de SQL Server Reporting Services o productos de SharePoint. Por lo tanto, la información de configuración para Azure DevOps Server se puede almacenar en cualquiera de las siguientes ubicaciones:

  • Almacenes de datos de IIS.
  • Archivos de configuración para Azure DevOps Server.
  • Orígenes de datos de Reporting Services (por ejemplo, datos de TFSREPORTS).
  • Base de datos de configuración para Azure DevOps Server. El registro de Azure DevOps Server forma parte de la base de datos de configuración.
  • Registro de Windows.

Para obtener ejemplos de diferentes topologías de implementación local y de dónde se almacenan estos recursos, vea ejemplos de topología simple, ejemplos de topología moderaday ejemplos de topología compleja. A medida que mantiene una implementación local de Azure DevOps Server, debe tener en cuenta estos orígenes de configuración. Para realizar alguna modificación en la configuración, puede que sea necesario modificar información que está almacenada en varias ubicaciones. Puede que sea necesario cambiar la información de configuración para las capas de datos y de cliente. Azure DevOps Server incluye una consola de administración y varias utilidades de línea de comandos que le ayudarán a realizar estos cambios. Para obtener más información, consulte referencia rápida de tareas administrativas.

Active Directory y sincronización de identidades de grupo

En las implementaciones locales en las que se ejecuta Azure DevOps en un dominio de Active Directory, la información de grupo e identidad se sincroniza cuando se produce alguno de los siguientes eventos:

  • Se inicia el servidor de capa de aplicación.
  • Se agrega un grupo de Active Directory a un grupo de DevOps de Azure.

El período de tiempo que se especifica en el trabajo programado transcurre. El valor predeterminado es una hora y todos los grupos de Azure DevOps Server se actualizan cada 24 horas.

Los Servicios de administración de identidades (IMS) se sincronizan con Active Directory y las identidades modificadas se propagan del servidor a los clientes. De forma predeterminada, todos los grupos se actualizan antes de 24 horas, pero puede personalizar este valor para adecuarlo a las necesidades de la implementación. Para obtener más información, vea consideraciones sobre confianzas y bosques para obtener Azure DevOps Server. Para las implementaciones locales que no usan Active Directory, consulte Administración de Azure DevOps Server en un grupo de trabajo.

Grupos y permisos

En una implementación local, Azure DevOps Server tiene su propio conjunto de grupos y permisos predeterminados que puede establecer en el nivel de proyecto, colección o servidor. Puede crear grupos personalizados y personalizar permisos en cada grupo y cada nivel. Sin embargo, los usuarios o grupos que agregue a Azure DevOps Server no se agregan automáticamente a dos componentes de los que pueden depender las implementaciones locales de Azure DevOps Server: productos y Reporting Services de SharePoint. Si la implementación usa estos programas, debe agregarles usuarios y grupos y conceder los permisos adecuados para que estos usuarios o grupos funcionen correctamente en todas las operaciones de Azure DevOps Server. Para obtener más información, consulte administrar usuarios o grupos en Azure DevOps Server.

En las implementaciones hospedadas, el acceso se controla mediante una combinación de cuentas de Microsoft y pertenencias a equipos. Para obtener más información, vea la información General de Azure DevOps Services.

Puertos y protocolos de red

De forma predeterminada, una implementación local de Azure DevOps Server está configurada para usar puertos y protocolos de red específicos. En la ilustración siguiente se muestra el tráfico de red para Azure DevOps Server en una implementación sencilla.

Instalación local sencilla

Del mismo modo, el servicio hospedado para Azure DevOps Server está configurado para usar puertos y protocolos de red específicos. En la ilustración siguiente se muestra el tráfico de red de una implementación hospedada.

Azure DevOps Server hospedadas

En la ilustración siguiente se muestra el tráfico de red en una implementación más compleja que incluye los componentes de Visual Studio Lab Management. (Tenga en cuenta que Lab Management ha quedado en desuso en TFS 2017 y versiones posteriores).

Nivel de aplicación

Entornos virtuales

máquinas virtuales

Las máquinas virtuales usan el puerto 80 para comunicarse con cualquier controlador de pruebas en relación a la descarga de un agente de Lab Management. Si tiene problemas de comunicación, compruebe que este puerto esté habilitado.

Configuración de red predeterminada

De forma predeterminada, la comunicación entre los equipos de una implementación de DevOps de Azure usa los protocolos y puertos que se muestran en la tabla siguiente. Si hay un asterisco (*) después del número de puerto, puede personalizar ese puerto.

Capa y servicio Protocolo Port
Nivel de aplicación: servicios Web HTTP/HTTPS 8080/443*
Capa de aplicación: administración de productos de SharePoint HTTP 17012 * si productos de SharePoint se instaló con Azure DevOps Server; de lo contrario, se genera de forma aleatoria
Capa de aplicación: productos y Reporting Services de SharePoint HTTP
Servicio Instrumental de administración de Windows (WMI) (es necesario durante la instalación para especificar y comprobar las direcciones URL para Reporting Services)
80 * puerto dinámico
Capa de datos TCP de MS-SQL 1433*
Capa de datos (SQL Server Analysis Services) MS-AS valor predeterminado (2382 o 2383)*
El puerto predeterminado varía según la versión de SQL Server instalada y el tipo de instancia. Use el Administrador de configuración de SQL Server para determinar los puertos usados por la implementación.
Servidor proxy de Azure DevOps: cliente a proxy HTTP 8081*
Servidor proxy de DevOps de Azure: proxy a capa de aplicación HTTP/HTTPS 8080/443*
Capa de cliente: Reporting Services HTTP 80*
Nivel de cliente: servicios Web HTTP/HTTPS 8080/443*
Controlador de compilación a capa de aplicación HTTP/HTTPS 8080/443
Agente de compilación a capa de aplicación HTTP/HTTPS 8080/443
Release Management Server HTTP o HTTPS 1000*
Release Management Client HTTP o HTTPS 1000*
Agente de Release Management HTTP o HTTPS 1000*
Controlador de pruebas a capa de aplicación HTTP/HTTPS 8080/443*
Capa de aplicación a controlador de pruebas .NET Remoting 6901*
Capa de aplicación a Sistema de nombres de dominio (DNS) Actualización dinámica de DNS 53
Capa de aplicación: Virtual Machine Manager HTTP 8100
Controlador de pruebas a agente de prueba .NET Remoting 6910*
Agente de prueba a controlador de pruebas .NET Remoting 6901*
Controlador de compilación a agente de compilación SOAP a través de HTTP 9191
Agente de laboratorio a agente de laboratorio en un entorno aislado Sockets TCP 9050
Agente de compilación a controlador de compilación SOAP a través de HTTP 9191
Consola de administrador de Virtual Machine Manager: Virtual Machine Manager HTTP 8100
Virtual Machine Manager: hosts de Virtual Machine Manager Administración remota de Windows (WinRM) para realizar acciones
Servicio de transferencia inteligente en segundo plano (BITS) para transferir datos
80 para realizar acciones
443 para transferir datos
Virtual Machine Manager: servidor de biblioteca de Virtual Machine Manager WinRM para realizar acciones
BITS para transferir datos
80 para realizar acciones
443 para transferir datos
Capa de aplicación: hosts de Virtual Machine Manager Comunicación de Modelo de objetos componentes distribuido/Interfaz de administración de Windows (DCOM/WMI) para transferir datos 135
Se asigna dinámicamente en el intervalo de 49152 a 65535
Capa de cliente: hosts de Virtual Machine Manager Conexión basada en host a la máquina virtual. 2179 para realizar conexiones basadas en host
Servicios hospedados HTTPS 443

Configuración de red personalizable

Como se muestra en la tabla anterior, puede cambiar la comunicación entre los niveles de aplicación, datos y cliente en las implementaciones locales modificando Azure DevOps Server para usar puertos personalizados. En la tabla siguiente se describen cambios de ejemplo en puertos de HTTP a HTTPS.

Nota

Para configurar Azure DevOps Server para usar HTTPS y Capa de sockets seguros, no solo debe habilitar puertos para el tráfico de red HTTPS sino que también puede realizar muchas otras tareas. Para obtener más información, consulte configuración de HTTPS con capa de sockets seguros (SSL) para Azure DevOps Server.

Servicio Protocolo Port
Servicios Web con SSL HTTPS Configurado por el administrador
HTTPS de administración central de SharePoint Configurado por el administrador
Productos de SharePoint HTTPS 443
Reporting Services HTTPS 443
Servicios Web de cliente HTTPS Configurado por el administrador
Release Management HTTPS Configurado por el administrador