Site icon saotuvi.com

Jenkins là gì? Ứng dụng Jenkins vào công việc như thế nào?

Bạn sẽ cảm thấy ngạc nhiên khi Jenkins đứng đầu bảng về số lượng người sử dụng theo thống kê mới đây của Jetbrain và nhiều năm trước đó nữa, bạn cũng tự hỏi rằng sao họ không sử dụng Gitlab CI, Circle CI, Bitbucket pipelines, Github Actions, ArgoCD nhưng mọi chuyện đều có lý do của nó cả, hãy cùng 200Lab tìm hiểu nguyên nhân tại sao trong bài viết sau đây nhé.

1. Jenkins là gì ?

Jenkins là một giải pháp nguồn mở viết bằng Java cho phép bạn có thể thực hiện công việc CI/CD một cách tự động. Giải thích một cách dễ hiểu thì nó giúp bạn tự động hóa các giai đoạn phát triển phần mềm khác nhau như Build, Test và Deployment.

2. Jenkins được sử dụng để làm gì ?

Jenkins trở nên phổ biến bởi khả năng theo dõi và giám sát các hoạt động lặp đi lặp lại xuất hiện trong suốt quá trình phát triển dự án. Ví dụ: nếu nhóm của bạn đang thực hiện một dự án, Jenkins sẽ liên tục kiểm tra các bản Build của bạn và sớm cảnh báo cho bạn về bất kỳ sai sót nào trong quá trình này. Bên dưới đây sẽ mô tả chi tiết từng trường hợp

2.1 Triển khai CI/CD

Trong quá trình phát triển một tính năng mới hay chỉnh sửa lại tính năng cũ của một phần mềm với nhóm của mình thì chắc bạn sẽ không xa lạ gì với Test Case,  được sử dụng trong quá trình kiểm thử trước khi code của bạn được deploy lên môi trường production.

Theo kinh nghiệm của cá nhân mình thì trước khi code của bạn đi tới được Production, nó sẽ phải bước qua các giai đoạn kiểm tra sau , giả sử bạn đang được giao nhiệm vụ chỉnh sửa 1 API nào đó có sẵn:

2.2 Tự động hoá tác vụ với Pipeline

Mình nghĩ khi nhắc đến Pipeline bạn sẽ liên tưởng đến một chuỗi các công việc thực thi theo từng bước 1, mỗi bước sẽ có khả năng rẽ nhánh dựa trên kết quả đầu ra đúng/sai (thành công/thất bại). Và pipeline cũng được sử dụng trong quá trình CI/CD như đã nói ở bên trên, tuy nhiên phần này mình sẽ không đề cập đến CI/CD nữa mà sẽ nói đến các ứng dụng khác của Pipeline.

Bạn có thể sử dụng Pipeline vào những công việc của Data Engineer, miễn là các công việc ấy được thư thi tuần tự theo từng bước, ví dụ như:

3. Đặc điểm nổi bật của Jenkins

Bảng bầu chọn công cụ CI/CD được sử dụng nhiều nhất từ Jetbrain 2024 

Như mọi người đã thấy Jenkins được bầu chọn là công cụ CI/CD sử dụng bởi nhiều developer nhất năm 2024, vì các lý do sau đây

3.1 Mã nguồn mở

Không phải trả phí rõ ràng là lý do chính khiến Jenkins thu hút rộng rãi. Nó hoàn toàn miễn phí nên bất kỳ tổ chức nào cũng có thể bắt đầu sử dụng nó bất kể hạn chế về ngân sách. Jenkins cũng rất dễ cài đặt, và được phát triển bằng ngôn ngữ Java, có nghĩa là nó có thể chạy trên hầu hết các thiết bị và hệ điều hành. Bạn chỉ cần đơn giản sử dụng một số câu lệnh docker là có thể chạy nó ở trên máy của mình

Pull về image Jenkins từ Docker hub  và chạy câu lệnh docker run

Bash

docker pull jenkins
docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

3.2 Hỗ trợ bởi cộng đồng đông đảo

Bởi vì nó là phần mềm mã nguồn mở và là công cụ CI/CD được sử dụng trong nhiều năm, Jenkins hiện có một cộng đồng mạnh mẽ đằng sau nó. Điều này củng cố sự phổ biến của Jenkins vì bạn rất dễ dàng tìm thấy các hướng dẫn triển khai cũng như là sửa lỗi

3.3 Kho Plugin đa dạng

Một trong những lợi thế rất mạnh của Jenkins là danh mục plugin khổng lồ có thể mở rộng chức năng của nó. Theo số liệu mới nhất, Jenkins có hơn 1900 plugin do cộng đồng phát triển cho phép mọi tổ chức điều chỉnh hoặc nâng cao chức năng cơ bản để phù hợp với môi trường DevOps của họ. Ví dụ như: Jenkins -Slack, Jenkins – Telegram, …

3.4 Khả năng Distributed

Cơ chế distributed trong Jenkins, thường được gọi là “Jenkins distributed build” hoặc “Jenkins master-slave architecture,” cho phép Jenkins phân phối tải công việc (builds, tests, deployments) giữa nhiều máy tính (nodes). Điều này giúp cải thiện hiệu suất, khả năng mở rộng và độ tin cậy của hệ thống CI/CD

4. Kết luận

Bạn thấy đấy Jenkins không phải là một công cụ mới nhưng là có bề dày lịch sử rất lâu đời nên số lượng người sử dụng đông là việc hiển nhiên, chúng ta sẽ cũng tìm hiểu về các công cụ CI/CD khác trong những bài viết sau

Các bài viết liên quan:

Exit mobile version