Tìm hiểu Jenkins là gì? Những kiến thức dân lập trình cần biết

Tác giả: Lê Minh Phượng 01-07-2024

Đối với các lập trình viên hay kỹ sư công nghệ mà nói, họ luôn cần những công cụ hỗ trợ để có thể xây dựng được bộ CI/CD phục vụ cho nhiều Job. Jenkins tham gia vào sự hỗ trợ đó. Vậy bạn có biết Jenkins là gì hay không? Để giúp cho dân IT mới vào nghề trở nên thông thạo với nghiệp vụ hơn, tại bài viết này Băng Tâm mạn phép gửi tới bạn đọc quan tâm những thông tin hữu ích liên quan đến thuật ngữ này.

Việc làm IT phần mềm

1. Jenkins là gì?

Jenkins là một mã nguồn mở, được sử dụng để thực hiện một cách tự động chức năng CI/CD (dành cho những ai chưa biết CI/CD là gì – nó là chức năng tích hợp liên tục). Công dụng chính của CI/CD là để triển khai các Pipelines.

Jenkins là gì?

Với Pipelines, rất nhiều lợi ích sẽ được tạo ra, trước tiên đó là khả năng làm cho quá trình test được tự động hóa, thực hiện report lại tất cả các thay đổi lớn diễn ra ở bên trong hệ cơ sở mã lớn. Bên cạnh đó Pipelines cũng là công cụ giúp phát hiện lỗi hiệu quả, tạo sự chuẩn bị cần thiết để deploy, làm test tự động, build. Ở khâu cuối cùng sau nhiều hỗ trợ hấp dẫn trên, code sẽ được triển khai tới máy ảo cũng như các container, server cloud hay Bare metal.

Mặc dù có thể được ứng dụng trong rất nhiều lĩnh vực nhưng Jenkins tỏ ra hữu ích nhất tại các công ty chuyển hoạt động trong mảng thiết kế web.

Xem thêm: [Coder là gì?] Chân dung nghề “hái tiền” bậc nhất hiện nay!

2. Hành trình Jenkins ra đời

Vốn là một lập trình viên Java, Kohsuke Kawaguchi đã luôn cảm thấy áp lực và mệt mỏi bởi sự thất bại của bản thân trong quá trình xây dựng mã nguồn. Bởi vậy mà ông luôn đau đáu tìm ra một phương án nào đó có thể nhận diện được vấn đề nguy cơ của code trước khi chính thức đưa nó vào deploy. Sau nhiều ngày nghiên cứu và sự dồn trí dồn lực, giấc mơ của công cuối cùng cũng đã "thành hình" khi ông đã tạo nên một hệ thống server lại có khả năng tự động hóa cho chính nó. Nhờ có bước kiểm tra này mà Java sẽ dễ dàng check được code đang có tình trạng như thế nào, có đủ điều kiện để deploy hay không. Lúc này, chương trình kiểm tra đó được gọi là Hudson. Khi ra đời, Hudson đã được đưa vào sử dụng rộng khắp ở các công ty với tư cách là một mã nguồn mở.

Hành trình Jenkins ra đời

Đến 2011, một sự kiện lớn đã diễn ra và bắt đầu đánh dấu cho bước khởi đầu của Jenkins. Từ Hudson, Jenkins đã được manh nha phát triển. Ở thời điểm đầu tiên khi xuất hiện, Jenkins đã tồn tại cùng Hudson nhưng dần dần sau đó nó đã trở nên phổ biến hơn. vượt qua cả Hudson.

Năm 2014, một công ty đã sử dụng Jenkins làm nền tảng để cung cấp sản phẩm công nghệ, dưới sự điều hành của Kawaguchi.

Như vậy, hành trình ra đời, phát triển của Jenkins không có quá nhiều điều đáng nói, tuy nhiên, đây là đứa con tinh thần được "hoài thai" từ những lỗi sai của quá trình phát triển ngôn ngữ Java. Phải chăng mọi thành tựu đều có thể bắt nguồn từ những vấp ngã? Đôi lời tản mạn để thấy được vai trò của Jenkins cũng khá quan trọng trong đời sống công nghệ. Những thông tin ngay sau đây sẽ tiếp tục giúp bạn làm sáng tỏ về vai trò của Jenkins hơn nữa.

Xem thêm: Rust là gì

3. Tìm hiểu về CI/CD của Jenkins

3.1. CI trong Jenkins

CI được viết tắt bởi cụm từ tiếng Anh đầy đủ là Continuous integration. CI có chức năng tích hợp một cách liên tục các mã nguồn mã của mỗi thành viên trong nhóm, quá trình này diễn ra hết sức nhanh chóng.

Chu trình CI làm việc diễn ra như sau:

- Các members thuộc cùng một team dev có thể tiến hành những yêu cầu chức năng thông qua việc pull code từ repo qua branch.

- Làm cho quá trình kiểm tra code và lập trình đảm bảo giữ nguyên được chất lượng cho toàn bộ mã nguồn mở cũng như các chức năng.

Tìm hiểu về CI/CD của Jenkins

-  Khi code xong, các thành viên trong nhóm hoàn toàn có thể yên tâm về sự phát triển sau đó của sản phẩm.

- Code mới được cập nhật về local repo từ repo.

- Đẩy code lên repo

- Hợp nhất mã để giải quyết xung đột.

- Xây dựng và bảo đảm mật khẩu code thông qua các bài kiểm tra ở trong các local

- Những máy CI sẽ xem xét, nhận diện về việc làm thay đổi code ở trong kho, có thể tự động kiểm tra, xây dựng. Tiếp theo đó sẽ đưa đến các thông báo cho thành viên.

3.2. CD trong Jenkins

CD trong Jenkins

CD là cách viết tắt của từ tiếng Anh Continuous Delivery. CD thực hiện vai trò liên tục chuyển giao và tập hợp lại các kỹ thuật để có thể kiểm tra mã nguồn mở ở trong staging. Qua đó, lập trình viên có thể đảm bảo mã nguồn mở sẽ được review, tại môi trường production sau khi được deploy sẽ diễn ra quá trình kiểm thử.

Xem thêm: Tổng hợp công việc nhập mã code

4. Jenkins và cách thức hoạt động

Jenkins bao gồm các yếu tố sau:

+ gói cài đặt dạng homebrew

+ Gói Java 8 WAR

+ Mã nguồn, Java là mã chủ yếu, ngoài ra còn có Ruby, Croovy, Antlr.

+ Hình ảnh Docker

Với các thành phần này, lập trình viên có thể cho chạy Jenkins War một cách độc lập hoặc chạy ở dạng Servlet. Ở cả hai cách thức này thì nó cũng vẫn sẽ cho ra kết quả là giao diện cùng với khả năng chấp nhận API Rest.

Jenkins và cách hoạt động

Trong lần đầu tiên khởi chạy Jenkins, nó sẽ tạo một tài khoản quản trị, mật khẩu của tài khoản khá là dài và được đưa ra một cách ngẫu nhiên mà không phải do con người tự sắp xếp. Bạn có thể copy lại mật khẩu này để dán nó vào trang web đầu tiên, như vậy là đã có thể unlock cài đặt rồi đấy.

Như ở khái niệm chúng ta đã tìm hiểu Jenkins có phần phụ thuộc vào các Pipeline. Sự phụ thuộc này hoàn toàn chủ động và có lợi cho chính nó vởi vì các pipeline là điều kiện quan trọng để Jenkins có thể vận hành. Đồng thời nó cũng đóng vai trò là một chuỗi của các server cần thiết đối với các tác vụ trong CI/CD.

cv online đơn giản

5. Tìm hiểu một vài nhược điểm của Jenkins

Mặc dù được tạo ra để khắc phục cho các nhược điểm thế nhưng Jenkins vẫn không tránh khỏi "số mệnh" hai mặt của một vấn đề, đó là mặt hạn chế cho dù không thể phủ nhận những lợi ích nó mang đến vô cùng thiết thực và có tính ứng dụng cao.

Jenkins một mặt có quá trình cài đặt đơn giản thế nhưng đổi lại nó có thể gây ra những khó khăn nhất định trong quá trình sử dụng. Khi đó, sử dụng Jenkins file để tiến hành thực hiện các pipeline cần phải đảm bảo những khai báo riêng.

Tìm hiểu một vài nhược điểm của Jenkins

Mã nguồn mã là hệ thống có kiến trúc đơn server. Vì vậy nso tạo lợi thế để việc cài đặt thuận lợi và diễn ra dễ dàng. Tuy nhiên, nguồn tài nguyên trong máy tính cũng khiến nó bị giới hạn, thậm chí còn có container hoặc là các máy ảo cũng làm cho các chức năng của mã nguồn mở bị kìm hãm lại, dẫn đến việc Jenkins không thể tạo liên kết giữa các sever với nhau khi phát hiện nguy cơ điện năng bị ảnh hưởng.

Jenkins thường bị phụ thuộc bởi nhiều yếu tố, từ công nghệ Java đã cũ cho đến kiến trúc, nhất là phụ thuộc vào maven và servlet.

Nhìn chung, trong bài viết này, ngoài thông tin Jenkins là gì thì bạn còn nhận được rất nhiều tin tức hữu ích liên quan đến nó. Nếu đã là một nhà lập trình viên, kiến thức về jenkins cũng rất quan trọng để tìm hiểu và giúp cho sự nghiệp của bạn thêm phần vững chắc. Còn nếu như bắt đầu theo đuổi con đường sự nghiệp trong lĩnh vực công nghệ thì kiến thức về Jenkins là gì càng phải được chú trọng tìm hiểu. Mong rằng, lượng thông tin được cung cấp trong bài viết đủ để bạn có được kiến thức tốt để hành nghề, theo đuổi nghề hiệu quả.