Архитектура и функциональные возможности Visual Studio Team Foundation Server
Презентацию к данной лекции Вы можете скачать здесь.
Цель лекции:
Получить представление об архитектуре и функциональных возможностях TeamFoundationServer 2012
Введение
MicrosoftVisualStudio TeamFoundationServer(TFS) предназначен для обеспечения совместной работы команд разработчиков программного обеспечения. TeamFoundationServer предоставляет следующие функциональные возможности [29]:
- управление проектами;
- отслеживание рабочих элементов;
- контроль версий;
- управление тестовыми случаями;
- автоматизация построения;
- отчетность.
Архитектура TeamFoundationServer 2012 является трехуровневой сервис-ориентированной ( рис. 9.1) [30]. Уровень приложения поддерживается веб-сервером ASP.NET, размещенном в среде IIS. Уровень данных поддерживается сервером баз данных MSSQLServer 2012.
Team Foundation Server представляет с логической точки зрения веб-приложение, состоящее из нескольких веб-служб, выполняющихся на уровне приложения. Данные службы реализуют функциональность TFS. В состав веб-служб уровня приложения входят: управление версиями, служба построения, отслеживания рабочих элементов, службы платформы TFS и лаборатории тестирования LabManagement.Серверная объектная модель является интерфейсом прикладного программирования для TFS. При необходимости расширение функциональности TFS целесообразно строить на базе серверной объектной модели.
Уровень данных состоит из нескольких реляционных баз данных и хранилища данных: базы данных конфигурации сервера, базы данных аналитики, базы данных коллекции командных проектов и хранилища данных. Информация командных проектов сохраняется в реляционных базах данных, и через запланированные интервалы времени помещается в хранилище данных.
Клиентский уровень может реализовываться в оболочке VisualStudioи веб-браузере. Клиентский уровень взаимодействует с уровнем приложений через серверную объектную модель и использует веб-службы. Кроме того, клиентский уровень включает интеграцию с Microsoft Office.
Развертывание Team Foundation Server
Для Team Foundation Server можно выполнить развертывание несколькими способами: на одном сервере; на нескольких серверах; в одном домене, рабочей группе или в нескольких доменах [31].
В простейшей серверной топологии для размещения компонентов, составляющих логические уровни Team Foundation, используется один физический сервер ( рис. 9.2). При установке TFS с одним сервером все компоненты (приложение TeamFoundationServer, SQLServer, ReportingServices и WidowsSharePointServices) устанавливаются на одном компьютере. Такая конфигурация предполагает выполнение построения (TeamFoundationBuild) и тестирование либо на сервере, либо на клиентских компьютерах. Общее число пользователей для такой конфигурации, как правило, не более 50.
В простой серверной топологии для размещения компонентов, составляющих логические уровни Team Foundation, также используется один физический сервер ( рис. 9.3). Однако в такой технологии учитывается также дополнительная нагрузка на процессорные мощности, создаваемая программным обеспечением для построения и тестирования.
На рис. 9.3 веб-службы и базы данных для Team Foundation размещаются на одном физическом сервере, но службы построения устанавливаются на отдельный компьютер. К Team Foundation Server можно получить доступ с клиентских компьютеров, принадлежащих к той же рабочей группе или тому же домену. В данной конфигурации контроллер построения для выполнения Team Foundation Build и контроллер тестирования устанавливаются на отдельных компьютерах. Общее число пользователей для такой конфигурации, как правило, не более 100.
В серверной топологии средней сложности используются два или больше серверов для размещения логических компонентов на уровне данных и приложений Team Foundation ( рис. 9.4). На рис. 9.4 службы уровня приложений для Team Foundation Server развертываются на одном сервере, а базы данных для TFS устанавливаются на отдельном сервере. На отдельных серверах размещаются веб-приложение SharePoint и экземпляр служб отчетов SQL Server. Портал для каждого командного проекта размещается в веб-приложении SharePoint. Сервер Team Foundation Build и тестовые контроллеры команды развертываются на дополнительных серверах. Общее число пользователей для такой конфигурации, как правило, не более 1000.
Для управления командной разработкой TeamFoundationServer содержит одну или несколько коллекций командных проектов, каждая из которых может содержать ноль или более проектов.
Шаблоны командных проектов
Командный проект представляет коллекцию рабочих элементов, кода, тестов и построений, которые охватывают все артефакты, используемые в жизненном цикле программного проекта [32]. Командный проект строится на основе шаблона, который представляет набор XML-файлов, содержащих детали того, как должен осуществляться процесс. В TFS 2012 имеются следующие шаблоны проектов:
- MSFforCMMIProcessImprovement 6.0, который предназначен для больших команд со строго формальным подходом к управлению проектами на основе модели CMM/CMMI;
- MSFforAgileSoftwareDevelopment 6.0, который определяет гибкий подход к управлению проектами разработки программного обеспечения;
- MicrosoftVisualStudioScrum 2.2., который предназначен для небольших команд (до 7 - 10 участников), которые используют гибкую методологию и терминологию Scrum.
При создании командного проекта предоставляется возможность настраивания и управления следующими областями проекта:
- отслеживание рабочих элементов позволяет определить начальные типы рабочих элементов, общие и пользовательские запросы, создать начальные рабочие элементы;
- классификации позволяют определить начальные области и итерации проекта;
- веб-сайт на базе SharePoint позволяет управлять библиотекой документов проекта;
- система контроля версий позволяет определять начальные группы безопасности, разрешения, правила возврата версий;
- отчеты формируются в папки, создаваемые на сайте командного проекта;
- группы и разрешения включают группы безопасности TFS и разрешения для каждой группы;
- построения включают стандартные процессы построения для создания новых построений;
- лаборатория включает стандартные процессы лаборатории для использования, а также разрешения лаборатории для каждой группы;
- управление тестированием включает стандартные конфигурации тестирования, переменные, параметры и состояния разрешений.
Рабочими элементами в TeamFoundationServer являются: пользовательское описание функциональности, задачи, тестовые случаи, ошибки и препятствия. Этими элементами нужно управлять для выполнения программного проекта. Система отслеживания рабочих элементов позволяет создавать рабочие элементы, отслеживать их состояние, формировать историю их изменения. Все данные по рабочим элементам сохраняются в базе данных TFS.
TeamFoundationServer включает централизованную систему контроля версий. Система контроля версий TFS предоставляет следующие возможности:
- атомарные возвраты. Изменения, вносимые в файлы, упаковываются с "набор изменений". Возврат файла в наборе изменений представляет собой неделимую транзакцию. Этим гарантируется согласованность базы кода;
- ассоциация операций возврата с рабочими элементам, что позволяет отслеживать требования от начальной функции до задач и возврата в систему контроля версий кода, реализующего эту функцию;
- ветвление и объединение при разработке кода;
- наборы отложенных изменений позволяют создавать копии кода не записывая их в главное хранилище системы контроля версий;
- использование подписей позволяет пометить набор файлов в определенной версии с помощью текстовой подписи;
- одновременное извлечение позволяет нескольким членам команды одновременно редактировать файл с последующим объединением изменений;
- отслеживание истории файлов;
- политики возврата, которые предоставляют возможность выполнить код для проверки допустимости возврата;
- примечания при возврате позволяют формировать метаданные о возврате;
- прокси-сервер позволяет оптимизировать работу с региональными центрами разработки.
Построение проекта программного продукта в TFS реализует Сервер Team Foundation Build. Он позволяет стандартизировать инфраструктуру построений для команды проекта. Построение может выполняться в следующих режимах:
- ручной, при котором построение вручную ставится в очередь построений;
- непрерывная интеграция, которая позволяет выполнять построение при каждом возврате в систему контроля версий;
- прокрутка построений, при которой возвраты группируются вместе, чтобы в построение включались изменения за определенный период времени;
- условный возврат, при котором возвраты принимаются лишь в том случае, если успешно прошли слияния и построения отправленных изменений;
- расписание, которое позволяет настроить время построения на определенные дни недели.
Разработчик имеет возможность взаимодействовать с ключевыми службами TeamFoundationServer посредством:
- командного обозревателя (TeamExplorer) VisualStudio 2012, который предоставляет доступ к функциям управления жизненным циклом приложений, включая командные проекты, Мои работы, анализ кода, управление версиями и построениями
- доступа через веб (Team Web Access), посредством которого предоставляется веб доступ к функциям управления жизненным циклом приложений, включая командные проекты, рабочие группы, управление проектами, управление версиями и построеними;
- MicrosoftExcel, посредством которого предоставляется возможность определять и изменять рабочие элементы массивом, а также создавать отчеты на основе запроса рабочего элемента;
- MicrosoftProject, посредством которого предоставляется возможность управлять планом проекта, задачами расписания, ресурсами, формировать календарь проекта, диаграммы Ганта и представления ресурсов;
- консоли администрирования TeamFoundationServer, посредством которой осуществляется настройка TFS;
- инструментов командной строки;
- сторонних средств интеграции.
Ключевые термины
Краткие итоги
MicrosoftVisualStudioTeamFoundationServer предназначен для обеспечения совместной работы команд разработчиков программного обеспечения и имеет трехуровневую сервис-ориентированную архитектуру. Клиентский уровень реализован в оболочке VisualStudioи веб-браузере. Уровень приложения TFS состоит из нескольких веб-служб. Уровень данных включает несколько реляционных баз данных и хранилище данных. РазвертываниеTFS можно выполнить на одном сервере, на нескольких серверах, в одном домене, рабочей группе или в нескольких доменах. Командный проект представляет коллекцию рабочих элементов, кода, тестов и построений. Проект строится на основе шаблонов. Рабочими элементамивTFS являются: пользовательское описание функциональности, задачи, тестовые случаи, ошибки и препятствия. TFS включает централизованную систему контроля версий. Построение проекта программного продукта в TFS реализует сервер Team Foundation Build. Разработчик имеет возможность взаимодействовать с ключевыми службами TFS посредством командного обозревателя, доступа через веб, MicrosoftExcel, MicrosoftProject, консоли администрирования TFS и инструментов командной строки.
Набор для практики
Вопросы
- Поясните назначение и функциональные возможности MicrosoftVisualStudio 2012 TeamFoundationServer.
- Дайте характеристику архитектуры TFS.
- Дайте характеристику простейшей серверной топологииTFS.
- Дайте характеристику простой серверной топологииTFS.
- Дайте характеристику серверной топологииTFS средней сложности.
- Что представляет собой командный проект в TFS.
- Какие шаблоны проектов имеются в TFS 2012?
- Какие рабочие элементы определены в TeamFoundationServer.
- Какие возможности предоставляет система контроля версий TFS?
- Какие возможности имеет разработчик для взаимодействия с ключевыми службами TeamFoundationServer?
Упражнения
- Проведите анализ системных требований для установки MicrosoftVisualStudio 2012 TeamFoundationServer.
- Проведите анализ процесса установки TeamFoundationServer2012.
- Проведите анализ конфигурирования TeamFoundationServer2012.