Спонсор: Microsoft
Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 814 / 26 | Оценка: 4.43 / 3.71 | Длительность: 10:46:00
Лекция 2:

Архитектура Team Foundation Server

< Лекция 1 || Лекция 2 || Лекция 3 >
Аннотация: В этой лекции: архитектура продуктов Microsoft Visual Studio Team System (VSTS) и Team Foundation Server (TFS) ; компоненты, составляющие уровни клиента, приложений и данных; различия между односерверной и многосерверной разработкой.

Обзор

В этой лекции вы познакомитесь с архитектурой TFS и основными топологиями разработки. Логически TFS обладает трехуровневой архитектурой, состоящей из клиентского уровня ( client tier ), уровня приложений ( application tier ) и уровня данных ( data tier ). Клиенты TFS взаимодействуют с уровнем приложений посредством различных веб-служб. Уровень приложений пользуется различными базами данных Microsoft SQL Server на уровне данных.

Вы вольны установить уровень приложений и уровень данных как на одном физическом сервере, так и на разных серверах. В основном, выбор определяется размером группы. Односерверное развертывание более уместно в группах, насчитывающих менее 50 членов, хотя достаточно мощный сервер способен поддерживать и до 400 пользователей. Многосерверное развертывание позволяет увеличить количество пользователей до 2000.

Из этой лекции вы узнаете об основных компонентах TFS и об их взаимодействии друг с другом, а также о назначении каждого из этих компонентов и о том, каким образом обычно производится их развертывание.

Если вы не знакомы с TFS, сначала прочтите лекцию 1. В ней описано, как группы разработчиков и тестировщиков взаимодействуют с TFS, чтобы упростить сотрудничество и повысить эффективность разработки ПО.

Архитектура Team Foundation Server

В TFS использована логическая трехуровневая архитектура, разделяющаяся на клиентский уровень, а также уровни приложений и данных. Клиенты TFS взаимодействуют с уровнем приложений посредством различных веб-служб. В свою очередь, уровень приложений поддерживается различными базами данных на уровне данных. Компоненты уровня TFS и их взаимодействие проиллюстрированы на рис.2.1.

Компоненты и уровни TFS

увеличить изображение
Рис. 2.1. Компоненты и уровни TFS
Клиентский уровень

Клиентский уровень состоит из следующих компонентов:

  • Объектная модель Team Foundation Server Открытый интерфейс API для взаимодействия с TFS, используется для создания клиентских приложений, обменивающихся данными с TFS.
  • Компоненты Visual Studio Industry Partners (VSIP) Инструменты сторонних поставщиков, надстройки и языки для использования в Visual Studio
  • Интеграция с Microsoft Office Набор надстроек для Microsoft Office Excel и Microsoft Office Project, позволяющих запрашивать и обновлять рабочие элементы в базе данных TFS Work Item Tracking. Особенно полезен для менеджеров проекта, уже широко использующих эти инструменты.
  • Инструменты командной строки Инструменты, позволяющие взаимодействовать с TFS из командной строки. В основном используются для работы с функциями контроля качества исходного кода, также полезны для автоматизации повторяющихся процессов и при планировании заданий.
  • Политики возврата после правки (check-in policy) Расширяемый механизм проверки кода в процессе возврата после правки.
Уровень приложений

На уровне приложений клиентскому уровню предоставляется доступ к веб-службам ASP.NET. Использование этих веб-служб в интеграторах от независимых разработчиков не предполагается; здесь они приведены только для полноты картины. Службы сгруппированы в следующие коллекции:

  • Team Foundation Data Services ;
  • Team Foundation Integration Services.
Службы данных Team Foundation

Эти веб-службы отвечают, в первую очередь, за операции с данными на уровне данных. К ним относятся следующие веб-службы:

  • Version Control Используется на клиентском уровне для выполнения различных функций TFS по контролю качества исходного кода и для взаимодействия с БД контроля качества исходного кода.
  • Work Item Tracking Используется на клиентском уровне для создания, обновления и направления запросов к рабочим элементам в БД Work Item Tracking.
  • Team Foundation Build Используется на клиентском уровне и в оболочке MSBuild для выполнения процесса сборки.
Службы интеграции Team Foundation

Эти веб-службы обеспечивают функциональные возможности интеграции и автоматизации и не взаимодействуют с уровнем данных. К ним относятся следующие веб-службы:

  • Registration Используется для регистрации других служб TFS, сохраняет информацию в регистрационной БД. Информация используется службами для обнаружения друг друга и определения способа взаимодействия.
  • Security Состоит из службы групповой безопасности (group security service) и службы проверки подлинности (authorization service). Служба групповой безопасности управляет всеми пользователями и группами TFS. Служба проверки подлинности обеспечивает авторизацию доступа к TFS.
  • Linking Содержит инструменты для создания слабых связей - "ссылок" ( link ) - между элементами данных. Например, связь между рабочим элементом дефекта и исходным кодом, измененным для устранения дефекта, устанавливается при помощи ссылки TFS.
  • Eventing Запускает инструмент или службу для регистрации типов событий. Пользователь может подписаться на события и получать уведомление по электронной почте или с помощью вызова веб-службы. Например, можно использовать событие возврата после правки для запуска непрерывной сборки.
  • Classification Работает вместе с веб-службой Linking и позволяет классифицировать артефакты TFS в соответствии с предопределенными так-сономиями. Это облегчает поддержку объединенных отчетов даже для артефактов, которые не пользуются общей таксономией для упорядочивания своих данных. Например, если рабочие элементы упорядочены по группам, а тесты упорядочены по компонентам, вы также можете упорядочить тесты по группам, что позволит им фигурировать в отчете рядом с рабочими элементами.
Уровень данных

Прямой доступ из клиентских приложений к данным, хранящимся на уровне данных, в TFS не поддерживается. Все запросы к данным должны осуществляться через веб-службы на уровне приложений. Уровень данных TFS состоит из следующих хранилищ, соответствующих службам данных на уровне приложений.

  • Отслеживание рабочих элементов В этом хранилище хранятся все данные, относящиеся к рабочим элементам.
  • Управление версиями Здесь хранятся все данные, относящиеся к управлению исходным кодом.
  • Team Foundation Build Здесь хранится вся информация, относящаяся к TFS Team Build.
  • Хранилище отчетов Здесь хранится информация, относящаяся ко всем инструментам и функциям TFS. Хранилище отчетов облегчает создание отчетов, объединяющих данные от различных инструментов.

Топология развертывания

Развертывание TFS выполняется с использованием различных топологий - от односерверных до сложных многосерверных типологий.

Основные требования

Независимо от используемой топологии вам следует помнить о нескольких ключевых требованиях.

  • Устанавливайте уровень приложений и уровень данных в одном и том же домене. При этом они могут находиться как на одном, так и на разных серверных узлах.
  • TFS устанавливается на компьютеры под управлением Microsoft Windows Server 2003 SP1 или более поздней версии.
  • Все веб-службы уровня приложений должны устанавливаться на одном сервере.
  • Устанавливайте один экземпляр TFS на одном компьютере.
  • Нельзя установить более одного экземпляра TFS на физический сервер.
  • Не распределяйте БД TFS между несколькими серверами БД. Все проекты должны находиться в одной группе серверов Team Foundation и не могут быть распределены по группам.
  • Для размещения портала проекта нельзя использовать существующую инфраструктуру Microsoft SharePoint Portal Server. Рассмотрите возможность использования специализированного сервера для размещения на нем порталов TFS SharePoint.
  • Не пытайтесь установить TFS на контроллер домена - это не поддерживается.
  • При развертывании на двух серверах подготовьте учетные записи домена для служб TFS. Например, вам нужно будет создать учетные записи DOMAIN\TFSSERVICE и DOMAIN\TFSREPORTS.
Развертывание на одном сервере

Развертывание на одном сервере - простейшая топология, подходящая для групп разработчиков или пилотных проектов с числом пользователей не более 400. В этом подходе все компоненты уровня приложений и уровня данных устанавливаются на один сервер и доступ к ним осуществляется в пределах одного домена.

Если вам нужно установить компоненты испытательного стенда для проверки производительности, установите их на серверном узле или на одном или нескольких клиентах. На рис.2.2 показана топология с одним сервером.

Односерверная топология

Рис. 2.2. Односерверная топология
Развертывание на раздельных серверах

Топология многосерверного развертывания используется в крупных группах разработчиков, насчитывающих до 2000 пользователей. В данной топологии уровень приложений устанавливаетcя отдельно от уровня данных.

Вы можете установить службы Team Foundation Build Services на уровень приложений, однако в крупных группах рекомендуется выделять для сборки один или несколько специальных серверов. Если в проекте требуется проверка производительности, разверните испытательный стенд (контроллер и агенты) на дополнительных серверных узлах. На рис.2.3 показана многосерверная топология.

Многосерверная топология

увеличить изображение
Рис. 2.3. Многосерверная топология

Резюме

Архитектура Team Foundation Server разделена на три уровня: клиентский, приложений и данных.

  • На клиентском уровне находятся компоненты клиента, например, Team Explorer в Visual Studio 2005, интеграция с Microsoft Office и инструменты командной строки.
  • На уровне приложений содержатся, например, службы управления версиями Team Foundation, службы отслеживания рабочих элементов и службы сборки.
  • На уровне данных содержатся БД для хранения данных, необходимых для отслеживания рабочих элементов, управления версиями, групповой сборки и организации хранилища отчетов.

В продукте TFS поддерживаются односерверная и многосерверная топологии развертывания. В первом случае уровень приложений и уровень данных устанавливаются на одной машине. Односерверное развертывание оправдано для небольших групп или при выполнении пилотных проектов. При раздельном развертывании уровень приложений и уровень данных устанавливаются на отдельных серверах. Многосерверное развертывание полезно в крупных группах с большим числом пользователей.

Дополнительные ресурсы

Дополнительную информацию о масштабируемости Team Foundation Server вы найдете в статье "Team Foundation Server Capacity Planning" по адресу http://blogs.msdn.com/bharry/archive/2006/01/04/509314.aspx.

< Лекция 1 || Лекция 2 || Лекция 3 >
Александр Будник
Александр Будник
Израиль, Иерусалим
Pavel Pelevin
Pavel Pelevin
Украина, Одесса