Hudson hay Teamcity để tích hợp liên tục? [đóng cửa]


100

Chúng tôi là một cửa hàng Java đang tìm kiếm một công cụ CI để sử dụng. Cả HudsonTeamcity đều có vẻ miễn phí nhưng Teamcity có vẻ mượt mà và được hỗ trợ nhiều hơn.

Tôi đã tự hỏi tại sao người ta vẫn sử dụng Hudson và liệu có ai có thể cung cấp bất kỳ lý lẽ nào cho / chống lại một trong hai không?


Bạn có thể quan tâm đến các câu trả lời ở đây: stackoverflow.com/questions/1200721/...
ire_and_curses

Tôi sẽ ném CruiseControl vào hỗn hợp - nếu bạn chưa xem xét nó. Không thể bình luận về quan điểm java, đã sử dụng phiên bản .NET nhưng tôi thích điều đó.
AdaTheDev 10/09/09

3
@ire_and_curses không ai trong số các câu trả lời trong bài viết đưa ra một lý lẽ tốt cho cả hai công cụ so với người kia
pdeva

4
-1 cho Cruise Control - CÓ quá nhiều tệp cấu hình cần được thiết lập thủ công "chỉ như vậy".
Bevan

3
Theo như tôi thấy, sự tồn tại của TeamCity miễn phí khiến CruiseControl không còn tồn tại. Tôi không thấy lý do gì để sử dụng CruiseControl qua TeamCity. Và nhiều lý do ngược lại.
Niall Connaughton

Câu trả lời:


113

Team City cho đến nay vẫn là máy chủ CI tốt nhất hiện có. Tính năng giết người của nó đối với tôi là tích hợp chặt chẽ với IDE (IntelliJ, Eclipse và VisualStudio). Ví dụ, nó có thể cho bạn biết khi một tệp bạn đang chỉnh sửa trong IDE bị lỗi thời, ai đã thay đổi nó và những gì họ đã thay đổi. Bạn có thể cam kết từ IDE đến máy chủ CI, chạy comile và kiểm tra trên lưới xây dựng, sau đó máy chủ CI sẽ cam kết nếu quá trình xây dựng thành công. Bạn có thể nhấp vào xây dựng báo cáo trong ứng dụng web CI và nó sẽ mở các tệp thích hợp trong IDE.

Có sẵn các plugin (tôi đã viết một: http://team-piazza.googlecode.com ), nhưng không nhiều.


9
Chạy từ xa / Cam kết thử nghiệm trước là những tính năng rất hữu ích của TeamCity. Nói chung, TC có thể thuận tiện hơn nếu bản dựng của bạn không nhanh, vì trong TeamCity bạn nhận được phản hồi liên tục về những gì xảy ra trong bản dựng của mình (bao nhiêu bài kiểm tra đã vượt qua, không thành công, bản dựng đang ở giai đoạn nào, v.v.). Ngoài ra, thông báo của TC cũng phức tạp hơn. Bạn có thể định cấu hình các quy tắc khác nhau cho các loại bản dựng khác nhau và cho nhiều loại trình thông báo (email, Jabber, khay cửa sổ).
Pavel Sher 10/09/09

6
@Pavel: Tôi không biết TeamCity cũng như Hudson nên tôi sẽ không thách thức phần đầu bình luận của bạn. Tuy nhiên, liên quan đến các thông báo, tuyên bố rằng TC tinh vi hơn là FUD thuần túy theo quan điểm không quá khiêm tốn của tôi. Tất cả các kênh thông báo đã đề cập đều có sẵn trên Hudson (bạn thậm chí có thể thêm twitter). Trên thực tế, tôi cá rằng Hudson có nhiều plugin hơn TC (xem wiki.hudson-ci.org/display/HUDSON/Plugins ) và tôi chắc chắn rằng TC có nhiều hạn chế hơn Hudson.
Pascal Thivent, 10/09/09

3
Tôi đồng ý về các kênh (Hudson có rất nhiều plugin), nhưng không đồng ý về các quy tắc. Trong TeamCity, bạn có thể đăng ký các bản dựng với các thay đổi của mình, bạn có thể chọn nhận thông báo khi bản dựng bắt đầu không thành công (ví dụ: khi thử nghiệm đầu tiên bắt đầu không thành công). Bạn có thể yêu cầu được thông báo về lần xây dựng thất bại đầu tiên sau chuỗi thành công + về thành công đầu tiên sau khi thất bại. Và các tùy chọn này có sẵn cho tất cả các kênh thông báo. Một trong những kênh như vậy là IDE thông báo: khi có sự cố, bạn sẽ nhận được thông báo ngay trong IDE của mình. Như tôi nhớ các quy tắc thông báo Hudson đơn giản hơn nhiều.
Pavel Sher

2
Pavel - không muốn có một trận đấu slinging ở đây, nhưng theo mặc định, Hudson sẽ chỉ gửi email cho bạn nếu bạn đã đóng góp vào việc xây dựng thất bại. Bạn cũng có thể đăng ký để được thông báo về mọi lần xây dựng thất bại nếu bạn muốn. Ngoài ra còn có nhiều tùy chọn hơn trong trình cắm thêm email. Bạn không cần phải phê duyệt nó, nhưng không được xuyên tạc nó.
Jim T

4
Một google nhanh chóng sẽ cho bạn thấy rằng có các plug-in để điều khiển thỏ nabaztag và các thiết bị dễ thương khác từ Team City. Hoặc bạn có thể sử dụng trình cắm mà tôi đã liên kết trong câu trả lời của mình . Lợi ích của tích hợp IDE chặt chẽ là phản hồi nhanh hơn và tập trung hơn nhiều về mã bạn đang làm việc khi bạn làm việc với nó. Bạn không phải đợi thông báo, chuyển sang trình duyệt tge, đọc báo cáo, chuyển về IDE và mở tệp thích hợp. Ngăn trình chỉnh sửa thay đổi khi bạn làm việc để hiển thị cách các thành viên khác trong nhóm đã ảnh hưởng đến mã.
Nat

58

+1 cho Hudson.

Hudson là một dự án rất tích cực, có một cộng đồng người dùng rộng rãi và danh sách gửi thư người dùng đang hoạt động, thực sự dễ bắt đầu, dễ sử dụng, đã được sử dụng trên các dự án lớn, rất lớn, (JBoss, JAX-WS, v.v.) và do đó đã chứng minh được thành công, cung cấp tính năng nâng cao rất tốt các tính năng (ví dụ: xây dựng ma trận, phân cụm xây dựng, v.v.), là mã nguồn mở, có rất nhiều plugin ...

Và nếu hỗ trợ thực sự là một điều quan trọng, bạn có thể nhận được hỗ trợ thương mại của Sun . Nhưng FWIW, tôi chưa bao giờ đối mặt với bất kỳ vấn đề chặn nào với Hudson.

Cập nhật: Như bạn có thể biết, Kohsuke Kawaguchi (người tạo ra Hudson) đã rời Sun / Oracle và thành lập công ty riêng của mình để đưa Hudson lên giai đoạn tiếp theo . Nói cách khác, đây không phải là một mối đe dọa đối với Hudson. Và nếu bạn đang tìm kiếm hỗ trợ, bạn có thể nhận được phiên bản được chứng nhận của Hudson CI Server như một phần của gói đăng ký (phiên bản được chứng nhận này bao gồm bản phát hành chất lượng cao của Hudson với một bộ plugin được xác định trước cộng với một số plugin thương mại).

Cập nhật: Để minh họa quy mô cơ sở người dùng tương ứng của họ, đây là so sánh xu hướng công việc cho một số công cụ CI trên Indeed (truy vấn trực tiếp):

Kỹ sư xây dựng Hudson, Kỹ sư xây dựng CruiseControl, Kỹ sư xây dựng Bamboo, Kỹ sư xây dựng TeamCity Xu hướng việc làm

Tất nhiên đây không phải là một chỉ báo kỹ thuật.


88
Có lẽ TeamCity quá dễ sử dụng, không yêu cầu bất kỳ ai được tuyển dụng đặc biệt phải cấu hình nó?
Henrik

3
@Henrik: Việc diễn giải biểu đồ trên là do bạn quyết định. Nhưng có, có lẽ TeamCity là ma thuật.
Pascal Thivent,

16
Nếu bạn thuê một kỹ sư xây dựng toàn thời gian để chạy tích hợp liên tục của mình, bây giờ bạn gặp phải hai vấn đề: 1) CI của bạn khó làm việc, vì vậy các nhà phát triển của bạn sẽ phải vật lộn với nó và kiến ​​thức sẽ nằm trong đầu của người này, 2) Bạn đang trả tiền cho ai đó để làm một công việc mà không cần phải làm!
Niall Connaughton

15
Nếu tôi đang chọn một máy chủ CI, tôi sẽ chọn một máy chủ có công việc ÍT NHẤT để một kỹ sư chuyên dụng quản lý nó. Đó là một công cụ dành cho nhà phát triển và các nhà phát triển sẽ có thể tự quản lý nó. Nếu họ không thể, bạn cần một công cụ khác hoặc các nhà phát triển khác.
Nat

Biểu đồ xu hướng công việc hoàn toàn không ngụ ý +1 cho hudson ...
Sharique Abdullah

17

Chúng tôi bắt đầu với Hudson cho một vài dự án Flex, sau đó chúng tôi chuyển sang TeamCity, khi các nhà phát triển .NET tham gia nỗ lực CI của chúng tôi. Bây giờ chúng tôi đã thay thế máy chủ TeamCity một lần nữa, trở lại Hudson. Những lý do chính là: - Cộng đồng Hudson sôi động, tốt hơn là hỗ trợ. - Số lượng lớn các plugin cho mọi loại nhiệm vụ. - Nguồn mở. - Hudson miễn phí, TeamCity chỉ miễn phí cho 10 dự án.

chỉnh sửa: TeamCity hiện đang miễn phí cho 20 dự án.


2
10 giới hạn dự án đã giảm xuống, giới hạn duy nhất hiện nay là 20 cấu hình xây dựng. Đối với các dự án quy mô vừa và nhỏ có thể đủ.
ashwoods

4
Vì tò mò, những tính năng nào có sẵn thông qua các plugin Jenkins bị thiếu trong thế giới TeamCity?
Behrang Saeedzadeh

14

TeamCity thật tuyệt vời vì nó cho phép mỗi nhà phát triển có hồ sơ xây dựng của riêng họ và kết nối với nó từ IDE của họ. Một người đơn độc là 'đá mông'. Ngoài ra còn có hỗ trợ cho GIT, v.v. Hãy nghiêm túc xem xét nó. Phiên bản chuyên nghiệp là miễn phí.


5
GIT cũng được hỗ trợ bởi Jenkins / Hudson
CJBrew

14

Lập luận lớn nhất chống lại Hudson là mỗi bản phát hành đều giới thiệu các lỗi mới.

Việc phát hành rất thường xuyên, vì vậy bạn phải nâng cấp thường xuyên để không bị tụt lại phía sau. Điều đó có nghĩa là bạn cần dành nhiều thời gian để chẩn đoán các vấn đề và quay trở lại các bản phát hành Hudson trước đó. (Đôi khi việc khôi phục thậm chí không thể thực hiện được!)

Chúng tôi đang giới thiệu Triển khai liên tục trong cửa hàng của mình (khi bạn kiểm tra mã, mã sẽ được triển khai trên trang trực tiếp!) Và việc phải vật lộn với Hudson đang khiến chúng tôi phải trả giá quá đắt.

Chúng tôi đang tích cực xem xét việc di chuyển sang TeamCity hoàn toàn vì chi phí cho lỗi của Hudson.


8
Chỉ vì có bản cập nhật không có nghĩa là bạn phải nâng cấp. Tôi muốn họ phát hành nhiều hơn - ít thường xuyên hơn. Đó là lựa chọn của tôi khi nâng cấp và chắc chắn tôi không làm điều đó hàng tuần. Ngoài ra, các nhà bảo trì rất thận trọng về khả năng tương thích ngược. Các plugin thường không yêu cầu Hudson mới nhất để hoạt động. Trên thực tế, 130 plugin hiện có được xây dựng dựa trên các phiên bản Hudson đã hơn một năm tuổi. Nếu bạn vẫn lo lắng, có một plugin khôi phục tự động đang hoạt động ..;)
Christopher Orr

1
Theo kinh nghiệm của tôi, vấn đề xảy ra với các plugin hơn là bản thân Hudson, mặc dù điều này không tạo ra sự khác biệt lớn từ quan điểm của người dùng. Nhưng, không có gì buộc bạn phải nâng cấp trừ khi bạn đang gặp phải một lỗi cụ thể hoặc không thể sống thiếu một tính năng mới. Chúng tôi chỉ đơn giản là không theo dõi từng bản phát hành và việc không sử dụng phiên bản cuối cùng hoàn toàn không phải là vấn đề đối với chúng tôi: "Nếu nó không bị hỏng, đừng sửa nó" .
Pascal Thivent

2
Khi người cam kết chính gửi một thông báo nói rằng một lỗ hổng bảo mật lớn đã được sửa, đó là lý do để cập nhật. Ý kiến ​​của tôi vẫn là: Hudson quá mỏng manh - ngay cả khi KHÔNG cài đặt thêm plugin.
jdtangney

1
Tôi có thể nói rằng sau một năm rưỡi sử dụng Hudson / Jenkins cho một dự án, mặc dù nó là một công cụ tuyệt vời - chúng tôi cũng đã trải qua chất lượng không nhất quán giữa các bản phát hành - và chúng tôi chỉ nâng cấp khi thực sự cần thiết. Chúng tôi đã tìm thấy các giải pháp thay thế, bao gồm việc thường xuyên sao lưu cấu hình. Tôi rất mong được thử TeamCity trong dự án mới nhất của mình.
JaysonRaymond

4
Tại sao cập nhật và ổn định lại là yếu tố đối lập? Điều đó không chỉ cho thấy sự thiếu chất lượng sao?
Niall Connaughton

6

Tôi thực sự thích Teamcity nhưng trong môi trường tôi đang làm việc, thời gian để có được Đơn đặt hàng cho Teamcity thông qua các tầng quản lý có thể đã vượt quá thời gian để chuyển mọi thứ sang Hudson.


10
TeamCity chuyên nghiệp là miễn phí.
Pavel Sher 10/09/09

6
@Pavel, chúng tôi có hơn 20 người dùng và nhiều bản dựng hơn thế nữa.
10/09/09

22
@sal nó luôn làm tôi ngạc nhiên vì sao các công ty có thể quan tâm đến vài nghìn đô la cho các công cụ của nhóm phát triển của họ và thà để họ lãng phí 100 giờ tổng hợp mà họ không có với công cụ.
Chris Marisic

5
@Chris Điều gì sẽ xảy ra nếu họ bắt đầu với công cụ miễn phí mã nguồn mở vì chỉ để xem một thứ hoạt động như thế nào và 2 năm sau nhận ra nó vẫn hoạt động mà không gặp bất kỳ vấn đề gì? Bạn vẫn đề xuất chi vài nghìn đô la để nâng cấp lên công cụ thương mại mà hầu hết có thể làm được điều tương tự?
stefanB

1
@stefan Nếu bạn đã sử dụng một công cụ được 2 năm và nó đáp ứng được nhu cầu của bạn trừ khi có featureX mà bạn cần từ một công cụ khác, tại sao bạn lại chuyển sang bất kỳ công cụ nào khác miễn phí hoặc trả phí?
Chris Marisic

2

Tôi đã sử dụng và thiết lập TeamCity và Jenkins (hay còn gọi là Hudson mới) trước đây và mặc dù tôi đồng ý rằng TeamCity rất khó để thiết lập, nó chỉ miễn phí cho các nhóm từ 10 người dùng trở xuống. Cả hai hệ thống đều rất dễ cài đặt và có hệ thống plugin được hỗ trợ tốt. Tính năng tuyệt vời trong TeamCity là quy trình làm việc trước khi đăng ký, nơi bạn có thể kiểm tra mã trước khi kiểm tra mã nguồn và điều hay ho của Jenkins là nó hoàn toàn miễn phí ngay cả khi bạn phát triển vượt quá 10 người dùng và xây dựng đại lý.


Ngoài ra, tôi thích chế độ xem đồ thị của Jenkins, và đó là điều tôi còn thiếu trong Teamcity. Futher Tôi đồng ý với nhận xét của bạn!
Danny Gloudemans

Nếu bạn đồng ý với một nhận xét thì hãy bỏ phiếu cho nó :)
runxc1 Bret Ferrier

1

Tôi chỉ mới bắt đầu làm quen với việc hudson sẵn sàng thử nghiệm và xem nó sẽ phù hợp với môi trường hiện tại của chúng ta như thế nào. Tôi hoàn toàn không có kinh nghiệm với Teamcity nên không thể bình luận về điều đó nhưng tôi rất thích làm việc với hudson cho đến nay.

Có rất nhiều plugin cho hudson cộng với trang web hudson cung cấp cho bạn nhiều lời khuyên để viết cho riêng mình ( http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson ).


1

Tôi đã giới thiệu với khách hàng rằng họ nên xem xét Bamboo. Lý do là (ok, từ việc đọc các tờ thông số kỹ thuật!) Nó có một tính năng rất giống với TeamCity. Tuy nhiên, lợi ích chính là tích hợp rất chặt chẽ với JIRA, vốn khá phổ biến như một hệ thống theo dõi lỗi / tính năng. Bộ hoàn chỉnh là JIRA, Greenhopper, Bamboo và Eclipse. Khá nhiều khách hàng cũng có trung tâm Chất lượng HP và có các plugin cũng tham gia vào JIRA. Tôi cũng thích thực tế là JIRA, Bamboo và GreenHopper đều đến từ Atlassian.


Sau khi sử dụng rộng rãi TeamCity, Jenkins trông rất mộc mạc. Có các plugin cho phép bạn làm bất cứ điều gì, sau khi bạn cài đặt chúng. TeamCity có một bộ tính năng dành cho người lớn giúp bạn trở nên độc đáo. Tuy nhiên, ở cấp độ phân phối liên tục, cả hai đều để lại một đường dẫn phân đoạn thích hợp chưa được thực hiện. QuickBuild là một sản phẩm thậm chí còn nhiều tính năng hơn đáng được quan tâm, đó là phần mềm trả tiền.
bbaassssiiee

Giờ đã thấy Bamboo hoạt động trên một trang web khách hàng, tôi không còn hứng thú với nó nữa. Có một số lĩnh vực xung quanh việc viết kịch bản và chuyển thông tin giữa các bản dựng mà nó khó thực hiện. Kết quả có xu hướng là các nhà phát triển đặt tất cả các loại nội dung vào vùng biến toàn cầu của CI mà đơn giản là không nên ở đó.
drekka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.