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


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

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

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

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

уровни служб Azure DevOps Server main

Необязательные службы 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 и операционной системы 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 не рекомендуется для TFS 2017 и более поздних версий.)

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

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

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

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

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

По умолчанию для обмена данными между компьютерами в развертывании 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 и secure Sockets Layer, необходимо не только включить порты для сетевого трафика HTTPS, но и выполнить многие другие задачи. Дополнительные сведения см. в статье Настройка ПРОТОКОЛА HTTPS с протоколом SSL для Azure DevOps Server.

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