Покупка машины для непрерывной интеграции – ключевые факторы?

StackOverflow https://stackoverflow.com/questions/140574

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Следует иметь в виду одно: место для хранения, если вы архивируете свой код в сборке.

Другие советы

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

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

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

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

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

БАРАН:достаточно для запуска вашего инструмента CI (PHPUnderControl?) и любое вспомогательное программное обеспечение, которое вы хотите для своей сборки и тестов.

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top