2014-01-13 4 views
1

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

Одним из основных вопросов, которые я не смог решить до сих пор, является вопрос о том, рекомендуется ли использовать один центральный сервер TeamCity для всех различных (и независимых) проектов или предпочтительнее их разделить путем установки TeamCity для каждого отдельного проекта?

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

+0

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

ответ

1

Существует определенно мало преимуществ наличия нескольких установок TeamCity. Отдельные установки потребуют отдельных серверов (или, по крайней мере, портов) и отдельных лицензий (если не использовать бесплатную версию).

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

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

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

1

Я вижу следующие преимущества для разделения экземпляров:

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

На нижней стороне:

  • обновлений и плагинов установки должны быть повторены
  • потенциально много конфигураций возможно Teamcity
  • данные не могут быть легко распределены между экземплярами

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

Смежные вопросы