Поделиться через


Обзор архитектуры для Azure DevOps Server

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

Чтобы лучше планировать развертывание и управлять ими, необходимо сначала понять базовую архитектуру Azure DevOps Server. Общие сведения об архитектуре помогут вам обеспечить общую работоспособность развертывания и обеспечить общую доступность серверов и служб, необходимых группам разработчиков.

Azure DevOps Server можно развернуть несколькими способами: на одном сервере; на многих серверах; или в одном домене или рабочей группе или в разных доменах. Кроме того, вы можете использовать Azure DevOps Services, где все серверные элементы развертывания размещаются корпорацией Майкрософт. Понимание архитектуры поможет вам решить, какая топология, скорее всего, соответствует вашим бизнес-потребностям. Независимо от выбранной топологии, если вы понимаете архитектуру базового сервера Azure DevOps Server, вы можете лучше управлять физическими и логическими требованиями. В этой статье представлен простой обзор различных архитектур с ссылками на дополнительные сведения о примерах развертываний. Она также предоставляет технические сведения о службах, базах данных, сведениях о конфигурации и сетевых портах и протоколах локальных развертываний.

Чтобы понять архитектуру Azure DevOps Server и как это влияет на развертывание, следует рассмотреть следующее:

  • Логическое приложение, данные и клиентские уровни Azure DevOps, а также то, хотите ли вы использовать один или несколько серверов для уровней приложений и данных, или хотите ли вы использовать уровни приложений и данных, размещенные в облаке, с помощью Azure DevOps Services
  • Расположение физических или виртуальных серверов, на которых размещаются эти уровни
  • Team Foundation Build и количество, а также расположение компьютеров для сборки, работающих в вашей среде, включая то, сколько их может понадобиться для поддержки ваших методов разработки, либо будете ли вы использовать облачные сервисы Azure Pipelines для создания и развертывания программных приложений.
  • Потенциальная потребность в прокси-сервере Azure DevOps

Кроме того, необходимо учитывать взаимодействие между этими сущностями. Например, если вы решили использовать размещенную службу Azure DevOps Server, необходимо убедиться, что клиенты могут получить доступ к службе через порт 443. Если вы решили развернуть Azure DevOps Server локально, необходимо знать, какие веб-службы, базы данных и объектные модели Использует Azure DevOps Server. Кроме того, необходимо знать, какие сетевые порты и протоколы Azure DevOps Server используются по умолчанию и какие сетевые порты можно настроить. Наконец, необходимо понять, какие разрешения необходимо задать в Azure DevOps Server, а также компоненты и программы, от которых зависит развертывание.

Помимо собственных служб, Azure DevOps Server зависит от других служб, чтобы функционировать. Дополнительные сведения об этих службах см. в основных понятиях сервера Azure DevOps и компонентах хранилища данных сервера Azure DevOps. Дополнительные сведения о требованиях и зависимостях для установки см. в руководстве по установке Azure DevOps Server.

Это важно

Вы не должны вручную изменять любые базы данных Azure DevOps Server, если вас об этом не попросила служба поддержки Майкрософт или вы не следуете процедурам, описанным для ручного резервного копирования баз данных. Любые другие изменения могут сделать соглашение об обслуживании недействительным.

Azure DevOps Services

Azure DevOps Services

Корпорация Майкрософт предлагает возможность использовать Azure DevOps Services, которая может размещать все серверные аспекты Azure DevOps Server. Исходный код, рабочие элементы, конфигурации сборки и функции команды размещаются в облаке. С точки зрения архитектуры это значительно упрощает использование Azure DevOps Server, так как единственными аспектами архитектуры, которые необходимо учитывать, являются клиентские компоненты и доступ к Интернету.

При использовании Azure DevOps Services вы используете веб-браузер для подключения к службе с помощью учетной записи Майкрософт. Вы можете создавать проекты, добавлять участников в свою команду и работать с локально установленным сервером Azure DevOps Server без дополнительных затрат на администрирование серверов. Службы Azure DevOps размещают слой приложений, слой данных и серверы сборки в облаке.

Дополнительные сведения об облачных службах и локальных развертываниях см. в статье Azure DevOps Services и Azure DevOps Server.

Объектная модель

С помощью размещенной или локально развернутой архитектуры можно расширить возможности и функциональные возможности Azure DevOps, написав приложение, основанное на сервере или клиентской объектной модели. Во всех типах развертывания можно создавать приложения, расширяющие возможности клиента. Однако если вы хотите расширить возможности сервера, приложение должно работать на сервере уровня приложений. Чтобы расширить возможности клиента, необходимо запустить приложение на том же компьютере, что и Team Explorer.

Объектная модель Azure DevOps Server

Веб-службы и базы данных для локальных развертываний

Azure DevOps Server включает набор веб-служб и баз данных, которые устанавливаются и настраиваются отдельно на сервере или серверах, на которых размещается логическое приложение, данные и уровни клиентов для Azure DevOps. Некоторые функции, такие как доска задач и функции, связанные с управлением бэклогом в команде, полностью веб-ориентированные и доступны исключительно через веб-портал, представляющий собой клиентскую веб-ориентированную службу. Другие, такие как функции управления версиями, могут быть доступны через веб-портал или клиентское приложение. На следующих иллюстрациях представлено высокоуровневое представление веб-служб, приложений и баз данных для локальных развертываний Azure DevOps Server.

Основные уровни служб Azure DevOps Server

Необязательные службы Azure DevOps Server

Клиенты Azure DevOps Server

Службы уровня коллекции

Службы уровня коллекции предоставляют функциональные возможности для операций на уровне коллекции проектов. Вы можете создавать приложения, расширяющие Сервер Azure DevOps, с помощью некоторых из этих служб. Дополнительные сведения о создании приложений для Azure DevOps Server см. в статье "Разработка расширений".

Замечание

Некоторые службы отображаются на нескольких уровнях. Например, служба реестра работает на уровне коллекции и на уровне сервера и отображается в обоих списках.

Службы платформы:

  • Служба реестра
  • Служба регистрации (для совместимости с более ранними версиями Azure DevOps Server)
  • Служба управления недвижимостью
  • Служба событий
  • Служба безопасности
  • Служба местоположения
  • Служба управления удостоверениями
  • Веб-служба управления версиями
  • Веб-служба отслеживания рабочих элементов
  • Веб-служба Team Foundation Build
  • Веб-служба "Управление лабораторией"
  • Веб-служба администрирования VMM
  • Веб-служба контроллера агента тестирования

Службы уровня сервера

Службы уровня сервера (также известные как службы на уровне приложений) предоставляют функциональные возможности операций для Azure DevOps Server в качестве программного приложения. Вы можете создавать приложения, расширяющие Сервер Azure DevOps, с помощью некоторых из этих служб.

Службы платформы:

  • Служба реестра
  • Служба событий
  • Служба "Коллекция проектов"
  • Услуги по обслуживанию недвижимости
  • Служба безопасности
  • Служба геолокации
  • Служба управления удостоверениями
  • Служба администрирования
  • Служба управления коллекциями
  • Служба каталогов

Уровень данных

Уровень данных включает данные, хранимые процедуры и другую связанную логику. При использовании Azure DevOps Services уровень данных размещается для вас с помощью Azure SQL Server. В локальном развертывании Azure DevOps Server уровень логических данных состоит из следующих операционных хранилищ в SQL Server. Эти хранилища могут находиться на одном физическом сервере или распределены по нескольким серверам. Вы можете создавать приложения, расширяющие Azure DevOps Server, с помощью некоторых из этих операционных хранилищ.

  • База данных конфигурации (TFS_Configuration)
  • Хранилище приложений (TFS_Warehouse)
  • База данных Analysis Services (TFS_Analysis)
  • Базы данных для коллекций проектов (TFS_CollectionName)

В следующей таблице приведен список баз данных, используемых Azure DevOps Server в локальных развертываниях. Если не указано иное, можно переместить все базы данных в этом списке с исходного сервера и экземпляра, где они установлены и восстановить их на другой сервер или экземпляр.

Имя базы данных Описание Сервер
TFS_Configuration Эта база данных хранит каталог ресурсов и сведения о конфигурации для Azure DevOps Server. Эта база данных содержит операционные хранилища для Azure DevOps Server. Экземпляр SQL Server, используемый при установке и настройке Azure DevOps Server.
TFS_Warehouse Эта база данных хранит данные для отчетов. Экземпляр SQL Server, используемый в тот момент, когда устанавливается и настраивается Azure DevOps Server.
TFS_Analysis Эта многомерная база данных хранит агрегированные данные из коллекций проектов. Экземпляр SQL Server, используемый при установке и настройке служб SQL Server Analysis Services.
Базы данных для коллекций проектов Одна база данных для каждой коллекции проектов, содержащая данные из всех проектов в этой коллекции. Экземпляр SQL Server, совместимый с Azure DevOps Server.

Уровень клиента

Уровень клиента взаимодействует с уровнем приложения через объектную модель сервера и использует те же веб-службы, которые перечислены для этого уровня. Это верно, если вы развертываете Azure DevOps Server локально или используете Azure DevOps Services. Помимо этой модели, уровень клиента состоит из компонентов visual Studio Industry Partners (VSIP), интеграции Microsoft Office, интерфейсов командной строки и платформы для политик регистрации.

Конфигурация

Размещенная служба зависит от клиентских служб, развернутых локально, а также подключения к Интернету к уровню приложений и данных, размещенным в облаке. Локальное развертывание Azure DevOps Server зависит от SQL Server, служб IIS и операционной системы Windows. В зависимости от выбранной топологии Azure DevOps Server также может зависеть от служб SQL Server Reporting Services или продуктов SharePoint. Таким образом, сведения о конфигурации для Сервера Azure DevOps можно хранить в любом из следующих расположений:

  • Хранилища данных IIS.
  • Файлы конфигурации для Azure DevOps Server.
  • Источники данных для служб Reporting Services (например, данные TFSREPORTS).
  • База данных конфигурации для Azure DevOps Server. Реестр Azure DevOps Server является частью базы данных конфигурации.
  • Реестр Windows.

Примеры различных топологий локального развертывания и места хранения этих ресурсов см. в примерах простой топологии, примерах умеренной топологии и примерах сложной топологии. При обслуживании локального развертывания Azure DevOps Server необходимо учитывать эти источники конфигурации. Чтобы изменить конфигурацию каким-либо образом, может потребоваться изменить сведения, хранящиеся в нескольких расположениях. Кроме того, может потребоваться изменить сведения о конфигурации для уровней данных и клиентов. Azure DevOps Server включает консоль администрирования и несколько служебных программ командной строки, которые помогут вам внести эти изменения. Дополнительные сведения см. в кратком справочнике по административным задачам.

Active Directory и синхронизация идентичностей групп

В локальных развертываниях, где Azure DevOps работает в домене Active Directory, сведения о группе и удостоверениях синхронизируются при возникновении любого из следующих событий:

  • Запускается сервер уровня приложений.
  • Группа Active Directory добавляется в группу Azure DevOps.

Период времени, указанный в запланированном задании, истекает. Значение по умолчанию — один час, и все группы в Azure DevOps Server обновляются каждые 24 часа.

Службы управления удостоверениями (IMS) синхронизируются с Active Directory, и изменённые удостоверения портируются с сервера на клиентов. По умолчанию все группы обновляются в течение 24 часов, но их можно настроить в соответствии с потребностями развертывания. Дополнительные сведения вы можете найти в подразделе "Учёт доверительных отношений и лесов для Azure DevOps Server". Сведения о локальных развертываниях, которые не используют Active Directory, см. в статье "Управление сервером Azure DevOps" в рабочей группе.

Группы и разрешения

В локальном развертывании Azure DevOps Server имеет собственный набор групп и разрешений по умолчанию, которые можно задать на уровне проекта, коллекции или сервера. Вы можете создавать настраиваемые группы и настраивать разрешения на уровне групп и отдельных уровней. Однако пользователи или группы, добавляемые в Azure DevOps Server, не добавляются автоматически в два компонента, от которых могут зависеть локальные развертывания Azure DevOps Server: продукты SharePoint и службы Reporting Services. Если развертывание использует эти программы, необходимо добавить пользователей и группы в них и предоставить соответствующие разрешения, чтобы эти пользователи или группы правильно функционировали во всех операциях в Azure DevOps Server. Дополнительные сведения см. в разделе "Управление пользователями или группами" в Azure DevOps Server.

Для размещенных развертываний доступ управляется с помощью сочетания учетных записей Майкрософт и членства в команде. Дополнительные сведения см. в обзоре Azure DevOps Services.

Сетевые порты и протоколы

По умолчанию локальное развертывание Azure DevOps Server настроено для использования определенных сетевых портов и протоколов. На следующем рисунке показан сетевой трафик для Azure DevOps Server в простом развертывании.

Простая локальная установка

Аналогичным образом размещенная служба для Azure DevOps Server настроена на использование определенных сетевых портов и протоколов. На следующем рисунке показан сетевой трафик в размещенном развертывании.

Размещенный сервер Azure DevOps

 

На следующем рисунке показан сетевой трафик в более сложном развертывании, включающее компоненты для Visual Studio Lab Management. (Обратите внимание, что управление лабораторией устарело для TFS 2017 и более поздних версий.)

Уровень приложений

Виртуальные среды

виртуальные машины

Виртуальные машины используют порт 80 для взаимодействия с любым контроллером тестирования о загрузке агента управления лабораторией. Убедитесь, что этот порт включен, если у вас возникли проблемы с обменом данными.

Параметры сети по умолчанию

По умолчанию обмен данными между компьютерами в развертывании Azure DevOps использует протоколы и порты, показанные в следующей таблице. Если звездочка (*) следует номеру порта, можно настроить этот порт.

Уровень и служба Протокол Порт
Уровень приложений — веб-службы HTTP/HTTPS 8080/443*
Уровень приложений — администрирование продуктов SharePoint HTTP 17012*, если продукты SharePoint установлены с Azure DevOps Server; в противном случае генерируется случайным образом.
Уровень приложений — продукты SharePoint и службы Reporting Services HTTP
Служба инструментария управления Windows (WMI) (требуется во время установки, чтобы указать и проверить URL-адреса для служб отчетности)
80* Динамический порт
Уровень данных MS-SQL TCP 1433*
Уровень данных (SQL Server Analysis Services) MS-AS default (2382 или 2383)*
Порт по умолчанию зависит от установленной версии SQL Server и типа экземпляра. Используйте диспетчер конфигурации SQL Server, чтобы определить порты, используемые развертыванием.
Прокси-сервер Azure DevOps — клиент для прокси-сервера HTTP 8081*
Прокси-сервер Azure DevOps — прокси-сервер на уровне приложений HTTP/HTTPS 8080/443*
Уровень клиента — службы отчетности HTTP 80*
Уровень клиента — веб-службы HTTP/HTTPS 8080/443*
Создание контроллера на уровне приложений HTTP/HTTPS 8080/443
Создание агента на уровне приложений HTTP/HTTPS 8080/443
Сервер управления выпусками HTTP or HTTPS 1000*
Клиент управления выпусками Протоколы HTTP и HTTPS 1000*
Агент управления выпусками HTTP or HTTPS 1000*
Контроллер тестирования на уровне приложений HTTP/HTTPS 8080/443*
Уровень приложений для контроллера тестирования Удаленное взаимодействие в .NET 6901*
Уровень приложений в системе доменных имен (DNS) Динамическое обновление DNS 53
Уровень приложений — Virtual Machine Manager HTTP 8100
Контроллер тестирования для агента тестирования Удаленное управление .NET 6910*
Агент тестирования для контроллера тестирования .NET Remoting (удалённое взаимодействие) 6901*
Создание контроллера для создания агента SOAP по протоколу HTTP 9191
Агент лаборатории к агенту лаборатории в изолированной среде Сокеты TCP 9050
Создание агента для сборки контроллера SOAP через HTTP 9191
Консоль администрирования Диспетчера виртуальных машин (Virtual Machine Manager) — Диспетчер виртуальных машин (Virtual Machine Manager) HTTP 8100
Менеджер виртуальных машин — хосты менеджера виртуальных машин Удаленное управление Windows (WinRM) для выполнения действий
Фоновая интеллектуальная служба передачи (BITS) для передачи данных
80 для выполнения действий
443 для передачи данных
Virtual Machine Manager — сервер библиотеки Virtual Machine Manager WinRM для выполнения действий
BITS для передачи данных
80 для выполнения действий
443 для передачи данных
Тир приложений — хосты Virtual Machine Manager Взаимодействие с распределенной объектной моделью компонента или интерфейсом управления Windows (DCOM/WMI) для передачи данных 135
Динамически назначается в диапазоне 49152 до 65535
Уровень клиента — узлы Virtual Machine Manager Подключение от хоста к виртуальной машине. 2179 для выполнения хостовых подключений
Размещенные службы HTTPS 443

Настраиваемые параметры сети

Как показано в предыдущей таблице, вы можете изменить связь между приложением, данными и уровнями клиентов в локальных развертываниях, изменив Azure DevOps Server для использования пользовательских портов. В следующей таблице описаны примеры изменений в портах с HTTP на HTTPS.

Замечание

Чтобы настроить Azure DevOps Server для использования протокола HTTPS и SSL, необходимо не только включить порты для сетевого трафика HTTPS, но и выполнить множество других сопутствующих задач. Дополнительные сведения см. в статье "Настройка HTTPS с помощью протокола SSL" для Azure DevOps Server.

Услуга Протокол Порт
Веб-службы с SSL HTTPS Настройка администратора
HTTPS центра администрирования SharePoint Настройка администратора
Продукты SharePoint HTTPS 443
Службы отчетности HTTPS 443
Клиентские веб-службы HTTPS Настройка администратора
Управление выпусками HTTPS Настройка администратора