Jenkins là gì?

Jenkin

Tại sao các Công ty nên tham gia vào cộng đồng Jenkins và cách thức tham gia?

Jenkins® là một máy chủ tự động mã nguồn mở. Với Jenkins, các tổ chức có thể đẩy nhanh quá trình phát triển phần mềm bằng cách tự động hóa. Jenkins quản lý và kiểm soát các quy trình trong toàn bộ vòng đời, bao gồm xây dựng, chuẩn bị tài liệu, thử nghiệm, đóng gói, triển khai,…

Bạn có thể thiết lập Jenkins để theo dõi bất kỳ thay đổi mã nào ở những nơi như GitHub, Bitbucket hoặc GitLab và tự động xây dựng bằng các công cụ như Maven và Gradle. Bạn có thể tận dụng container như Docker và Kubernetes.

Lịch sử của Jenkins

Dự án Jenkins được bắt đầu vào năm 2004 (ban đầu được gọi là Hudson) bởi Kohsuke Kawaguchi, trong khi ông làm việc cho Sun Microsystems.

Kohsuke đã từng là một nhà phát triển tại Sun và cảm thấy mệt mỏi khi phải hứng chịu cơn thịnh nộ của nhóm của mình mỗi khi mã code của anh ta phá vỡ bản dựng. Anh ấy đã tạo ra Jenkins như một cách để thực hiện tích hợp liên tục, kiểm tra mã trước khi triển khai kho lưu trữ, để đảm bảo rằng tất cả đều hoạt động tốt. Khi đồng đội nhìn thấy những gì anh ấy đang làm, họ đều muốn sử dụng Jenkins. Kohsuke mở nguồn nó, tạo ra dự án Jenkins và chẳng bao lâu việc sử dụng Jenkins đã lan rộng khắp thế giới

Ban đầu được phát triển bởi Kohsuke để tích hợp liên tục (Continuous Integration). Ngày nay Jenkins quản lý toàn bộ quy trình phân phối phần mềm – được gọi là phân phối liên tục (Continuous Delivery). Đối với một số tổ chức, tự động hóa còn mở rộng khả năng hơn nữa với triển khai liên tục. Phân phối liên tục (CD), cùng với văn hóa DevOps, giúp tăng tốc đáng kể việc phân phối phần mềm.

Định nghĩa CI và mục tiêu chính của nó

Tích hợp liên tục (Continuous Integration) là phát triển phần mềm dựa trên sự tích hợp thường xuyên  mã vào một kho lưu trữ được chia sẻ. Mỗi lần cập nhật đều được xác minh bởi một bản dựng tự động.

Mục tiêu chính của tích hợp liên tục là xác định các vấn đề có thể xảy ra trong quá trình phát triển sớm hơn và dễ dàng hơn. Nếu bạn tích hợp thường xuyên – sẽ có ít điều kiện cần kiểm tra hơn trong quá trình tìm kiếm lỗi.

Điều đó dẫn đến việc dành ít thời gian hơn cho việc gỡ lỗi và nhiều thời gian hơn để thêm các tính năng. Ngoài ra còn có một tùy chọn để thiết lập kiểm tra kiểu mã, độ phức tạp theo chu kỳ (độ phức tạp thấp giúp quá trình kiểm tra đơn giản hơn). Điều đó giúp giảm thiểu công sức cho người chịu trách nhiệm xem xét mã, tiết kiệm thời gian và nâng cao chất lượng của mã.

1*bji3oKORQWSdwc7W4fGaPw
                                                  CI Flow

Jenkins là giải pháp được áp dụng rộng rãi nhất để phân phối liên tục, nhờ khả năng mở rộng và một cộng đồng năng động, sôi nổi. Cộng đồng Jenkins cung cấp hơn  1,700 plugins cho phép Jenkins tích hợp với hầu hết mọi công cụ, bao gồm tất cả các giải pháp tốt nhất được sử dụng trong suốt quá trình phân phối liên tục. Jenkins tiếp tục phát triển như một giải pháp thống trị cho quá trình tự động hóa phần mềm, tích hợp liên tục và phân phối liên tục. Tính đến tháng 2 năm 2018, đã có hơn 165,000 lượt cài đặt đang hoạt động  và ước tính có khoảng 1,65 triệu người dùng trên khắp thế giới.

Vào năm 2019,  Continuous Delivery Foundation (CDF) đã được ra mắt hoạt động dưới sự bảo trợ của Linux Foundation.

CDF tập trung vào việc phát triển, nuôi dưỡng và thúc đẩy các dự án nguồn mở, các thông số kỹ thuật áp dụng thực tiễn tốt nhất liên quan đến phân phối liên tục. CDF có nhiều dự án mã nguồn mở, bao gồm Jenkins, Jenkins X, Spinnaker và Tekton. Renova Cloud cũng tham gia với tư cách là thành viên sáng lập và liên tục đóng góp các công nghệ và nguồn lực cho dự án.

Tài liệu tham khảo:

· Jenkins community blog

· Jenkins project Wiki pages

· Jenkins Subreddit

· How to join the Jenkins community

· Jenkins chats

· Stackoverflow

· Follow the Jenkins project on Twitter

The registered trademark Jenkins® is used pursuant to a sublicense from the Jenkins project and Software in the Public Interest, Inc.

Doron Shachar

CEO