Сервисы Team Foundation Build обеспечиваются в Visual Studio Team System четырьмя подсистемами: клиентские инструменты, сервисы построения, Web-сервисы построения, а т^- же хранилище построений. Каждая из них играет в процессе построения свою специфическую роль. На рис. 30.1 показана совместная работа этих компонентов.
Каждый из этих четырех компонентов играет ключевую роль для обеспечения надежности построения. В следующем списке описаны компоненты рис. 30.1.
□ Build Client Tools (Visual Studio) (клиентские инструменты построения Visual Studio) — с их помощью построение (которое может иметь версию и храниться в системе управления исходными кодами Team Foundation Source Control system) описывается и запускается.
□ Build Web Services (Web-сервисы построения)— этот компонент существует на уровне приложения сервера Team Foundation Server. Его задача— прослушивание приходящих от клиентских инструментов запросов на построение. Затем он передает запрос на построение сервисам Build Services (на сервере построения).
□ Build Agents (агенты построения)— представляют собой реальные серверы построения вашего приложения. Сервисы построения работают на этих агентах. Это "рабочие лошадки", которые выполняют фактическое построение. Для этого они сначала изучают определение построения. Затем они собирают все необходимые файлы (из системы управления исходными кодами), компилируют исходные файлы, выполняют тесты и публикуют результаты в хранилище построений. Затем членам команды могут быть разосланы уведомления о завершении построения. Кроме того, агенты построения выложат построение в указанное место.
□ Build Repository (хранилище построений)— уровень данных сервера Team Foundation Server служит хранилищем данных. Здесь хранятся подробности процесса построения и журналы событий. Это позволяет клиентам просматривать и анализировать построение.
Примечание
Представленная на рис. 30.1 диаграмма является логической архитектурой. Система Team Foundation может быть структурирована различными способами. Например, несмотря на то, что для больших проектов имеет смысл держать выделенный сервер построения, вы можете разместить сервер построения на том же самом компьютере, на котором находится уровень приложения Team Foundation Server (либо уровень данных). Для очень больших проектов, возможно, имеет смысл содержать целую ферму компьютеров для построения (на которых работают компоненты сервера построения).