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


Основные сведения о системе построения Team Foundation Build

Team Foundation Build можно использовать для компиляции, тестирования и развертывания программного обеспечения в автоматизированной распределенной системе. Данное программное обеспечение разработано для использования не только зрелыми компаниями-разработчиками, но и "начинающими" фирмами в небольших проектах разработки программ. Эта система призвана помочь в масштабировании системы построения по мере роста команды разработчиков и базы кода.

В этом разделе

  • Компьютеры построения

    • Служба построения Team Foundation Build

    • Использование виртуальных машин в качестве компьютеров построения

  • Контроллер построений

  • Агент построения

  • Примеры топологии систем построения

  • Следующие шаги

Машины построения

Для использования Team Foundation Build необходимо наличие как минимум одной машины построения. Для любого среднего или крупного проекта разработки программного обеспечения может потребоваться несколько компьютеров построения. Далее в этом разделе будут приведены примеры нескольких конфигураций системы построения.

Компьютер построения — это компьютер, на котором установлена и настроена Служба построения Team Foundation. Этим компьютером может быть физический компьютер (например, персональный компьютер, расположенный под столом, или рабочая станция в лаборатории). Функции компьютера построения также может выполнять виртуальная машина с ее преимуществом гибкости.

Примечание

Специальный компьютер построения можно настроить на любом доступном компьютере.Например, чтобы воспользоваться возможностями Служба построения Team Foundation, отдельный разработчик, у которого есть еще один компьютер, может настроить его в качестве машины построения.

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

Служба построения Team Foundation Build

Чтобы настроить компьютер построения, необходимо установить, настроить и запустить Служба построения Team Foundation.

Служба построения Team Foundation — это служба Windows, которая указывается в различных местах операционной системы. Место, в котором она указывается, зависит от того, в каком качестве выполняется Служба построения Team Foundation: в качестве службы Windows или в качестве интерактивной службы. (Дополнительные сведения о процедуре установки этого параметра см. в разделе Настройка компьютера построения.)

Выполнение службы построения Team Foundation Build в качестве службы Windows

  • В узле Службы Служба построения Team Foundation указывается как Узел службы Visual Studio Team Foundation Build. Узел Службы можно просмотреть в одном из нижеуказанных мест.

    • В серверной операционной системе (например Windows Server 2008) — в диспетчере сервера.

    • В клиентской операционной системе (например Windows Vista) — в окне "Управление компьютером".

  • В диспетчере задач Служба построения Team Foundation указывается как Узел службы построений Visual Studio Team Foundation на вкладке Службы.

Примечание

Службу построения можно остановить или перезапустить из мест, указанных в предыдущем списке.Остановка или перезапуск службы позволяют эффективно останавливать или перезапускать компьютер построения.Однако более удобное средство управления компьютером построения — Консоль администрирования Team Foundation.Дополнительные сведения см. в разделе Управление системой построения.

Выполнение службы построения Team Foundation Build в качестве интерактивной службы

  • В диспетчере задач Служба построения Team Foundation указывается как TFSBuildServiceHost на вкладке Приложения.

Использование виртуальных машин в качестве компьютеров построения

Можно развернуть Служба построения Team Foundation на виртуальной машине (например, на виртуальной машине Hyper-V, запущенной на физическом компьютере под управлением Windows Server 2008). С помощью этой стратегии можно легко выполнить нижеуказанные задачи.

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

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

Основным недостатком использования виртуальной машины является то, что она работает медленнее физического компьютера. Если объем работы, необходимый для построений, небольшой, или если построения выполняются нечасто (например, каждую ночь), возможностей виртуальной машины может быть достаточно, чтобы ее можно было использовать в системе в качестве машины построения.

Чтобы повысить производительность Служба построения Team Foundation при запуске на виртуальной машине, можно прибегнуть к нижеуказанным мерам.

  • Запускайте виртуальные машины на физическом компьютере с многоядерным процессором. Если, например, физический компьютер оснащен четырехъядерным процессором, можно запустить четыре виртуальных машины одновременно, которые в большинстве случаев будут демонстрировать весьма высокую производительность в качестве компьютеров построения.

  • Выделите и смонтируйте для каждой виртуальной машины физический жесткий диск.

Контроллер построений

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

Каждый контроллер построений создает пул служб одного или нескольких агентов построения и управляет этими службами. Он распределяет работу с высокой нагрузкой на процессор (например, компилирование кода или запуск тестов) по агентам построения в своем пуле.

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

Так как для контроллера построений обычно не требуется много процессорного времени, возможностей виртуальной машины зачастую достаточно для использования ее в качестве платформы для контроллера построений. Однако контроллеру построений в определенных ситуациях может понадобиться значительный объем памяти. Поэтому следует обеспечить достаточное количество памяти на физическом компьютере или виртуальной машине, на которой будет настроен контроллер построений.

Агент построения

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

При сборке системы построения можно начать с небольшого количества агентов. Затем можно масштабировать систему построения, добавляя дополнительные агенты построения по мере увеличения числа участников команды, роста базы кода и увеличения объема работы, который должен выполняться системой построения.

Если для агентов настраиваются специализированные возможности, следует назначить этим агентам теги. Следуя этой стратегии, можно в дальнейшем создать определения построений, которые могут использоваться этими специализированными агентами. Например, можно применить тег BVT к пулу агентов, предназначенных для запуска тестов проверки построения. Затем можно определить, что при еженощном построении будут использоваться только указанные агенты построения.

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

Примеры топологии систем построения

Служба построения Team Foundation позволяет начать с небольшой простой системы построения. По мере расширения базы кода и увеличения команды разработчиков можно довольно просто постепенно расширить систему, добавляя компьютеры построения в уже имеющуюся систему.

Система из одной машины (используется совместно с уровнем приложений)

Следующая конфигурация рекомендуется для очень небольшой команды, в особенности если она выполняет построения нечасто и только в нерабочее время. (Например, выполняется только одно ночное построение.)

Система с одним компьютером на уровне приложений

В большинстве случаев топологии с одним компьютером построения недостаточно по следующим причинам.

  • Для агента построения требуются значительные ресурсы процессора, что может существенно снизить производительность уровня приложений.

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

  • Установка Служба построения Team Foundation увеличивает контактную зону для атаки на компьютер построения. Например, злоумышленник может создать определение построения для выполнения произвольного кода, который предназначен для управления сервером и кражи данных.

Система из одной машины (автономная)

Следующая конфигурация рекомендуется в качестве начальной для небольшой команды.

Система с одним компьютером (автономная)

Так как работа с высокой нагрузкой на процессор выполняется агентами построения на отдельном компьютере, производительность уровня приложений не снижается при запуске построений.

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

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

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

  • Установка Служба построения Team Foundation увеличивает контактную зону для атаки на компьютер построения. Например, злоумышленник может создать определение построения для выполнения произвольного кода, который предназначен для управления сервером и кражи данных.

Система из нескольких машин

Средним и большим группам для поддержки проектов обычно требуется несколько машин построения. В следующем примере развертываются две машины построения.

Система с несколькими компьютерами

Используя несколько компьютеров построения, можно выделить для каждого компьютера отдельную задачу, как описано в следующем примере.

  • Один компьютер построения можно выделить агентам построения, обрабатывающим непрерывные интеграционные построения. Команде требуются выполнять такие построения быстро (особенно построения с условным возвратом), чтобы работа не задерживалась в ожидании построения. Настроив параметры процесса построения, можно обеспечить быстрое выполнение построения. Эти настройки позволяют исключить очистку рабочей области, обеспечить запуск только высокоприоритетных тестов и задать низкое значение для параметра Максимальное время выполнения.

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

Система из нескольких машин с несколькими контроллерами

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

Система из нескольких компьютеров с несколькими контроллерами

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

Следующие шаги

Теперь, ознакомившись с принципами работы системы Team Foundation Build, можно перейти к следующим шагам.