Hudson или Teamcity для непрерывной интеграции? [закрыто]


100

Мы - магазин Java, ищущий инструмент CI для использования. И Hudson, и Teamcity кажутся бесплатными, но Teamcity кажется более привлекательной и с большей поддержкой.

Мне было интересно, почему до сих пор можно использовать Hudson и может ли кто-нибудь привести какие-либо аргументы за / против того же?


Возможно, вам будут интересны ответы здесь: stackoverflow.com/questions/1200721/…
ire_and_curses

Я бы добавил в смесь CruiseControl - если вы еще не думали об этом. Не могу комментировать точку зрения Java, я использовал версию .NET, но мне это нравится.
AdaTheDev

3
@ire_and_curses ни один из ответов в сообщении не дает хороших аргументов в пользу одного из инструментов по сравнению с другим
pdeva

4
-1 для круиз-контроля - Слишком много файлов конфигурации, которые нужно вручную настроить «просто так».
Беван,

3
Насколько я понимаю, из-за существования бесплатного TeamCity CruiseControl не функционирует. Я не вижу причин использовать CruiseControl вместо TeamCity. И много причин для обратного.
Найл Коннотон,

Ответы:


113

Team City - безусловно, лучший CI-сервер. Его убийственная особенность для меня - тесная интеграция с IDE (IntelliJ, Eclipse и VisualStudio). Он может показать вам, например, когда файл, который вы редактируете в среде IDE, устарел, кто его изменил и что они изменили. Вы можете выполнить фиксацию из среды IDE на сервер CI, запустить компиляцию и тесты в сетке сборки, а затем сервер CI зафиксирует, если сборка прошла успешно. Вы можете щелкнуть по отчетам о сборке в веб-приложении CI, и он откроет соответствующие файлы в IDE.

Доступны плагины (я написал один: http://team-piazza.googlecode.com ), но их немного.


9
Удаленный запуск / Предварительная проверка фиксации - очень полезные функции TeamCity. В целом TC может быть более удобным, если ваши сборки не быстрые, потому что в TeamCity вы постоянно получаете обратную связь о том, что происходит в вашей сборке (сколько тестов прошло, не удалось, на каком этапе сборка и т. Д.). Также уведомления TC более сложны. Вы можете настроить разные правила для разных типов сборок и для широкого спектра уведомлений (электронная почта, Jabber, лоток Windows).
Павел Шер,

6
@Pavel: Я не знаю TeamCity так же хорошо, как Hudson, поэтому не буду оспаривать начало вашего комментария. Но что касается уведомлений, утверждение, что TC более сложен, - это чистая FUD, по моему не столь скромному мнению. Все упомянутые каналы уведомлений доступны на Hudson (можно даже добавить твиттер). На самом деле, я уверен, что у Hudson гораздо больше плагинов, чем у TC (проверьте wiki.hudson-ci.org/display/HUDSON/Plugins ), и я уверен, что TC имеет больше ограничений, чем Hudson.
Паскаль Тивент,

3
Я согласен насчет каналов (у Hudson много плагинов), но не согласен с правилами. В TeamCity вы можете подписаться на сборки с вашими изменениями, вы можете получать уведомления, когда сборка начинает терпеть неудачу (например, когда первый тест начинает терпеть неудачу). Вы можете запросить уведомление о первой неудачной сборке после успешной последовательности + о первом успехе после сбоев. И эти параметры доступны для всех каналов уведомлений. Один из таких каналов - IDE notifier: когда что-то пойдет не так, вы получите уведомление прямо в своей IDE. Насколько я помню, правила уведомлений Hudson были намного проще.
Павел Шер,

2
Павел - не желая, чтобы здесь был матч, но по умолчанию Хадсон отправит вам электронное письмо только в том случае, если вы внесли свой вклад в неудачную сборку. Вы также можете подписаться, чтобы получать уведомления о каждой неудачной сборке, если хотите. В подключаемом модуле email-ext также есть больше возможностей. Вы не обязаны одобрять это, но давайте не будем искажать это.
Джим Т.

4
Быстрый гугл покажет вам, что есть плагины для управления кроликами набазтаг и другими милыми устройствами от Team City. Или вы можете использовать плагин, на который я ссылался в своем ответе . Преимущество тесной интеграции IDE - гораздо более быстрая и целенаправленная обратная связь о коде, над которым вы работаете, когда вы работаете с ним. Вам не нужно ждать уведомления, переключаться в браузер tge, читать отчет, снова переключаться в среду IDE и открывать соответствующий файл. Панель редактора изменяется по мере вашей работы, чтобы показать, как другие члены команды повлияли на код.
Nat

58

+1 для Хадсона.

Hudson - очень активный проект, имеет широкое сообщество пользователей. и список рассылки активных пользователей, действительно легко начать, прост в использовании, использовался в огромных, очень огромных проектах (JBoss, JAX-WS и т. д.) и, таким образом, доказал свою успешность, предлагает очень хорошие расширенные функции (например, матрица сборки, кластеризация сборки и т. д.), имеет открытый исходный код, имеет множество плагинов ...

И если поддержка действительно важная вещь, вы можете получить коммерческую поддержку от Солнца . Но, FWIW, я никогда не сталкивался с проблемой блокировки с Hudson.

Обновление: как вы, возможно, знаете, Косуке Кавагути (создатель Hudson) покинул Sun / Oracle и основал свою собственную компанию, чтобы вывести Хадсона на следующий этап . Другими словами, это не угроза для Хадсона. А если вам нужна поддержка, вы можете получить сертифицированную версию Hudson CI Server как часть плана подписки (эта сертифицированная версия включает высококачественный выпуск Hudson с предопределенным набором плагинов и некоторым коммерческим).

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

Инженер-строитель Hudson, инженер-строитель CruiseControl, инженер-строитель Bamboo, инженер-строитель TeamCity Тенденции работы

Это, конечно, не технический индикатор.


88
Может быть, TeamCity настолько прост в использовании, что не требует, чтобы кто-либо специально его настраивал?
Хенрик

3
@Henrik: Интерпретация приведенного выше графика на ваше усмотрение. Но да, возможно, TeamCity - это волшебство.
Паскаль Тивент, 09

16
Если вы нанимаете инженера по сборке на полную ставку для непрерывной интеграции, теперь у вас есть две проблемы: 1) с вашим CI сложно работать, поэтому вашим разработчикам будет сложно с этим справиться, а знания останутся в голове у этого человека; 2) Вы платите кому-то за работу, которую делать не нужно!
Найл Коннотон

15
Если бы я выбирал CI-сервер, я бы выбрал тот, у которого было НАИМЕНЕЕ вакансий для выделенного инженера для его администрирования. Это инструмент разработчика, и разработчики должны иметь возможность управлять им самостоятельно. Если они не могут, вам понадобится другой инструмент или другие разработчики.
Nat

График тенденций в сфере занятости вообще не подразумевает +1 для Хадсона ...
Шарике Абдулла,

17

Мы начали с Хадсона для пары проектов Flex, затем перешли в TeamCity, когда разработчики .NET присоединились к нашим усилиям по CI. Теперь мы снова заменили сервер TeamCity, вернувшись в Хадсон. Основные причины: - Активное сообщество Hudson лучше, чем поддержка. - Огромное количество плагинов для любых задач. - Открытый исходный код. - Hudson бесплатно, TeamCity бесплатен только для 10 проектов.

edit: TeamCity теперь бесплатен для 20 проектов.


2
Упало 10 ограничений проекта, теперь единственное ограничение - 20 конфигураций сборки. Для малых и средних проектов может быть достаточно.
Ashwoods

4
Из любопытства, какие функции, которые были доступны через плагины Jenkins, отсутствовали в мире TeamCity?
Бехран Саидзаде

14

TeamCity хорош тем, что позволяет каждому разработчику иметь свой собственный профиль сборки и подключаться к нему из своей IDE. Что одинокий пинает. Также есть поддержка GIT и т. Д. Внимательно посмотрите на это. Профессиональная версия бесплатна.


5
GIT также поддерживается Jenkins / Hudson
CJBrew

14

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

Релизы очень часты, поэтому вам придется часто обновляться, чтобы не отставать. Это означает, что вам нужно уделять много времени диагностике проблем и откату к предыдущим выпускам Hudson. (Иногда откат невозможен!)

Мы вводим в наш магазин непрерывное развертывание (когда вы регистрируете код, он развертывается на действующем сайте!), И борьба с Хадсоном обходится нам слишком дорого.

Мы активно рассматриваем возможность перехода на TeamCity исключительно из-за стоимости ошибок Хадсона.


8
То, что доступно обновление, не означает, что вы должны обновиться. Я бы предпочел, чтобы они выпускали чаще, чем реже. Это мой выбор, когда обновляться, и я, конечно, не делаю это каждую неделю. Кроме того, разработчики очень консервативны в отношении обратной совместимости. Плагины обычно не требуют последней версии Hudson для работы. Фактически, 130 доступных сейчас плагинов созданы для версий Hudson, выпущенных более года назад. Если вы все еще обеспокоены, в разработке находится плагин автоматического отката ..;)
Кристофер Орр,

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

2
Когда основной коммиттер отправляет сообщение о том, что основная ошибка безопасности была исправлена, это причина для обновления. Моя точка зрения по-прежнему остается в силе: Hudson слишком непостоянен - ​​даже без установленных дополнительных плагинов.
jdtangney

1
Я могу сказать, что после полутора лет использования Hudson / Jenkins в одном проекте, хотя это отличный инструмент - мы тоже испытали нестабильное качество между выпусками - и мы обновлялись только тогда, когда это было абсолютно необходимо. Мы нашли обходные пути, включая частое резервное копирование конфигурации. Я с нетерпением жду возможности попробовать TeamCity в моем последнем проекте.
JaysonRaymond

4
Почему обновления и стабильность должны быть противоположными факторами? Разве это не просто недостаток качества?
Найл Коннотон

6

Мне очень понравился Teamcity, но в среде, над которой я работаю, время, которое потребовалось бы для получения заказа на поставку для Teamcity через уровни управления, вероятно, превысило бы время, необходимое для переноса всего в Hudson.


10
TeamCity professional предоставляется бесплатно.
Павел Шер,

6
@Pavel, у нас более 20 пользователей и намного больше сборок.
Сал

22
@sal меня всегда удивляло, как компании могут быть так обеспокоены тем, что пара тысяч долларов на инструменты их команд разработчиков предпочитает, чтобы они тратили сотни совместных часов, которых у них не было бы с этим инструментом.
Крис Марисич

5
@Chris Что, если они начнут с бесплатного инструмента с открытым исходным кодом, просто чтобы посмотреть, как что-то работает, и через 2 года понять, что он все еще работает без проблем? Вы бы по-прежнему предлагали потратить пару тысяч долларов на обновление до коммерческого инструмента, который, скорее всего, делает то же самое?
stefanB

1
@stefan Если вы использовали инструмент в течение 2 лет, и он соответствует вашим потребностям, если вам не нужна функция X из другого инструмента, зачем вам переключаться на какой-либо другой инструмент, бесплатный или платный?
Крис Марисич

2

Я уже использовал и настраивал TeamCity и Jenkins (также известный как новый Hudson), и хотя я согласен с тем, что TeamCity очень удобен в настройке, он бесплатен только для команд из 10 пользователей или меньше. Обе системы очень просты в настройке и имеют хорошо поддерживаемую систему плагинов. Убийственная функция в TeamCity - это рабочий процесс предварительной проверки, где вы можете протестировать код, прежде чем проверять его в системе контроля версий, а особенность Jenkins заключается в том, что он полностью бесплатен, даже если вы вырастете за пределы 10 пользователей и агентов сборки.


Также мне нравится графическое представление Дженкинса, и это то, чего мне не хватает в Teamcity. Дальше согласен с вашим комментарием!
Дэнни Глодеманс

Если вы согласны с комментарием, проголосуйте за него :)
runxc1 Брет Ферье

1

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

Для hudson есть множество плагинов, плюс сайт hudson дает вам множество советов по написанию собственных ( http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson ).


1

Я рекомендовал клиентам рассмотреть возможность использования Bamboo. Причина в том, что (хорошо, после прочтения спецификаций!) Он имеет очень похожий набор функций на TeamCity. Однако основным преимуществом является очень тесная интеграция с JIRA, которая довольно популярна как система отслеживания функций / ошибок. Полный набор - это JIRA, Greenhopper, Bamboo и Eclipse. У многих клиентов также есть центр качества HP, и есть плагины, которые присоединяют его к JIRA. Мне также нравится то, что JIRA, Bamboo и GreenHopper - все они созданы Atlassian.


После широкого использования TeamCity Дженкинс выглядит очень металлическим. Да, плагины позволяют делать что угодно после их установки. TeamCity обладает продуманным набором функций, который поможет вам выйти из коробки. Тем не менее, на уровне непрерывной доставки оба остаются нереализованным надлежащий промежуточный конвейер. QuickBuild - еще более многофункциональный продукт, заслуживающий внимания, это платное ПО.
bbaassssiiee

Теперь, когда я увидел Bamboo в действии на клиентском сайте, мне он больше не нравится. Есть некоторые области, связанные с написанием сценариев и передачей информации между сборками, которые сложно выполнить. В результате разработчики обычно помещают в область глобальных переменных CI всевозможные вещи, которых там просто не должно быть.
drekka
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.