воскресенье, 20 марта 2011 г.

Архитектура TFS

В данной статье я хочу рассмотреть архитектуру Team Foundation Server, уже полюбившегося всем инструмента управления проектами. Архитектура TFS состоит из трёх уровней, каждый из которых имеет свою реализацию и отвечает за определённую часть функционала.

     

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

       Клиентский уровень состоит из объектной модели (API для взаимодействия с TFS, например Team Explorer), компонентов Visual Studio Industry Partners (настройки и языки программирования для Visual Studio от сторонних производителей), интеграции с Microsoft Office (удобное ведение отчетов), инфраструктуры политик изменений файлов (механизм проверок исходного кода при изменении файлов).

       Уровень приложений состоит из Веб-сервисов, с которыми взаимодействует клиентский уровень. Они разделяются на сервисы обработки данных (Team Foundation Data Services) и сервисы интегрирования (Team Foundation Integration Services).
    Сервисы обработки данных обеспечивают взаимодействие с уровнем данных. Они включают в себя сервис контроля версий, для взаимодействия с базой данных исходного кода, сервис отслеживания рабочих элементов, для создания и обновления рабочих элементов и сервис сборки, для выполнения процессов сборки (MSBuild).

       Сервисы интегрирования обеспечивают функциональность взаимодействия и автоматизации. Они включают в себя:
    • сервис регистрации, для регистрации других сервисов
    • сервис безопасности, для управления всеми пользователями и группами
    • сервис связывания, для взаимодействия исходного кода и поставленной задачи
    • сервис обработки событий, для запуска процесса непрерывной интеграции или получения уведомлений об изменении кода
    • сервис классификаций, для разделения уровней задач.

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

       В завершении статьи хотелось бы сказать, что уровень приложений и уровень данных могут находиться как на одном, так и на различных серверах. Это зависит от количества человек в команде. Для небольших команд лучше использовать один сервер. Несколько серверов лучше использовать для больших команд (450 человек и более).