Sürekli entegrasyon için Hudson veya Teamcity? [kapalı]


100

Kullanmak için bir CI aracı arayan bir Java mağazasıyız. Hem Hudson hem de Teamcity özgür görünüyor ancak Teamcity daha düzgün ve daha fazla destekle görünüyor.

Neden hala Hudson'ı kullanmalı ve herhangi biri lehine / aleyhine herhangi bir argüman sunabilecek mi?


Buradaki cevaplar ilginizi çekebilir: stackoverflow.com/questions/1200721/…
ire_and_curses

CruiseControl'ü karışıma dahil ederdim - eğer daha önce düşünmediyseniz. .NET sürümünü kullandığım için java açısından yorum yapamıyorum ama hoşuma gitti.
AdaTheDev

3
@ire_and_curses Gönderideki yanıtların hiçbiri, her iki araç için de diğerine kıyasla iyi bir argüman
sağlamaz

4
Cruise Control için -1 - "aynen öyle" manuel olarak ayarlanması gereken çok fazla konfigürasyon dosyası.
Bevan

3
Gördüğüm kadarıyla, ücretsiz TeamCity'nin varlığı CruiseControl'ü geçersiz kılıyor. TeamCity yerine CruiseControl kullanmak için herhangi bir sebep göremiyorum. Ve tersi için birçok neden.
Niall Connaughton

Yanıtlar:


113

Team City, açık ara en iyi CI sunucusudur. Benim için katil özelliği IDE'lerle (IntelliJ, Eclipse ve VisualStudio) sıkı entegrasyon. Örneğin, IDE'de düzenlediğiniz bir dosyanın süresi dolduğunda, onu kimin değiştirdiğini ve nelerin değiştiğini size gösterebilir. IDE'den CI sunucusuna teslim edebilir, derlemeyi çalıştırabilir ve yapı ızgarasında testler yapabilirsiniz ve ardından derleme başarılı olursa CI sunucusu yürütür. CI web uygulamasındaki derleme raporlarına tıklayabilirsiniz ve IDE'de uygun dosyaları açacaktır.

Kullanılabilir eklentiler var (bir tane yazdım: http://team-piazza.googlecode.com ), ama çok değil.


9
Uzaktan çalıştırma / Önceden test edilmiş kaydetme, TeamCity'nin çok kullanışlı özellikleridir. Genel olarak, derlemeleriniz hızlı değilse TC daha uygun olabilir, çünkü TeamCity'de yapınızda neler olduğu hakkında sürekli geri bildirim alırsınız (kaç test geçti, başarısız oldu, derleme hangi aşamada vb.). Ayrıca TC bildirimleri daha karmaşıktır. Farklı yapı türleri ve çok çeşitli bildiriciler (e-posta, Jabber, Windows tepsisi) için farklı kurallar yapılandırabilirsiniz.
Pavel Sher

6
@Pavel: Hudson kadar TeamCity'yi de tanımıyorum, bu yüzden yorumunuzun başlangıcına itiraz etmeyeceğim. Ancak bildirimlerle ilgili olarak, TC'nin daha sofistike olduğunu iddia etmek benim o kadar mütevazı olmayan görüşüme göre saf FUD. Bahsedilen tüm bildirim kanalları Hudson'da mevcuttur (twitter bile ekleyebilirsiniz). Aslında, bahse girerim, Hudson'ın TC'den çok daha fazla eklentisi vardır ( wiki.hudson-ci.org/display/HUDSON/Plugins'e bakın ) ve eminim TC'nin Hudson'dan daha fazla sınırlaması vardır.
Pascal Thivent

3
Kanallar konusunda katılıyorum (Hudson'ın birçok eklentisi var), ancak kurallar konusunda aynı fikirde değilim. TeamCity'de değişikliklerinizle yapılara abone olabilirsiniz, yapı başarısız olmaya başladığında (örn. İlk test başarısız olmaya başladığında) bilgilendirilmeyi seçebilirsiniz. Başarı sırasından sonraki ilk başarısız derlemede + başarısızlıklardan sonraki ilk başarıda bilgilendirilmeyi isteyebilirsiniz. Ve bu seçenekler tüm bildirim kanalları için mevcuttur. Bu tür kanallardan biri IDE bildiricisidir: bir şeyler ters gittiğinde doğrudan IDE'nizde bildirim alırsınız. Hudson'ın bildirim kurallarını hatırladığım kadarıyla çok daha basitti.
Pavel Sher

2
Pavel - burada bir slinging maçı istemiyorum, ancak varsayılan olarak Hudson, yalnızca başarısız yapıya katkıda bulunduysanız size e-posta gönderecektir. İsterseniz, başarısız olan her derlemeden haberdar olmak için abone olabilirsiniz. E-posta uzantı eklentisinde de daha fazla seçenek var. Onaylamanıza gerek yok, ama onu yanlış sunmayalım.
Jim T

4
Hızlı bir google, Team City'den nabaztag tavşanlarını ve diğer sevimli cihazları kontrol etmek için eklentiler olduğunu gösterecektir. Veya cevabımda bağlantı verdiğim eklentiyi kullanabilirsiniz . Sıkı IDE entegrasyonunun faydası, üzerinde çalıştığınız kod hakkında çok daha hızlı ve daha odaklı geri bildirimdir. Bir bildirim beklemeniz, tarayıcıya geçmeniz, raporu okumanız, IDE'ye geri dönmeniz ve uygun dosyayı açmanız gerekmez. Düzenleyici bölmesi, diğer ekip üyelerinin kodu nasıl etkilediğini göstermeye çalışırken değişir.
Nat

58

Hudson için +1.

Hudson çok aktif bir proje, geniş bir kullanıcı topluluğuna sahip ve aktif bir kullanıcı posta listesi, başlaması gerçekten kolay, kullanımı kolay, devasa, çok büyük projelerde (JBoss, JAX-WS, vb.) kullanılmış ve bu nedenle kanıtlanmış başarı kayıtlarına sahip, çok güzel gelişmiş özellikler (örn. matris oluşturma, kümeleme oluşturma vb.), açık kaynak kodludur, birçok eklentisi vardır ...

Ve destek gerçekten önemli bir şeyse, Sun'tan ticari destek alabilirsiniz . Ama FWIW, Hudson ile hiçbir zaman engelleme sorunuyla karşılaşmadım.

Güncelleme: Bildiğiniz gibi, Kohsuke Kawaguchi (Hudson'ın yaratıcısı) Sun / Oracle'dan ayrıldı ve Hudson'ı bir sonraki aşamaya taşımak için kendi şirketini kurdu . Başka bir deyişle, bu Hudson için bir tehdit değildir. Destek arıyorsanız, abonelik planının bir parçası olarak Hudson CI Sunucusunun onaylı bir sürümünü edinebilirsiniz (bu sertifikalı sürüm, önceden tanımlanmış bir eklenti seti ve bazı ticari eklentilerle birlikte yüksek kaliteli bir Hudson sürümünü içerir).

Güncelleme: kendi kullanıcı tabanının boyutunu göstermek için, burada birkaç CI araçları için iş eğilimleri bir karşılaştırma bulunmaktadır Nitekim (canlı sorgusu):

Hudson yapı mühendisi, CruiseControl yapı mühendisi, Bamboo yapı mühendisi, TeamCity yapı mühendisi İş Trendleri

Bu elbette teknik bir gösterge değil.


88
Belki de TeamCity'yi yapılandırmak için özel olarak istihdam edilmiş herhangi bir kişiye ihtiyaç duymamak için kullanımı o kadar kolaydır?
Henrik

3
@Henrik: Yukarıdaki grafiğin yorumlanması sizin takdirinize bağlıdır. Ama evet, belki TeamCity sihirdir.
Pascal Thivent

16
Sürekli entegrasyonunuzu yürütmek için tam zamanlı bir yapı mühendisi işe alırsanız, şimdi iki sorununuz var: 1) CI'nızla çalışmak zor, bu nedenle geliştiricileriniz bununla mücadele edecek ve bilgi bu kişinin kafasına oturacak, 2) Yapılması gerekmeyen bir işi yapması için birine para ödüyorsunuz!
Niall Connaughton

15
Bir CI sunucusu seçiyor olsaydım, onu yönetmek için özel bir mühendis için EN AZ iş açılışına sahip olanı seçerdim. Bu bir geliştirici aracıdır ve geliştiricilerin bunu kendilerinin yönetebilmesi gerekir. Yapamazlarsa, ya farklı bir araca ya da farklı geliştiricilere ihtiyacınız vardır.
Nat

İş eğilimleri grafiği hudson için +1 anlamına gelmiyor ...
Sharique Abdullah

17

Hudson ile birkaç Flex projesi için başladık, ardından .NET geliştiricileri CI çabalarımıza katıldığında TeamCity'ye geçtik. Şimdi TeamCity sunucusunu tekrar Hudson'a geri döndürdük. Ana nedenler şunlardır: - Canlı Hudson topluluğu, destekten daha iyidir. - Her tür görev için çok sayıda eklenti. - Açık kaynak. - Hudson ücretsizdir, TeamCity yalnızca 10 proje için ücretsizdir.

edit: TeamCity artık 20 proje için ücretsiz.


2
10 proje kısıtlaması düştü, şu anda tek sınır 20 yapı yapılandırması. Küçük ve orta ölçekli projeler için belki yeterli.
ashwoods

4
Merak ettiğimden, TeamCity dünyasında Jenkins eklentileri aracılığıyla mevcut olan hangi özellikler eksikti?
Behrang Saeedzadeh

14

TeamCity harikadır çünkü her geliştiricinin kendi yapı profiline sahip olmasına ve IDE'lerinden ona bağlanmasına izin verir. Yalnız kalmanın 'popo tekme' olduğunu. GIT vb. İçin de destek var. Ciddiye alın. Profesyonel sürüm ücretsizdir.


5
GIT ayrıca Jenkins / Hudson tarafından da desteklenmektedir
CJBrew

14

Hudson'a karşı en büyük argüman , her sürümün yeni hatalar getirmesidir.

Sürümler çok sıktır, bu nedenle geri kalmamak için sık sık yükseltmeniz gerekir. Bu, sorunları teşhis etmek ve önceki Hudson sürümlerine geri dönmek için çok zaman ayırmanız gerektiği anlamına gelir. (Bazen geri dönüş mümkün bile değildir!)

Mağazamızda Sürekli Dağıtımı tanıtıyoruz (kodu kontrol ettiğinizde, canlı sitede dağıtılır!) Ve Hudson ile güreşmek zorunda kalmak bize çok pahalıya mal oluyor.

TeamCity'ye yalnızca Hudson'ın hatalarının maliyeti nedeniyle aktif olarak geçmeyi düşünüyoruz.


8
Mevcut bir güncelleme olması, yükseltmeniz gerektiği anlamına gelmez. Daha az sıklıkta olmaktansa daha çok serbest bırakılmasını tercih ederim. Ne zaman yükselteceğim benim seçimim ve kesinlikle bunu her hafta yapmıyorum. Ayrıca, bakımcılar geriye dönük uyumluluk konusunda çok muhafazakar. Eklentiler genellikle çalışmak için en son Hudson'ı gerektirmez. Aslında şu anda mevcut olan 130 eklenti, bir yıldan eski Hudson sürümlerine karşı oluşturulmuştur. Hala endişeniz varsa, çalışmalarda otomatik bir geri alma eklentisi var ..;)
Christopher Orr

1
Deneyimlerime göre, problem Hudson'ın kendisinden çok eklentilerle ilgili, ancak bu kullanıcı açısından çok büyük bir fark yaratmıyor. Ancak, belirli bir hatayla karşılaşmadığınız veya yeni bir özellik olmadan yaşayamadığınız sürece hiçbir şey sizi yükseltmeye zorlamaz. Sadece her sürümü takip etmiyoruz ve son sürümü kullanmamak bizim için hiç sorun değil: "Eğer kırılmadıysa, düzeltmeyin" .
Pascal Thivent

2
Baş sorumlu, büyük bir güvenlik açığının giderildiğini söyleyen bir mesaj gönderdiğinde, bu güncelleme nedenidir. Demek istediğim hala geçerli: Hudson, HİÇBİR ilave eklenti kurulu olmasa bile çok fazla titrek.
jdtangney

1
Hudson / Jenkins'i bir projede bir buçuk yıl kullandıktan sonra, harika bir araç olmasına rağmen - sürümler arasında tutarsız bir kalite deneyimi yaşadık - ve sadece kesinlikle ihtiyacımız olduğunda yükseltme yaptık diyebilirim. Yapılandırmanın sık sık yedeklenmesi de dahil olmak üzere geçici çözümler bulduk. TeamCity'yi son projemde denemeyi dört gözle bekliyorum.
JaysonRaymond

4
Güncellemeler ve istikrar neden karşıt faktörler olmalıdır? Bu sadece kalite eksikliğine işaret etmiyor mu?
Niall Connaughton

6

Teamcity'yi gerçekten beğendim ama üzerinde çalıştığım ortamda, yönetim katmanları aracılığıyla Teamcity için Satın Alma Siparişi almak için gereken süre, muhtemelen her şeyi Hudson'a taşımak için geçen süreyi aşacaktı.


10
TeamCity uzmanı ücretsizdir.
Pavel Sher

6
@Pavel, 20'den fazla kullanıcımız ve bundan çok daha fazla yapımız var.
sal

22
@sal şirketlerin, geliştirme ekiplerinin araçları için birkaç bin dolardan bu kadar endişelenmeleri ve bu araçla elde edemeyecekleri 100 saat birleşik saatlerini boşa harcamayı tercih etmeleri beni her zaman şaşırtıyor.
Chris Marisic

5
@Chris Ya bir şeyin nasıl çalıştığını görmek için açık kaynak kodlu ücretsiz araçla başlarlarsa ve 2 yıl sonra hala sorunsuz çalıştığını anlarlarsa? Yine de, büyük olasılıkla aynı şeyi yapan ticari araca yükseltmek için birkaç bin dolar harcamayı önerir misiniz?
stefanB

1
@stefan Bir aracı 2 yıl kullandıysanız ve ihtiyaçlarınızı karşılıyorsa, başka bir araçtan ihtiyacınız olan featureX yoksa neden ücretsiz veya ücretli başka bir araca geçesiniz?
Chris Marisic

2

TeamCity ve Jenkins'i (yeni Hudson olarak da bilinir) daha önce kullandım ve kurdum ve TeamCity'nin kurulumunun çok daha akıllıca olduğunu kabul etsem de sadece 10 veya daha az kullanıcılı ekipler için ücretsiz. Her iki sistemin de kurulumu çok kolaydır ve iyi desteklenen bir eklenti sistemine sahiptir. TeamCity'deki öldürücü özellik, kodu kaynak kontrolünde kontrol etmeden önce test edebileceğiniz ön kontrol iş akışıdır ve Jenkins'in güzelliği, 10 kullanıcının ötesine geçseniz ve aracılar oluştursanız bile tamamen ücretsiz olmasıdır.


Ayrıca Jenkins'in grafik görünümünü de seviyorum ve Teamcity'de eksik olan şey bu. Ayrıca yorumunuza katılıyorum!
Danny Gloudemans

Bir yorumu kabul ediyorsanız oy verin :)
runxc1 Bret Ferrier

1

Hudson'ı denemeye ve mevcut çevremize nasıl uyacağını görmeye alışmaya yeni başlıyorum. Teamcity ile kesinlikle sıfır deneyimim var, bu yüzden bu konuda yorum yapamam ama şu ana kadar Hudson ile çalışmaktan zevk alıyorum.

Hudson için pek çok eklenti var, artı hudson sitesi kendi yazınızı yazmanız için size bol miktarda tavsiye veriyor ( http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson ).


1

Müşterilere Bamboo'ı düşünmelerini tavsiye ediyorum. Bunun nedeni (tamam, teknik özellik sayfalarını okumaktan!) TeamCity'ye çok benzer bir özelliğe sahip olmasıdır. Ancak asıl fayda, bir özellik / hata izleme sistemi olarak oldukça popüler olan JIRA ile çok sıkı entegrasyondur. Tam süit JIRA, Greenhopper, Bamboo ve Eclipse'dir. Oldukça az sayıda müşterinin HP Kalite merkezi de var ve bunu JIRA'ya da katan eklentiler var. Ayrıca JIRA, Bamboo ve GreenHopper'ın Atlassian'dan geldiği gerçeğini de seviyorum.


TeamCity'nin yoğun kullanımından sonra, Jenkins çok çıplak görünüyor. Evet eklentileri, yükledikten sonra her şeyi yapmanıza izin verir. TeamCity, sizi kutudan çıkaran olgun bir özellik setine sahiptir. Yine de sürekli teslimat seviyesinde, her ikisi de uygulanmamış uygun bir aşamalandırma hattı bırakır. QuickBuild, ilgiyi hak eden daha da zengin özelliklere sahip bir üründür, paralı yazılımdır.
bbaassssiiee

Bamboo'ı bir müşteri sitesinde çalışırken gördükten sonra, artık buna pek meraklı değilim. Yapmaya çalıştığı yapılar arasında komut dosyası yazmanın ve bilgi aktarmanın etrafında bazı alanlar vardır. Sonuçlar, geliştiricilerin CI'ın küresel değişken alanına, orada olmaması gereken her türlü şeyi koyma eğilimindedir.
drekka
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.