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

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

Примечание

Предложение Azure DevOps Server раньше называлось Visual Studio Team Foundation Server.

Для оптимального планирования и управления развертыванием необходимо сначала понять базовую архитектуру 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 Server основные понятия и компоненты хранилища данных Azure DevOps Server. Дополнительные сведения о требованиях и зависимостях для установки см. в разделе 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 Services размещается уровень приложения, уровень данных и серверы сборки в облаке.

Дополнительные сведения о облачных службах и развертываниях в локальной среде см. в статье 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 Server с помощью некоторых из этих служб. Дополнительные сведения о создании приложений для Azure DevOps Server см. в разделе Разработка расширений.

Примечание

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

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

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

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

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

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

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

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

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

  • База данных конфигурации (TFS_Configuration)
  • Хранилище приложений (TFS_Warehouse)
  • База данных служб аналитики (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 (VSIP), интеграцию с Microsoft Office, интерфейсы командной строки, а также инфраструктуру политик возврата.

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

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

  • хранилища данных 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 Server в Рабочей группе.

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

В локальном развертывании 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 Server

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

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

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

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

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

Сетевые параметры по умолчанию

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

Уровень и служба Протокол Port
Уровень приложений — Веб-службы HTTP/HTTPS 8080/443 *
Уровень приложения — администрирование продуктов SharePoint HTTP 17012 * если продукты SharePoint были установлены с Azure DevOps Server; в противном случае создается случайным образом
Уровень приложения — продукты и Reporting Services SharePoint HTTP
Служба инструментария управления Windows (WMI) (требуется во время установки для указания и проверки URL-адресов для служб отчетов)
80 * динамический порт
Уровень данных MS-SQL TCP 1433 *
Уровень данных (службы аналитики SQL Server) MS-AS по умолчанию (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
Release Management Server HTTP или HTTPS 1000 *
Release Management Client HTTP или HTTPS 1000 *
Release Management Agent HTTP или HTTPS 1000 *
Контроллер тестирования — уровень приложений HTTP/HTTPS 8080/443 *
Уровень приложений — контроллер тестирования Удаленное взаимодействие .NET 6901 *
Уровень приложений — служба доменных имен (DNS) Динамическое обновление DNS 53
Уровень приложений — диспетчер виртуальных машин HTTP 8100
Контроллер тестирования — агент тестирования Удаленное взаимодействие .NET 6910 *
Агент тестирования — контроллер тестирования Удаленное взаимодействие .NET 6901 *
Контроллер построений — агент построения SOAP поверх HTTP 9191
Агент лаборатории — агент лаборатории в изолированной среде Сокеты TCP 9050
Агент построения — контроллер построений SOAP поверх HTTP 9191
Консоль администрирования диспетчера виртуальных машин — диспетчер виртуальных машин HTTP 8100
Диспетчеры виртуальных машин — узлы диспетчера виртуальных машин Удаленное управление Windows (WinRM) для выполнения действий
Фоновая интеллектуальная служба передачи (BITS) для передачи данных
80 для выполнения действий
443 для передачи данных
Диспетчер виртуальных машин — сервер библиотеки диспетчера виртуальных машин WinRM для выполнения действий
Служба BITS для передачи данных
80 для выполнения действий
443 для передачи данных
Уровень приложений — узлы диспетчера виртуальных машин Взаимодействие DCOM/WMI для передачи данных 135
Динамически назначается в диапазоне 49152–65535
Клиентский уровень — узлы диспетчера виртуальных машин Размещенное подключение к виртуальной машине. 2179. выполнение подключений на основе узла
Облачные службы HTTPS 443

Изменяемые сетевые параметры

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

Примечание

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

Служба Протокол Port
Веб-службы, использующие SSL HTTPS Настраивается администратором
Центр администрирования SharePoint — HTTPS Настраивается администратором
Продукты SharePoint HTTPS 443
Службы Reporting Services HTTPS 443
Клиентские веб-службы HTTPS Настраивается администратором
Управление выпусками HTTPS Настраивается администратором