Nội dung bài viết
#

Jenkins là gì? Đặc điểm và cách thức hoạt động của Jenkins

Nội dung bài viết

    Jenkins là một phần mềm tích hợp liên tục (Continuous Integration, CI) được sử dụng rộng rãi trong lĩnh vực phát triển phần mềm. Nó giúp người phát triển kiểm tra nhanh chóng và thường xuyên mã nguồn của họ bằng cách tự động hóa quá trình biên dịch, kiểm tra và phát hành phần mềm. Trong bài viết này, BKHOST sẽ tìm hiểu thêm về Jenkins và các tính năng mà nó cung cấp cho người phát triển phần mềm.

    Jenkins là gì?

    Jenkins la gi

    Jenkins là một phần mềm tích hợp liên tục (Continuous Integration, CI) được sử dụng rộng rãi trong lĩnh vực phát triển phần mềm. Nó giúp người phát triển kiểm tra nhanh chóng và thường xuyên mã nguồn của họ bằng cách tự động hóa quá trình biên dịch, kiểm tra và phát hành phần mềm.

    Jenkins có thể được cài đặt trên máy chủ local hoặc được sử dụng dưới dạng một dịch vụ trên cloud. Nó là một phần mềm nguồn mở và được phát hành dưới giấy phép MIT.

    Các tính năng mà nó cung cấp cho người phát triển phần mềm

    Các tính năng chính của Jenkins bao gồm:

    • Tích hợp liên tục: Jenkins có thể tự động hóa việc biên dịch và kiểm tra mã nguồn khi có sự thay đổi trong mã nguồn.
    • Tích hợp với các hệ thống quản lý mã nguồn: Jenkins có thể tích hợp với các hệ thống quản lý mã nguồn như Git, Subversion và Mercurial để tự động hóa quá trình tích hợp mã nguồn.
    • Tích hợp với các công cụ kiểm tra chất lượng mã nguồn: Jenkins có thể tích hợp với các công cụ kiểm tra chất lượng mã nguồn như SonarQube để đánh giá chất lượng mã nguồn.
    • Quản lý các job và plugin: Jenkins có một giao diện quản lý dễ sử dụng cho phép người sử dụng quản lý các job và plugin một cách dễ dàng.
    • Cung cấp các báo cáo và thống kê: Jenkins cung cấp các báo cáo và thống kê về việc sử dụng và hiệu suất của hệ thống, giúp người quản lý dễ dàng theo dõi và đánh giá hiệu suất của hệ thống.

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

    Để sử dụng Jenkins, người phát triển phần mềm cần cấu hình một “job” trong Jenkins. Job trong Jenkins là một tác vụ cần được thực hiện, ví dụ như biên dịch mã nguồn, kiểm tra mã nguồn hoặc phát hành phần mềm. Khi có sự thay đổi trong mã nguồn hoặc khi người phát triển yêu cầu thực hiện job, Jenkins sẽ thực hiện các bước đã được cấu hình trong job đó.

    Sau khi job được thực hiện xong, Jenkins sẽ cung cấp các báo cáo và kết quả cho người phát triển, bao gồm các thông tin về việc biên dịch mã nguồn, kết quả các bước kiểm tra mã nguồn và thông tin về bất kỳ lỗi nào xảy ra trong quá trình thực hiện job.

    Ngoài ra, Jenkins còn cung cấp một giao diện quản lý dễ sử dụng cho phép người sử dụng quản lý các job và plugin một cách dễ dàng. Người sử dụng cũng có thể tích hợp Jenkins với nhiều công cụ khác nhau để mở rộng tính năng của hệ thống.

    Các Plugin trong Jenkins

    Ngay khi cài đặt Jenkins thành công, Jenkins cho phép bạn lựa chọn plugin có sẵn hoặc plugin của riêng bạn.

    Plugin trong Jenkins-1

    Chọn được bộ trình cắm rồi bạn hãy click vào nút Install thì chúng sẽ được Jenkins thêm vào.

    Plugin trong Jenkins-2

    Trên màn hình chính Jenkins sẽ hiển thị các build queue hiện tại và trạng thái executor. Bên cạnh đó nó cũng cung cấp các liên kết để tạo ra mục mới, chế độ xem tùy chỉnh, quản lý cho người dùng, xem lại lịch sử xây dựng, chế độ xem tùy chỉnh, quản lý thông tin đăng nhập và quản lý Jenkins.

    Plugin trong Jenkins-3

    Đối với một mục Jenkins mới thì có thể là một trong sáu loại công việc nói trên cùng với một thư mục nhằm mục đích sắp xếp logic các loại thư mục nhỏ bên trong.

    Plugin trong Jenkins-4

    Ở trang Manage Jenkins (quản lý Jenkins) bạn có thể làm 18 điều trong đó bao gồm các tùy chọn mở giao diện dòng lệnh. Mặc dù vậy, bạn nên cân nhắc lại việc sử dụng các pipeline và quy trình công việc nâng cao được xác định của các tập lệnh.

    Plugin trong Jenkins-5

    Jenkins Pipeline

    Jenkins Pipeline

    Có được cấu hình Jenkins bạn sẽ được Jenkins hỗ trợ để tạo dựng một số dự án của riêng mình. Sử dụng giao diện người dùng web để tạo ra các tệp là cách thức truyền thống khá quen thuộc. Tuy nhiên phương pháp hay nhất hiện nay là tạo một tập lệnh đường dẫn theo kiểu pipeline có tên là Jenkins Pipeline. Quy trình này được thực hiện một cách tuần tự được định sẵn, khi đó Jenkins Pipeline sẽ được khai báo trên một tập tin với tên Jenkinsfile. Hình ảnh bên dưới là một biểu mẫu web cấu hình cho một Pipeline nhiều nhánh:

    Jenkins Pipeline-1

    Như vậy có thể thấy trong cài đặt Jenkins cơ bản các nguồn nhánh cho Pipeline có thể là các kho lưu trữ Git hoặc Subversion, bao gồm cả GitHub. Bạn chỉ cần thêm các trình cắm thích hợp và khởi động lại Jenkins khi cần các loại kho lưu trữ khác.

    Dưới đây là ví dụ về ba giai đoạn của một đường dẫn khai báo được bắt đầu bằng một Pipeline khối, xác định một agent và định nghĩa stages gồm tệp thực thi steps:

    {{EJS0}}

    Pipeline là khối bên ngoài bắt buộc, agent là vị trí nơi bạn muốn chạy pipeline còn any cho biết sử dụng bất kỳ tác nhân có sẵn để chạy pipeline. Một vùng chứa có thể được khai báo bởi một tác nhân cụ thể, ví dụ:

    {{EJS1}}

    Một hoặc nhiều chỉ thị giai đoạn được chứa đựng bởi stages. Ba giai đoạn trong ví dụ trên là xây dựng, kiểm tra và triển khai.

    Steps làm công việc thực tế. Ở ví dụ trên các bước chỉ in tin nhắn. Một bước xây dựng hữu ích hơn có thể giống như sau:

    {{EJS2}}

    Chúng tôi đang gọi make là một trình bao, bất kỳ tệp JAR được tạo ra cũng được lưu trữ vào kho lưu trữ Jenkins.

    Các hành động được chạy ở cuối giai đoạn hoặc quá trình chạy Pipeline đều được xác định bởi post.

    Ví dụ như Jenkinsfile ở dưới đây sau giai đoạn kiểm tra sẽ luôn chạy JUnit và chỉ gửi vào email trong trường hợp Pipeline bị lỗi.

    {{EJS3}}

    Blue Ocean – giao diện mới của Jenkins

    Blue Ocean là trải nghiệm tuyệt vời cho bạn khi muốn giao diện Jenkins trở nên mới mẻ, độc đáo. Bạn có thể thêm Blue Ocean vào cài đặt Jenkins hiện có, lúc đó màn hình chính của Jenkins sẽ có thêm biểu tượng sóng xanh đại dương và dòng chữ “Open Blue Ocean”.

    Blue Ocean-1

    Bạn có thể mở Blue Ocean trực tiếp bằng cách nhấp vào “Open Blue Ocean” ở thanh điều hướng thuộc giao diện Jenkins. Blue Ocean thân thiện với người dùng và giúp họ truy cập thông tin nhanh chỉ với vài cú nhấp chuột.

    Blue Ocean-2

    Jenkins Docker

    Ngoài phân phối bởi WAR, Jenkins còn được cung cấp dưới dạng hình ảnh Docker. Quy trình này được thực hiện đơn giản với các bước cụ thể:

    • Bước 1: Chọn loại SCM.
    • Bước 2: Cung cấp URL và thông tin đăng nhập.
    • Bước 3: Tạo đường dẫn từ một kho lưu trữ duy nhất hoặc quét tất cả các kho lưu trữ có trong tổ chức.

    Ví dụ dưới đây chúng tôi đang chạy hình ảnh Blue Ocean Docker đi kèm với đó là một vài plugin dịch vụ Git (cài đặt ngoài danh sách mặc định).

    Jenkins Docker-1

    Plugin Blue Ocean sẽ hiển thị trạng thái của chúng sau khi bạn cài pipeline. Để xem các giai đoạn và các bước bạn có thể phóng to từng kênh:

    Jenkins Docker-2

    Bên cạnh đó bạn cũng có thể phóng to các nhánh trên và dưới:

    Jenkins Docker-3

    Jenkins Docker-4

    Tại sao sử dụng Jenkins?

    Jenkins là một công cụ mã nguồn mở mang đến vô số những lợi ích tuyệt vời cho người dùng. Điểm đặc biệt đầu tiên là nó rất dễ cài đặt và có khoảng 1.600 plug-in để bạn làm việc một cách nhanh chóng, đơn giản. Mặt khác Jenkins được xây dựng bằng Java nên có thể di động đến các nền tảng chính.

    Jenkins Pipeline là trình cắm hỗ trợ cho hai trường hợp sử dụng phân phối liên tục và tích hợp liên tục. Jenkins đã và đang tham gia hỗ trợ cho nhiều dự án Java ví dụ như Maven, Ant, Junit, Nexus và Artifactory.

    Jenkins cho CI/CD

    Bằng cách sử dụng pipeline (đường ống), Jenkins thực hiện chức năng tích hợp thường xuyên (CI) và chuyển giao liên tục (CD). Các source code của các thành viên trong team được jenkins tích hợp nhanh chóng, liên tục, theo dõi trạng thái và sự thực thi thông qua các bước kiểm thử.

    Tổng kết về Jenkins

    Bài viết trên chúng tôi đã tổng hợp những thông tin quan trọng liên quan tới mã nguồn Jenkins. Hy vọng với những gì tham khảo được bạn sẽ có thêm kiến thức về Jenkins cũng như hiểu rõ về lịch sử hình thành và cách mà nó hoạt động. Hãy thử tìm hiểu phần mềm này vì nếu bạn ứng dụng được nó thì việc xử lý source code sẽ trở nên rất đơn giản.

    Nếu bạn bất cứ câu hỏi nào liên quan đến Jenkins hoặc muốn tìm hiểu những công cụ khác dùng để xử lý code hiệu quả, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    Mua Hosting tại BKHOST

    Hosting siêu tốc – Khuyến mãi cực sốc.
    Giá chỉ từ 5k/tháng.

    mua web hosting

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận

    Trượt lên đầu trang
    Gọi ĐT tư vấn ngay
    Chat ngay qua Zalo
    Chat ngay qua Messenger
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !