Thứ Hai, 26 tháng 7, 2021

Jenkins là gì? Mối liên hệ của Jenkins với CI và CD

Các tác vụ tự động hóa đóng vai trò lớn trong việc build, test, chạy và triển khai code khi có thay đổi. Mà Jenkins lại là công cụ hữu hiệu trong việc phát triển các tác vụ tự động hóa. Một lập trình viên giỏi cần nắm chắc được cách sử dụng Jenkins. Vậy bạn đọc đã biết Jenkins là gì hay chưa? Jenkins có liên hệ như thế nào với hai cái tên thường được nhắc đến song song là CI và CD? Tất cả sẽ được giải đáp trong bài viết sau.

Tìm hiểu Jenkins là gì?

Khái niệm Jenkins là gì?

Jenkins được hiểu như là một mã nguồn mở phục vụ cho việc vận hành các chức năng tích hợp liên tục. Ngoài ra Jenkins còn có thể xây dựng các tác vụ dạng tự động hóa.

Jenkins cho phép người dùng tích hợp lại các Jenkins từ những member khác nhau trong team. Từ đó rút ra được một hệ thống theo dõi và kiểm tra quá trình hoạt động và các trạng thái tức thời thông qua các bước kiểm thử. Hoạt động này giúp cho lập trình viên nhanh chóng phát hiện những lỗi sai trong phần mềm để đưa ra cách khắc phục tối ưu nhất.

Định nghĩa Jenkins là gì?

Định nghĩa Jenkins là gì?

Jenkins được xây dựng dựa trên ngôn ngữ lập trình Java – một trong những ngôn ngữ phổ biến và được nhiều người lựa chọn sử dụng nhất. Chính vì thế Jenkins có thể dễ dàng tương thích được với nhiều công cụ và nền tảng khác nhau. Cộng đồng sử dụng Jenkins cũng vô cùng lớn. Vậy nên bạn có thể thoải mái sử dụng rất nhiều kinh nghiệm sử dụng Jenkins từ những bậc tiền bối.

Nguồn gốc của Jenkins là gì?

Cha đẻ của Jenkins là Kohsuke Kawaguchi – một nhà lập trình viên Java làm việc tại Sun. Ông cảm thấy phiền phức và tốn thời gian khi những mã code liên tục fail khi đưa vào deploy.

Để khắc phục tình trạng này, ông đã phát minh ra một phần mềm tên là Hudson với sức năng tự động hóa để phát hiện ra các lỗi sai của code trước khi đưa vào deploy. Hudson trở nên vô cùng thịnh hành và phổ biến trong thời bấy giờ.

Khi Sun được Oracle mua lại, Jenkins được forked từ Hudson và phát triển như một phần mềm độc lập. Sau này Jenkins và Hudson tồn tại song song. Tuy vậy nhờ những cải tiến cấp thiết phù hợp với thời đại, Jenkins trở nên phổ biến hơn rất nhiều.

Jenkins có liên quan thế nào đến CI và CD? – Jenkins là gì

Giới thiệu về CI và CD

CI là gì?

CI được viết tắt từ Continuous Integration. Nó được miêu tả như một module tích hợp liên tục các mã nguồn mở của những thành viên có mặt trong team một cách nhanh chóng hơn.

Phương pháp CI đòi hỏi các thành viên trong team phải làm việc hiệu quả hơn. Các thành viên phải thường xuyên báo cáo và phát triển công việc của họ ít nhất mỗi ngày một lần. Một team khác được giao nhiệm vụ theo dõi sát sao và kiểm tra ngay lập tức khi có cập nhật mới. Quá trình vận hành này mang đến những ưu điểm nổi bật như nhanh chóng tìm thấy lỗi sai còn tồn đọng, chia sẻ công việc hiệu quả, đẩy nhanh thời gian làm việc.

Một ví dụ cụ thể về phương pháp hoạt động của CI sẽ được giải thích như sau. Các developer chịu trách nhiệm phát triển phần mềm sẽ lưu trữ lại các code của project sau khi hoàn thiện xong trong một thư mục. Hệ thống CI được cho phép truy cập thư mục này sẽ tự động tiếp nhận thông tin, kiểm tra, build và test code. Nếu chạy thử thất bại, thông báo sẽ được gửi lại cho các developer. Họ sẽ tiến hành sửa code lỗi và đẩy code sửa lỗi đó lên repo cho các thành viên khác có thể tham khảo.

Quy trình cơ bản của Jenkins

Quy trình cơ bản của Jenkins

Chu trình làm việc của CI

Bước đầu tiên, các thành viên trong team sẽ kéo mã từ repo về branch để có thể thực hiện các yêu cầu chức năng nhất định. Tiếp theo sẽ tiến hành kiểm tra và test code để có thể đảm bảo được yêu cầu về chức năng của mã nguồn. Sau khi code xong, các thành viên sẽ cho kết quả vừa làm được vào branch develop chung của team. Tiếp đó, thành viên cập nhật code mới từ repo về local repo. Từ repo, merge code sẽ tiến hành chỉnh sửa và giải quyết các xung đột. Song song với đó cần build và đảm bảo code pass để có thể dễ dàng thông qua các tests tại local. Cuối cùng là bước commit code lên repo.

Trong khi quá trình này diễn ra, các máy chủ CI sẽ giám sát chu trình làm việc của các thành viên. Cụ thể, CI cho biết các lỗi sai vẫn còn tồn đọng, tự động hóa việc test, kiểm tra và phát triển lại dựa trên lịch sử repo. Tất cả các hoạt động tiến hành đều sẽ trả về thông báo cho các thành viên.

CD là gì?- Jenkins là gì

CD là tên viết tắt của Continuous Delivery, dịch tiếng Việt có nghĩa là chuyển giao liên tục. CD quá trình thực hiện các thao tác kỹ thuật về code trên môi trường staging – một môi trường tương tự với môi trường production. CD cho phép kiểm tra tích cực nguồn mở trên môi trường test, tiến hành tự động hóa phần testing bên cạnh cách sử dụng unit test truyền thống. Nhờ vậy đảm bảo rằng phần mềm đã được kiểm tra và sàng lọc qua nhiều thước đo khác nhau, quá trình kiểm tra tỉ mỉ hạn chế khả năng phát sinh lỗi sau khi code đã được deploy vào trong môi trường production.

Vai trò của Jenkins trong CI và CD – Jenkins là gì

Jenkins đóng vai trò như một trái tim trung tâm của hệ thống CI và CD. Jenkins được trang bị các gói lưu trữ Java 8 WAR và những gói cài đặt cho hệ điều hành thông thường trong dạng Homebrew. Những gói như vậy sẽ bao gồm hình ảnh Docker và mã nguồn. Về cơ bản, mã nguồn ở đây chủ yếu là Java, bao gồm một vài tệp Croovy, Ruby và Antlr.

Khi đó, bạn có thể chạy jenkins War một cách độc lập hoặc trong dạng một servlet thuộc máy chủ của phần mềm Java tương tự như Tomcat. Với cả hai trường hợp này, Jenkins đều sẽ mang đến một giao diện nhất định cho người dùng và cho phép các cuộc gọi đến API Rest.

Hiểu rõ vai trò của Jenkins sẽ giúp bạn đọc nắm rõ hơn khái niệm Jenkins là gì.

Lợi ích của Jenkins rất đa dạng

Lợi ích của Jenkins rất đa dạng

Hướng dẫn sử dụng Jenkins – Jenkins là gì

Bước tiếp theo của quá trình tìm hiểu Jenkins là gì là nắm rõ cách cài đặt phần mềm này. Vì phần mềm Jenkins được viết nên từ ngôn ngữ lập trình Java nên bạn phải cài đặt Java trước. Các đường link tải Java và Jenkins đều có rất nhiều trên các diễn đàn công nghệ. Bạn hãy chọn loại tệp phù hợp với cấu hình và hệ điều hành của máy mình nhé.

Trong lần đầu tiên bạn chạy Jenkins, phần mềm này sẽ tạo ra một tài khoản quản trị với các mật khẩu ngẫu nhiên khá dài. Người dùng được phép dán mật khẩu này vào webpage ban đầu là có thể mở khóa của trình cài đặt.

Điều kiện để khởi chạy được Jenkins là sự xuất hiện của các pipeline. Cùng với đó Pipeline cũng là một trong những chuỗi hoạt động của server Jenkins bắt buộc phải được thực hiện cho những thao tác của CI và CD. Chúng đều được lưu giữ sẵn trong một file Jenkins bất kỳ dưới dạng văn bản. Khi đó, Jenkinsfile sẽ sử dụng cú pháp ngoặc nhọn, khá tương đồng với JSON. Đây là hoạt động xuất hiện trong pipeline. Chúng được khai báo ở dưới dạng câu lệnh có chứa tham số.

Hướng dẫn cài đặt Jenkins

Hướng dẫn cài đặt Jenkins

Sau khi câu lệnh đã được chứa trong dấu ngoặc nhọn {}, máy chủ Jenkins sẽ đọc các Jenkinsfile và tiến hành thao tác với các câu lệnh. Đồng thời thực hiện hoạt động đẩy mã xuống pipeline từ mã nguồn. Mỗi một tệp Jenkinsfile đó đều có thể được tạo ra từ một GUI hoặc được trực tiếp viết code.

Mời bạn đọc tham khảo thêm: IDE là gì?

Kết luận

Trên đây là bài viết giải đáp thông tin Jenkins là gì. Jenkins là một chương trình hữu ích phục vụ cho quá trình kiểm tra, test code và report lỗi sai. Jenkins giúp tối ưu hóa quá trình phát triển phần mềm, cải thiện thời gian test và build thông qua các hoạt động được tự động hóa. Nắm chắc cách sử dụng Jenkins sẽ giúp các lập trình viên tiết kiệm được rất nhiều thời gian làm việc.

The post Jenkins là gì? Mối liên hệ của Jenkins với CI và CD appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/jenkins-la-gi/

Không có nhận xét nào:

Đăng nhận xét