Обновления агента сборки TFS - PullRequest
0 голосов
/ 07 июня 2018

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

Некоторые подробности, чтобы понять, почему у меня возникла эта дилемма.С одной стороны, я бы хотел, чтобы среда сборки производства была максимально стабильной.В настоящее время используется TFS-сервер 2017, агент сборки использует msbuild, который входит в состав установки Visual Studio (VS2017 - 15.0.26228.0).Мы создаем неуправляемые приложения на C ++.Недавно преследовала проблему, из-за которой наше приложение зависало на долгое время без причины (занятое в течение 7-8 минут, затем продолжается).В попытке отладить проблему, я создал новые исполняемые файлы из тех же источников, но использовал другую систему для его сборки (VS2017 - 15.5.27130.2036).Он был построен из визуальной студии.Я заметил, что размер exe был другим, и, конечно, у него не было проблемы с заморозкой.Проверка замечаний к выпуску не помогла, я не увидел ничего, что могло бы объяснить разницу в производимом бинарном файле.Я должен сказать, что наш код немного сложен, использует количество библиотек третьей части, создавая много сложных структур в памяти.Область кода, которая приводит к замораживанию, связана с повторной инициализацией множества объектов, воссозданием множества векторов сложных структур ...

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

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

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

Вы можете просматривать системные возможности агента и управлять его пользовательскими возможностями, перейдя к хабу Пулы агентов и выбрав вкладку Возможности для требуемойагент: http://TFS2017:8080/tfs/DefaultCollection/_admin/_AgentPool

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

0 голосов
/ 07 июня 2018

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

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

Для обновлений создается новый образ с новым набором инструментов, который затем тестируется изолированно, прежде чем сделать его образом по умолчанию.Если цепочка инструментов поддерживает параллельную установку, такую ​​как MSBuild, Typescript и т. Д., Тогда существует очень низкий риск поломки, поскольку изоляция этих инструментов очень хорошая.Я также обнаружил, что если файлы проекта нацелены на определенные цепочки инструментов вместо того, чтобы автоматически переходить на последнюю версию, тогда ваша жизнь будет гораздо более приятной.

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

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

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