Trang chủ Kiến thức cơ bản

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng

Jenkins là gì?

Jenkins mang đến một cách đơn giản hơn trong việc thiết lập môi trường tích hợp hoặc phân phối liên tục cho gần như tất cả các ngôn ngữ và kho mã nguồn nhờ vào việc sử dụng các pipeline hay tự động hóa các tác vụ phát triển thông thường khác. Jenkins không những không loại bỏ nhu cầu tạo script cho từng bước riêng lẻ, mà còn cung cấp thêm khả năng tích hợp nhanh hơn và mạnh mẽ hơn toàn bộ chuỗi công cụ xây dựng, kiểm tra và triển khai dễ dàng hơn là bạn tự xây dựng hoàn toàn.

"Đừng phá vỡ công trình xây dựng hàng đêm" là một quy tắc khá phổ biến trong giới phát triển phần mềm khi mà mỗi sáng họ lại phải gửi một phiên bản phần mềm hoàn toàn mới mà họ vẫn thực hiện mỗi ngày cho các tester. Trước khi có Jenkins, điều tốt nhất mà một developer có thể làm để tránh cho các nỗ lực hàng đêm bị phá hủy là cố gắng thực hiện và kiểm tra thật cẩn thận trên máy tính cục bộ trước khi chuyển giao code. Nhưng như vậy cũng có nghĩa là bạn sẽ phải tự mình thử nghiệm các thay đổi mà không có ai khác trao đổi và cam kết. Không có gì đảm bảo chắc chắn rằng nỗ lực hàng đêm sẽ hoàn thiện chỉ trong một lần duy nhất.

Và chúng ta có Jenkins – ban đầu là Hudson – để giải quyết tình huống này.

Hudson và Jenkins

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 1.

Năm 2004, Kohsuke Kawaguchi - một nhà phát triển Java tại Sun vào một ngày cảm thấy mệt mỏi vì các bản dựng của mình thường xuyên bị phá bỏ và muốn tìm cách biết, trước khi đưa code vào kho lưu trữ, liệu code có hoạt động hay không. Vì vậy, Kawaguchi đã xây dựng một hệ thống server tự động hóa cho chính server và cho Java cho phép kiểm tra tình trạng code trước khi đưa vào kho, được gọi là Hudson. Hudson trở nên phổ biến tại Sun và lan sang các công ty khác dưới dạng nguồn mở.

Đến năm 2011, tranh chấp giữa Oracle (sau khi mua lại Sun) và cộng đồng nguồn mở Hudson độc lập đã dẫn đến một hướng khác với việc thay đổi tên thành Jenkins. Cả Hudson và Jenkins đều tiếp tục tồn tại, mặc dù Jenkins có phần phổ biến hơn. Năm 2014 Kawaguchi trở thành CTO của CloudBees, một công ty cung cấp các sản phẩm dựa trên nền tảng Jenkins.

Mô hình tự động Jenkins

Hiện nay Jenkins là máy chủ nguồn mở tự động hàng đầu với khoảng 1.400 plugin hỗ trợ tự động hóa tất cả các tác vụ phát triển. Vấn đề mà ban đầu Kawaguchi cố gắng khắc phục, tích hợp và phân phối mã Java liên tục (nghĩa là xây dựng dự án, chạy thử nghiệm, phân tích mã tĩnh và triển khai) chỉ là một trong số rất nhiều quy trình chúng ta có thể tự động hóa bằng Jenkins. 1.400 plugin này bao gồm 5 lĩnh vực: nền tảng, UI - giao diện người dùng, quản trị, quản lý mã nguồn và nhiều nhất là quản lý xây dựng, kiến trúc.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 2.

Jenkins hoạt động như thế nào?

Jenkins được cung cấp như các gói lưu trữ Java 8 WAR và các gói cài đặt cho các hệ điều hành phổ biến, dưới dạng gói Homebrew, hình ảnh Docker và mã nguồn. Mã nguồn chủ yếu là Java, gồm một vài tệp Groovy, Ruby và Antlr.

Bạn có thể chạy độc lập Jenkins WAR hoặc dưới dạng một servlet trong máy chủ ứng dụng Java như Tomcat. Trong cả hai trường hợp, Jenkins sẽ tạo một giao diện người dùng web và chấp nhận các cuộc gọi đến API REST.

Khi bạn chạy Jenkins lần đầu tiên, chương trình sẽ tạo một tài khoản quản trị với mật khẩu ngẫu nhiên khá dài, bạn có thể patse mật khẩu này vào webpage ban đầu để unlock trình cài đặt.

Các plugin trong Jenkins

Sau khi cài đặt, Jenkins cho phép bạn hoặc là chọn danh sách plugin mặc định hoặc là chọn plugin của riêng mình.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 3.

Khi bạn đã chọn bộ plugin ban đầu của mình, hãy nhấp vào nút Cài đặt và Jenkins sẽ thêm chúng vào.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 4.

Màn hình chính của Jenkins hiển thị các build queue hiện tại, trạng thái Executor, cung cấp các liên kết để tạo các mục mới (công việc), quản lý người dùng, xem lịch sử xây dựng, quản lý Jenkins, chế độ xem tùy chỉnh và quản lý thông tin đăng nhập.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 5.

Một mục Jenkins mới có thể là bất kỳ kiểu công việc nào trong sáu loại cộng thêm một thư mục để sắp xếp các mục bên trong.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 6.

Có 18 thao tác bạn có thể sử dụng trên trang Manage Jenkins, bao gồm tùy chọn mở giao diện dòng lệnh. Tuy nhiên, bạn cũng có thể cân nhắc các pipeline - các quy trình công việc nâng cao được xác định bởi các script.

Jenkins là gì? Mô hình kiểm tra code tự động nổi tiếng - Ảnh 7.

Theo BizFly Cloud 

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành BizFly Cloud - là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: BizFly Cloud Server, BizFly CDN, BizFly Load Balancer, BizFly Pre-built Application, BizFly Business Mail, BizFly Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của BizFly Cloud tại đây

.