Агент развертывания однопоточный, но нам нужно несколько? - PullRequest
0 голосов
/ 07 октября 2019

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

У нас есть два конвейера выпуска и этапы в нашем конвейере выпуска Azure Devops, которые совместно используют одну и ту же «группу развертывания», в которой есть один агент на одном сервере.

+----------------------+-------------+-------------------------------------+
|   Release Pipeline   |   Stage     | Maximum No of Parallel Deployments  |
+----------------------+-------------+-------------------------------------+
| VegaDW-Full-Release  | Smoke       |                                   5 |
| VegaDW-Regular-Tasks | Safe Backup |                                   1 |
+----------------------+-------------+-------------------------------------+

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

Однако, когда VegaDW-Regular-Tasks \ SafeРезервное копирование работает, кажется, блокирует прогресс любых выпусков VegaDW-Full-Release \ Smoke и, следовательно, однопоточность наших выпусков. Я также не вижу, чтобы установка Smoke на 5 имела какое-либо значение, все равно кажется, что это однопоточность.

Есть ли способ решить эту проблему?

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

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

1 Ответ

2 голосов
/ 07 октября 2019

Агенты однопоточные. Один агент = одна степень параллелизма. Это по замыслу. Для дополнительных степеней параллелизма вам нужны дополнительные агенты.

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

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

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

...