Làm thế nào để lựa chọn giữa Hudson và Jenkins? [đóng cửa]


451

Tôi đã mất khoảng một giờ để tìm ra Hudson mới chỉ phân nhánh gần đây (tháng 1 năm 2011)
Tôi không biết sự thay đổi của mỗi chi nhánh hiện nay nhanh như thế nào, nhưng quan trọng hơn, hướng đi của mỗi chi nhánh là gì và chìa khóa là gì điểm nào để người ta có thể đưa ra lựa chọn giữa cái nào để đi với?

Bất cứ ai cũng có liên kết đến lộ trình sản phẩm và tính năng khác biệt?


4
Rốt cuộc bạn đã chọn gì giữa Jenkins vs Hudson?
chmullig

109
@Kev: Tôi không đồng ý, rằng câu hỏi này không mang tính xây dựng. Nó không phải là một cuộc tranh luận như "x so với y, cái nào thích", mà là về một nhánh của Hudson, đây là một thông tin rất hữu ích.
tanascius

9
Vâng, chủ đề này cần phải được mở lại để có câu trả lời cập nhật hơn.
djangofan

2
@djangofan Đã có một câu hỏi tiếp theo một năm về: stackoverflow.com/q/11433083/234938 - và bây giờ, một năm sau, tình hình vẫn như vậy.
Christopher Orr

5
Tôi hiểu bản chất nguy hiểm của loại câu hỏi đó, nhưng dường như (i) nó đã đưa ra một số thông tin rất thú vị, (ii) đã không bắt đầu bất kỳ loại tranh chấp nào và (iii) là hợp pháp vì nó không dễ dàng để chọn mà không có loại thông tin này
lab419

Câu trả lời:


503

Sử dụng Jenkins .

Jenkins là ngã ba gần đây của các nhà phát triển cốt lõi của Hudson. Để hiểu tại sao, bạn cần biết lịch sử của dự án. Nó ban đầu là nguồn mở và được hỗ trợ bởi Sun. Giống như hầu hết những gì Sun đã làm, nó khá cởi mở, nhưng có một chút lơ là lành tính. Nguồn, trình theo dõi, trang web, v.v. được Sun lưu trữ trên nền tảng java.net tương đối kín của họ.

Sau đó, Oracle đã mua Sun. Vì nhiều lý do, Oracle đã không ngại sử dụng những gì họ coi là tài sản của mình. Chúng bao gồm một số kiểm soát đối với nền tảng logistic của Hudson và đặc biệt là kiểm soát tên Hudson. Nhiều người dùng và cộng tác viên không thoải mái với điều đó và quyết định rời đi.

Vì vậy, nó đi xuống với những gì Hudson vs Jenkins cung cấp. Cả Hudson và Jenkins của Oracle đều có mã. Hudson có sự hỗ trợ của Oracle và Sonatype và thương hiệu. Jenkins có hầu hết các nhà phát triển cốt lõi, cộng đồng và (cho đến nay) công việc thực tế hơn nhiều.

Đọc mà gửi tôi liên kết lên hàng đầu, sau đó đọc phần còn lại của những trong thời gian theo thứ tự . Để cân bằng, bạn có thể đọc Hudson / Oracle đảm nhận . Nó khá rõ ràng đối với tôi, người đang chơi phòng thủ và người có ý định thực sự cho dự án.


10
"Hầu hết những người đứng đằng sau nó" - điều này có vẻ đúng với những người sáng lập dự án, nhưng cần lưu ý rằng Sonotype (Maven inc) đã cam kết với phía Hudson của sự phân chia, với một loạt các thay đổi kiến ​​trúc trong đường ống . Sẽ rất thú vị để xem liệu nhóm Jenkins có còn đủ khả năng nâng cao tay áo của họ để giữ lại tư duy của nhà phát triển / người dùng hay không
Magicduncan

5
@magic: Ít nhất là dựa trên so sánh ngắn gọn này , một hai tuần sau khi chia tay, Jenkins hoạt động mạnh mẽ hơn nhiều. Trong mọi trường hợp, trong khi tôi với Jenkins , thật thú vị khi xem những người Sonatype định làm gì.
Jonik

14
Đây là một cập nhật khác của người đã viết so sánh ngắn gọn của @ Jonik. Cái này là ~ 2 tháng sau.
chmullig

14
Và bây giờ năm năm sau, Jenkins đang phát triển mạnh, và Oracle đã đổ Hudson vào nghĩa địa voi ở nơi mà nó bị bỏ rơi.
Thorbjørn Ravn Andersen

115

Như chmullig đã viết , sử dụng Jenkins . Một số điểm bổ sung:

... và một ít thông tin cơ bản:

Người tạo ra Hudson, Kohsuke Kawaguchi , bắt đầu dự án vào thời gian rảnh, ngay cả khi anh ta làm việc cho Sun microsystems và sau đó được họ trả tiền để phát triển nó hơn nữa. Như @erickson đã lưu ý ở một câu hỏi SO khác ,

[Hudson / Jenkins] là sản phẩm của một trí tuệ thiên tài duy nhất, Koh Kohke Kawaguchi. Do đó, nó phù hợp, mạch lạc và đá rắn.

Sau khi được Oracle mua lại, Kohsuke đã không đi chơi lâu ( do thiếu màn hình ...?; -] ) và đi làm cho CloudBees . Những gì bắt đầu vào cuối năm 2010 khi xung đột về các công cụ giữa cộng đồng dev và Oracle và kết thúc bằng việc đổi tên / fork / split cũng được ghi lại trong các liên kết mà chmullig cung cấp. Đối với tôi, toàn bộ câu hỏi hóc búa đó, có lẽ hơn bất cứ điều gì khác, về việc Oracle hoàn toàn không có khả năng hoặc không sẵn lòng tài trợ cho một dự án nguồn mở theo cách giữ cho tất cả các bên (Oracle, nhà phát triển, người dùng) hài lòng. Nó không có trong DNA của họ hoặc một cái gì đó, như chúng ta đã thấy trong các trường hợp khác .

Với tất cả những điều trên, cá nhân tôi sẽ theo dõi Kohsuke và các nhà phát triển cốt lõi khác trong vấn đề này, và đi cùng với Jenkins.


90

Chỉ cần tôi đưa ra vấn đề, ba tháng sau:

Jenkins đã tiếp tục con đường được trau chuốt bởi Hudson ban đầu với các bản phát hành thường xuyên bao gồm nhiều bản cập nhật nhỏ.

Oracle dường như đã ủy thác phần lớn công việc trên con đường tương lai cho Hudson cho nhóm Sonatype, người đã thực hiện một số thay đổi quan trọng, đặc biệt là đối với Maven. Họ đã cùng nhau chuyển nó sang nền tảng Eclipse.

Tôi sẽ đề nghị rằng nếu bạn thích âm thanh của:

  • bản phát hành ít thường xuyên hơn nhưng bản phát hành được kiểm tra nhiều hơn về khả năng tương thích ngược (nhiều hơn về chu kỳ phát hành "kiểu doanh nghiệp")
  • một sản phẩm tập trung chủ yếu vào tích hợp Maven và / hoặc Nexus mạnh (nghĩa là bạn không có hứng thú với Gradle và Artifactory, v.v.)
  • dịch vụ hỗ trợ chuyên nghiệp từ Sonatype hoặc có thể là Oracle ưu tiên cho Cloudbees, v.v.
  • bạn không phiền khi có một cộng đồng nhỏ hơn các nhà phát triển plugin, v.v.

, sau đó tôi sẽ đề nghị Hudson.

Ngược lại, nếu bạn thích:

  • cập nhật thường xuyên hơn, ngay cả khi chúng yêu cầu tinh chỉnh thường xuyên hơn một chút và có lẽ hơi rủi ro hơn về khả năng tương thích (nhiều hơn một chu kỳ phát hành "mới nhất và lớn nhất")
  • một hệ thống với sự hỗ trợ cộng đồng tích cực hơn, ví dụ, các kho lưu trữ hệ thống / tạo tác khác
  • hỗ trợ dịch vụ từ người sáng tạo ban đầu et al. và / hoặc bạn không có hứng thú với hỗ trợ chuyên nghiệp (ví dụ: bạn rất vui miễn là bạn có thể sửa lỗi trong "mới nhất và lớn nhất" vào tuần tới)
  • một phù thủy theo phong cách OSS cổ điển của một hệ sinh thái phát triển

sau đó tôi sẽ đề nghị Jenkins. (và như một nhà bình luận lưu ý, Jenkins hiện cũng có các bản phát hành "LTS" được duy trì trên một nhánh "ổn định" hơn)


Khóa học bảo thủ sẽ là chọn Hudson ngay bây giờ và chuyển sang Jenkins nếu các tính năng bắt buộc không có sẵn. Khóa học năng động sẽ là chọn Jenkins ngay bây giờ và di chuyển đến Hudson nếu việc theo đuổi các bản cập nhật trở nên quá tốn thời gian để biện minh.


22
Hoặc tận dụng tốt nhất cả hai thế giới và sử dụng các bản phát hành Hỗ trợ dài hạn (LTS) mới của Jenkins!
Christopher Orr

48

Trước mắt .. Tôi là một người đi làm Hudson và là tác giả của cuốn sách Hudson, nhưng tôi không tham gia vào toàn bộ các dự án.

Trong mọi trường hợp đây là lời khuyên của tôi:

Kiểm tra cả hai và xem những gì phù hợp với nhu cầu của bạn tốt hơn.

Hudson sẽ hoàn thành việc di chuyển để trở thành một dự án Eclipse cấp cao nhất vào cuối năm nay và đã nhận được một loạt các nhà phát triển toàn thời gian, QA và những người khác làm việc trong dự án. Nó vẫn đang phát triển mạnh mẽ và có rất nhiều người dùng và với việc là máy chủ CI mặc định tại Eclipse, nó sẽ tiếp tục phục vụ nhu cầu của nhiều nhà phát triển Java. Nhìn vào lộ trình và kế hoạch cho tương lai, bạn có thể thấy rằng sau khi tích hợp Maven 3 hoàn thành với phiên bản 2.1.0, một loạt các tính năng thú vị khác đang ở phía trước.

http://www.eclipse.org/hudson

Jenkins ở phía bên kia đã chiến thắng nhiều người dùng Hudson gốc và có một cộng đồng người dùng lớn trên nhiều công nghệ và cũng có một loạt các nhà phát triển làm việc trên nó.

Ở giai đoạn này, cả hai máy chủ CI đều là những công cụ tuyệt vời để sử dụng và tùy thuộc vào nhu cầu của bạn về mặt công nghệ để tích hợp với cái này hay cái kia có thể tốt hơn. Cả hai sản phẩm đều có sẵn dưới dạng nguồn mở và bạn có thể nhận được hỗ trợ thương mại từ các công ty khác nhau cho cả hai.

Trong mọi trường hợp .. nếu bạn chưa sử dụng máy chủ CI .. hãy bắt đầu ngay bây giờ với một trong số họ và bạn sẽ thấy lợi ích rất lớn.

Cập nhật tháng 1 năm 2013: Sau một quá trình dài dọn dẹp IP và cải tiến hơn nữa Hudson 3.0 khi bản phát hành được phê duyệt nền tảng Eclipse đầu tiên hiện đã có sẵn.


38

Jenkins là Hudson mới. Nó thực sự giống như một sự đổi tên, không phải là một ngã ba, vì toàn bộ cộng đồng phát triển đã chuyển sang Jenkins. (Oracle bị bỏ lại ngồi trong một góc cầm quả bóng cũ "Hudson" của họ, nhưng bây giờ nó chỉ là một dự án không có linh hồn.)

Cf Ethereal -> WireShark


Tôi phải làm gì với máy chủ Hudson Build đang chạy của mình? Tôi đoán nó sẽ không tự động cập nhật lên nhánh / nhánh / đổi tên mới của Jenkins. Tôi có phải thiết lập máy chủ xây dựng từ đầu không?
Michael Küller

4
Bạn có thể "nâng cấp" lên Jenkins giống như bạn đã từng nâng cấp từ phiên bản Hudson này sang phiên bản khác.
nrobey

Tôi hiện đang chạy Hudson 1.395. Hiện tại nó không hiển thị các cập nhật có sẵn của tôi. Là bản cập nhật làm cho thay đổi tên đến sau?
Michael Küller

3
Không, Hudson (Oracle) sẽ không bao giờ cập nhật cho Jenkins; nếu Oracle sẵn sàng làm việc với cộng đồng thì sẽ không có sự chia rẽ ngay từ đầu. [1] Lợn lợn đang bay, ông Ellison trở thành hàng xóm thân thiện tốt bụng của bạn, v.v.
Nathan Kidd

8
Xem tại đây: wiki.jenkins-ci.org/display/JENKINS/ Khăn để biết cách thêm Jenkins vào trung tâm nâng cấp của Hudson.
Simon D

27

Tôi đã có hai điểm để thêm. Một, Hudson / Jenkins là tất cả về các plugin. Các nhà phát triển plugin đã chuyển sang Jenkins và chúng tôi cũng vậy, người dùng cũng vậy. Hai, cá nhân tôi không phải là một fan hâm mộ lớn của các sản phẩm của Oracle. Trong thực tế, tôi tránh chúng như bệnh dịch hạch. Đối với số tiền chi cho việc cấp phép và phần cứng cho một giải pháp Oracle, bạn có thể thuê gấp đôi nhân viên kỹ thuật và vẫn còn dư để mua bia mỗi thứ Sáu :)


1
Bởi vì tất cả các plugin, một Jenkins có thể khá khác so với các plugin khác và cũng khác với lần sau khi bạn cài đặt nó.
bbaassssiiee

4

Đối với những người đã đề cập đến một sự hòa giải là một tương lai tiềm năng cho Hudson và Jenkins, với thực tế là Jenkins sẽ gia nhập SPI , không có khả năng tại thời điểm này họ sẽ hòa giải.


4

Từ trang web Jenkins, http://jenkins-ci.org , sau đây tổng hợp nó.

Tóm lại, Jenkins CI là máy chủ tích hợp liên tục mã nguồn mở hàng đầu. Được xây dựng với Java, nó cung cấp hơn 300 plugin để hỗ trợ xây dựng và thử nghiệm hầu như bất kỳ dự án nào.

Oracle hiện sở hữu nhãn hiệu Hudson, nhưng đã cấp phép cho nó theo EPL Eclipse . Jenkins có giấy phép MIT . Cả Hudson và Jenkins đều là nguồn mở. Dựa trên sự kết hợp giữa những người bạn làm việc và sở thích cá nhân cho nguồn mở, quyết định này là IMHO đơn giản.

Hy vọng điều này là hữu ích.


3
Hudson là một dự án Eclipse cấp cao nhất hiện nay.
Manfred Moser

14
Oracle hiện sở hữu hudson và Jenkins là nguồn mở. Cả hai đều được cấp phép MIT . Việc mô tả một cái là nguồn mở và cái kia là nguồn mở khác là sai lệch. Chúng là phần mềm miễn phí.
pb2q

1
Oracle rõ ràng sở hữu tên Hudson (như một nhãn hiệu).
Thorbjørn Ravn Andersen
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.