Покупка машины для непрерывной интеграции - ключевые факторы? - PullRequest
7 голосов
/ 26 сентября 2008

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

Что я ищу в компьютере, который будет использоваться для непрерывной интеграции для очень маленькой (3 человека) команды php?

Какие «вещи» (память, процессор и т. Д.) Важны, а какие нет?

Ответы [ 8 ]

6 голосов
/ 26 сентября 2008

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

Ваши ограничения будут вашей операционной средой. Если вы работаете с LAMP, вы хотите использовать машину, которая хорошо справится с настройкой LAMP, и это почти любая машина * nix, которая достаточно современна.

Я установил настройку непрерывной интеграции для .NET на старой рабочей станции Pentium4, которая у нас была, и она отлично справилась.

Одна вещь, которую нужно иметь в виду, это место для хранения, если вы архивируете свой код в сборке.

3 голосов
/ 26 сентября 2008

Хранение стало проблемой для нас, когда мы использовали Maven , Continuum и Clearcase и строили почасово. Снимки были оставлены после каждой сборки.

У нас был достаточно мощный блок (Sun Fire V490), и мы использовали его для нашей среды интеграции разработки и Archiva хранилище. Поэтому у нас никогда не было проблем с производительностью и памятью. Фактически, единственный раз, когда у нас возникла проблема с памятью PermGen, это было создание цели сайта Maven, и это просто означало использование -XX: MaxPermSize = 128m.

2 голосов
/ 26 сентября 2008

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

  • 2-4 ГБ ОЗУ, больше, если вы хотите запустить много тестов параллельно или вы хотите запускать виртуальные машины для симуляции клиентов.
  • Многоядерный процессор (или несколько процессоров) для увеличения шансов на обнаружение ошибок потоков.
  • Машины "серверного" класса, как правило, работают круглосуточно и лучше, чем машины "настольного" класса, но между ними нет четкой границы.
  • Диски RAID1 или RAID1 + 0 являются обязательными. Даже если у вас есть резервные копии (и они должны быть у вас в любом случае), очень сложно восстановить сервер, а дополнительный жесткий диск стоимостью 100 долларов более чем стоит денег в качестве страховки.
2 голосов
/ 26 сентября 2008

По моему опыту, это не обязательно должен быть мощный двигатель. Любая машина, которую вы использовали бы для разработки, была бы более чем удовлетворительной. Очевидно, что чем быстрее машина, тем быстрее отклик, если вы запускаете модульные тесты для фиксации кода. Наш CI-сервер работает под управлением XP SP2, 3G-процессора, 3G-ОЗУ, и сейчас он достаточно силен для наших нужд. Тем не менее, было бы хорошо получить электронное письмо не позднее, чем через 6 минут после фиксации, которое сообщит, чиста ли сборка и все ли тесты пройдены. Для ночных сборок спецификации, вероятно, могут понизиться, так как у вас, вероятно, есть больше времени, чтобы их выполнить. Место на жестком диске (в наши дни разумно достижимо 300G) хорошо подходит для хранения отчетов и сборок с регрессией, но если у вас есть NAS, вы, вероятно, можете отбросить артефакты после их сборки.

1 голос
/ 16 ноября 2008

RAM: достаточно для запуска инструмента CI ( phpUnderControl ?) И любого вспомогательного программного обеспечения, которое вы хотите для своей сборки и тестирования.

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

ЦП: не проблема. Любая машина, которую вы можете купить, будет работать.

Так что между этими двумя я предпочитаю ОЗУ перед пространством хранения.

0 голосов
/ 26 сентября 2008

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

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

0 голосов
/ 26 сентября 2008

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

0 голосов
/ 26 сентября 2008

Если приложение не будет огромным, я просто получу двухъядерную коробку с 4 гигабайтами оперативной памяти и, возможно, 2 достаточно быстрыми SATA-дисками, установленными в RAID 0. 500 гигабайт может быть?

Если вы хотите быть в безопасности, используйте два 70-гигабайтных диска для RAID 0 для раздела ОС и затем 3 140+ гигабайта для RAID 5 для данных.

...