2009-09-10 39 views
96

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ả hai HudsonTeamcity dường như là miễn phí nhưng Teamcity có vẻ bị chậm chạp và có nhiều hỗ trợ hơn.Hudson hoặc Teamcity để tích hợp liên tục?

Tôi đã tự hỏi tại sao một người vẫn sẽ sử dụng Hudson và nếu có ai có thể đưa ra bất kỳ biện luận nào cho/chống lại một trong hai?

+0

Bạn có thể quan tâm đến câu trả lời tại đây: http://stackoverflow.com/questions/1200721/language-agnostic-automated-build-and-test-server-for-multiple-projects –

+0

Tôi muốn ném CruiseControl vào sự pha trộn - nếu bạn chưa xem nó. Không thể bình luận về một quan điểm java, đã sử dụng phiên bản .NET nhưng tôi thích điều đó. – AdaTheDev

+3

@ire_and_curses không có câu trả lời nào trong bài đăng đưa ra một đối số tốt cho một trong hai công cụ so với các khác – pdeva

Trả lời

58

+1 cho Hudson. Hudson là một dự án rất tích cực, có một cộng đồng rộng người dùng là và danh sách người dùng hoạt động, rất dễ sử dụng, rất dễ sử dụng, đã được sử dụng cho các dự án lớn, rất lớn (JBoss) , JAX-WS, vv) và do đó đã chứng minh hồ sơ thành công, cung cấp các tính năng nâng cao rất tốt đẹp (ví dụ xây dựng ma trận, xây dựng cụm ...), là 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 commercial support from Sun. Nhưng FWIW, tôi không bao giờ phải đối mặt với bất kỳ vấn đề ngăn chặn với Hudson.

Cập nhật: Như bạn đã biết, Kohsuke Kawaguchi (tác giả của Hudson) đã để lại Sun/Oracle và bắt đầu mình own companylấy Hudson đến giai đoạn tiếp theo. Nói cách khác, đây không phải là mối đe dọa cho Hudson. Và nếu bạn đang tìm kiếm sự hỗ trợ, bạn có thể nhận được certified version of Hudson CI Server như là 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 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 kích thước của cơ sở người dùng của mình, đây là một sự so sánh các xu hướng việc làm cho một số công cụ CI trên Indeed (query trực tiếp):

Hudson build engineer, CruiseControl build engineer, Bamboo build engineer, TeamCity build engineer Job Trends

Đây là khóa học không một chỉ báo kỹ thuật.

+88

Có lẽ TeamCity rất dễ sử dụng, vì không yêu cầu bất kỳ ai làm việc cụ thể để cấu hình nó? – Henrik

+3

@Henrik: Giải thích biểu đồ ở trên tùy theo quyết định của bạn. Nhưng có, có lẽ TeamCity là phép thuật. –

+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, bây giờ bạn đã có hai vấn đề: 1) CI của bạn khó làm việc, vì vậy các dev của bạn sẽ đấu tranh với nó và kiến ​​thức sẽ nằm trong đầu của một người này , 2) Bạn đang trả tiền cho ai đó để làm một công việc mà không nên làm! –

110

Đội ngũ Thành phố cách xa và xa máy chủ CI tốt nhất hiện có. Tính năng sát thủ của nó đối với tôi là sự tích hợp chặt chẽ với các IDE (IntelliJ, Eclipse và VisualStudio). Nó có thể hiển thị cho bạn, ví dụ, khi một tập tin bạn đang chỉnh sửa trong IDE trở nên lỗi thời, người đã thay đổi nó và những gì họ đã thay đổi. Bạn có thể cam kết từ IDE tới máy chủ CI, chạy comile và test trên lưới xây dựng, và sau đó máy chủ CI sẽ cam kết nếu việc xây dựng thành công. Bạn có thể nhấp vào xây dựng các 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

Cam kết từ xa/thử nghiệm trước là các 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 các 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 bạn (bao nhiêu bài kiểm tra đã trôi qua, không thành công, ở giai đoạn xây dựng nào và vân vân). 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 một loạt các trình thông báo (email, Jabber, khay cửa sổ). –

+6

@Pavel: Tôi không biết TeamCity cũng như Hudson vì vậy tôi sẽ không thách thức sự khởi đầu của bình luận của bạn. Nhưng, liên quan đến các thông báo, tuyên bố rằng TC tinh vi hơn là FUD tinh khiết theo ý kiến ​​không khiêm tốn của tôi. Tất cả các kênh thông báo được đề cập có sẵn trên Hudson (bạn thậm chí có thể thêm twitter). Trên thực tế, tôi đặt cược rằng Hudson có nhiều plugin hơn TC (kiểm tra http://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 là Hudson. –

+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ý để xây dựng với các thay đổi của mình, bạn có thể chọn được thông báo khi xây dựng bắt đầu thất bại (ví dụ: khi thử nghiệm đầu tiên bắt đầu thất bại). Bạn có thể yêu cầu được thông báo về lần xây dựng đầu tiên không thành công sau chuỗi thành công + 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 đó là trình thông báo IDE: 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 của Hudson đơn giản hơn rất nhiều. –

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ần thiết để có được một đơn đặt hàng cho Teamcity thông qua các lớp quản lý có thể sẽ vượt quá thời gian cần thiết để di chuyển mọi thứ sang Hudson.

+10

TeamCity chuyên nghiệp là miễn phí. –

+6

@Pavel, chúng tôi có hơn 20 người dùng và nhiều công trình khác hơn thế. – sal

+22

@ luôn luôn làm tôi ngạc nhiên khi các công ty có thể quan tâm đến một vài nghìn đô la cho các công cụ của nhóm phát triển của họ và thay vào đó họ sẽ lãng phí 100 giờ kết hợp mà họ không có với công cụ này. –

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à nối vào nó từ IDE của họ. Đó là một đơn độc là 'butt-kickin'. Ngoài ra còn có hỗ trợ cho GIT vv Nghiêm túc hãy xem 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

1

Tôi mới bắt đầu 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 vì vậy không thể bình luận về điều đó nhưng tôi 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 bạn (http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson).

16

Chúng tôi bắt đầu với Hudson cho một vài dự án Flex, sau đó chúng tôi di chuyển sang TeamCity, khi các nhà phát triển .NET tham gia các 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. Lý do chính là: - Cộng đồng Hudson sôi động, tốt hơn hỗ trợ. - Số lượng lớn plugin cho mọi loại tác vụ. - Nguồn mở. - Hudson miễn phí, TeamCity chỉ miễn phí cho 10 dự án.

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

+2

10 hạn chế dự án đã giảm, 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

Ngoài sự tò mò, những tính năng nào có sẵn thông qua các plugin của Jenkins đã bị thiếu trong thế giới TeamCity? – Behrang

13

Đối số 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.

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 hậu. Điều đó có nghĩa rằng bạn cần phải dành rất nhiều thời gian để chẩn đoán các vấn đề và quay trở lại bản phát hành Hudson trước đó. (Đôi khi không thể khôi phục!)

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

Chúng tôi đang tích cực tìm cách di chuyển sang TeamCity hoàn toàn vì chi phí của lỗi của Hudson.

+8

Chỉ vì có bản cập nhật có sẵn 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à sự lựa chọn của tôi khi nâng cấp, và tôi chắc chắn không làm điều đó mỗi tuần. Ngoài ra, các nhà bảo trì rất bảo thủ về khả năng tương thích ngược. Plugins thường không yêu cầu Hudson mới nhất để làm việc. 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 tuổi. Nếu bạn vẫn còn lo lắng, có một plugin rollback tự động trong các tác phẩm ..;) –

+1

Từ kinh nghiệm của tôi, vấn đề là nhiều hơn với các plugin so với Hudson, mặc dù điều này không tạo ra sự khác biệt lớn từ điểm người dùng lượt xem. Tuy nhiên, * không có gì * buộc bạn nâng cấp trừ khi bạn gặp phải một lỗi cụ thể hoặc không thể sống mà không có tính năng mới. Chúng tôi chỉ đơn giản là không làm theo mỗi bản phát hành và không sử dụng phiên bản cuối cùng không phải là một vấn đề ở tất cả cho chúng tôi: * "Nếu nó không bị hỏng, đừng sửa nó" *. –

+2

Khi người gửi thư chính gửi một thông báo nói rằng một lỗ hổng bảo mật chính đã được sửa, đó là lý do để cập nhật. Điểm của tôi vẫn còn đứng: Hudson chỉ là cách quá flakey - ngay cả với NO bổ sung cài đặt. – jdtangney

1

Tôi đã giới thiệu cho khách hàng rằng họ coi Bamboo. Lý do là (ok, từ đọc các tờ spec!) Nó có một tính năng rất tương tự thiết lập để TeamCity. Tuy nhiên, lợi ích chính là tích hợp rất chặt chẽ với JIRA khá phổ biến như một hệ thống theo dõi tính năng/lỗi. 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ũng có các plugin tham gia vào JIRA. Tôi cũng thích thực tế là JIRA, Bamboo và GreenHopper tất cả đều đến từ Atlassian.

+0

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

+0

Bây giờ đã thấy Bamboo hoạt động trên một trang web của khách hàng, tôi không còn quan tâm đến nó nữa. Có một số khu vực xung quanh kịch bản và chuyển giao thông tin giữa các bản dựng mà nó cố gắng thực hiện. Kết quả có xu hướng là các nhà phát triển đưa tất cả các loại công cụ trong khu vực biến toàn cầu của CI mà chỉ đơn giản là không nên ở đó. – drekka

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 và trong khi tôi đồng ý rằng TeamCity có rất nhiều công sức để 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 sát thủ trong TeamCity là luồng công việc kiểm tra trước, nơi bạn có thể kiểm tra mã trước khi kiểm tra nó thành kiểm soát nguồn và tính độc đáo 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 tác nhân.

+0

Ngoài ra tôi thích chế độ xem đồ thị của Jenkins và đó là những gì tôi thiếu trong Teamcity. Tôi đồng ý với bình luận của bạn! – Gynnad

+0

Nếu bạn đồng ý với một bình luận thì hãy bình chọn nó :) –

Các vấn đề liên quan