Continuous Integration (CI) và Jenkins là gì? Tại sao nhiều người lại nhắc đến nó trong xu thế công nghệ hiện nay? Bài viết này sẽ giới thiệu một cách tổng quan về 2 từ khóa phổ biến nhất hiện nay. #
Xem thêm:
Jenkins là gì? #
Jenkins là một công cụ mã nguồn mở, hỗ trợ việc tích hợp liên tục (Continuous Integration – CI) một cách linh hoạt. Công cụ này hỗ trợ việc xây dựng và kiểm thử phần mềm một cách liên tục và giám sát quá trình thực thi cũng như trạng thái của các tiến trình xử lý. Công cụ này giúp cho nhà phát triển dễ dàng tạo ra phần mềm với tính ổn định nhất có thể.
Sau khi hoàn tất quá trình phát triển, phần mềm cần phải trải qua các giai đoạn kiểm thử tại môi trường kiểm thử (staging – môi trường gần giống với môi trường thực tế khi đến tay người dùng) trước khi đến tay người dùng. Quá trình triển khai trên các môi trường có thể sẽ mất rất nhiều công đoạn, thời gian cho việc triển khai, cấu hình server, thiết lập cơ chế log,… Hầu hết các tác vụ này cần được tự động hóa để giảm thiểu chi phí trong quá trình triển khai đối với môi trường có tới hàng trăm thiết bị đầu cuối. Vì vậy, một công cụ hỗ trợ tự động hóa trong việc xây dựng, kiểm thử hệ thống trong môi trường staging và triển khai lên môi trường production.
Hudson từng là một công cụ mã nguồn mở nổi tiếng trong quá trình CI, được phát triển bởi Sun Microsystems. Và vào tháng 4/2009, Oracle đã mua lại công ty Sun Microsystems với mức giá 7,4 tỷ USD và đặt nền móng cho dự án mang tên Jenkins. Và tính tới thời điểm hiện tại, Jenkins đã trở thành một trong những công cụ phổ biến nhất trên thị trường hiện nay.
Continuous Integration (CI) là gì? #
Continuous Integration (CI) là quá trình tích hợp liên tục mã nguồn mới vào trong repository (nơi lưu trữ mã nguồn tập trung). Người dùng có thể dễ dàng phát hiện các vấn đề nếu có. Việc kiểm tra các lỗi trong mã nguồn giúp cho nhà phát triển có thể khắc phục lỗi sớm hơn. Việc kiểm thử mức đơn vị (Unit test – một loại kiểm thử phần mềm trong đó các đơn vị hay thành phần riêng lẻ của phần mềm được kiểm thử) đóng vai trò rất quan trọng cho việc kiểm tra mã nguồn trước khi tích hợp vào repository. Cách tốt nhất là xây dựng một máy chủ (server) chuyên thực hiện các tác vụ kiểm thử này để quá trình phát triển diễn ra song song cùng với quá trình kiểm thử. Continuous Integration (CI) không giúp loại bỏ các lỗi tồn tại trong mã nguồn, mà nó chỉ giúp nhà phát triển dể dàng tìm ra và loại bỏ sớm các lỗi.
Nếu có nhiều nhà phát triển cùng làm việc trên một dự án phần mềm, tình trạng mã nguồn bị xung đột (conflict) sẽ thường xuyên diễn ra, khó khăn trong việc phát hiện các lỗi còn tồn tại trong mã nguồn cũng như khắc phục chúng. Việc này dẫn đến quá trình triển khai, phát hành phần mềm diễn ra chậm hơn. Với việc áp dụng Continuous Integration (CI), nhà phát triển có thể tạo ra các tính năng mới để tích hợp phần mềm của mình nhanh hơn.
Jenkins là một trong những công cụ CI phổ biển và hiệu quả nhất trên thị trường hiện nay. Đây là một công cụ hỗ trợ đa nền tảng, giúp nhà phát triển có thể xây dựng và kiểm tra phần một cách liên tục, giúp nhà phát triển có thể tạo ra các phần mềm nhanh hơn.
Nguồn: Medium