Почему использование выделенный компьютер для создания сборок с помощью TFS?

Мне нравится отсутствие приоритета операторов в Smalltalk

2 * 3 + 4 * 5 = 6 + 4 * 5 = 10 * 5 = 50

вместо

2 * 3 + 4 * 5 = 6 + 4 * 5 = 6 + 20 = 26

Это связано с объектной природой smalltalk и тем фактом, что сообщения передаются слева направо. Если сообщение * отправляется на номер 2 с номером 3 в качестве параметра, то ответ на это сообщение равен 6. Довольно круто, вы даже можете обезьянить его, если почувствуете зло.

5
задан jessehouwing 29 December 2016 в 20:22
поделиться

8 ответов

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

Другое дело, что вам нужна «чистая» установка ОС, чтобы другие программы не загрязняли компьютер, добавляя зависимости, которых у клиентских компьютеров может не быть.

8
ответ дан 18 December 2019 в 10:48
поделиться

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

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

4
ответ дан 18 December 2019 в 10:48
поделиться

Для одной воспроизводимой среды фраза "Но это работает на моей машине" не будет больше быть услышанным. Это снимает нагрузку с машин разработчиков и гарантирует, что все обновлены и все проверено.

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

На этот вопрос также есть еще несколько ответов.

2
ответ дан 18 December 2019 в 10:48
поделиться

Вы хотите, чтобы ваша сборка выполнялась как можно быстрее, особенно если вы выполняете непрерывную интеграцию или если у вас большой процесс сборки. Недавно мы начали бороться с нашим ИТ-отделом, потому что серверы, которые мы используем для сборки и тестирования, становятся слишком медленными. В основном это связано с тем, что все они работают как виртуальные машины, и у них слишком много виртуальных машин на хост. Наш полный процесс сборки (не сборка CI) теперь занимает более получаса (большая часть - это развертывание, а не компиляция), и это убивает наших сотрудников QA, поскольку им приходится слишком долго ждать сборки.

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

1
ответ дан 18 December 2019 в 10:48
поделиться

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

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

1
ответ дан 18 December 2019 в 10:48
поделиться

Я исхожу из того, что серверы должны разрабатываться для выполнения определенной задачи. Например, контроллер Active Directory не должен выполнять функцию SQL-сервера.

С точки зрения доступных ресурсов становится трудно сбалансировать нагрузку между несколькими серверными приложениями. Например, сервер сборки, выполняющий сборку, повлияет на производительность любых других служб на коробке. Вероятно, что ваш сервер сборки будет использоваться для сборки множества различных проектов. Компиляция и множество задач, связанных с типичной сборкой (например, анализ кода, модульное тестирование и т. Д.), Являются дорогостоящими и требуют интенсивных операций с ЦП / диском.

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

0
ответ дан 18 December 2019 в 10:48
поделиться

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

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

Я подозреваю, что менеджер и команда скоро поймут, что нужна новая машина.

Несмотря на статью Спольски, на которую ссылается кто-то другой, строительная машина не обязательно должна быть самой быстрой коробкой ... Это может быть отбитая подержанная машина.

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

Некоторые конкретные причины для этого (как говорили другие)

  1. Воспроизводимость и стабильность сборок. Крайне важно, чтобы сборки были последовательными и повторяемыми. Сервер сборки имеет значительно больший контроль, чем все различные машины разработчика. Это позволяет разработчикам пробовать инструменты бета-версии и т. Д., Не влияя на выпуск / сборку.

  2. Эффективность - использование выделенного сервера сборки освобождает процессоры машин разработчика для разработчиков.

0
ответ дан 18 December 2019 в 10:48
поделиться

Означает ли «Непрерывная интеграция» что-нибудь для вашего руководителя? Это было бы моим предложением, поскольку это основная причина наличия выделенной машины для сборки,

0
ответ дан 18 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: