Xin chào các bạn. Nếu các bạn đang làm việc ở một môi trường phát triển phần mềm chuyên nghiệp và theo phương pháp Agile, các bạn chắc hẳn đã nghe tới từ khóa Continuous Integration (CI) – Tích hợp liên tục. Vậy nó là gì và thực hiện nó ra sao. Trong series này của mình sẽ:Bài 1: Giới thiệu về CI và Jenkins1. Giới thiệu cơ bản về CI, các ưu điểm và khó khăn khi triển khai CI trong phát triển phần mềm2. Giới thiệu về Jenkins – một open source cho CI server, vai trò và lợi ích

Bài 2: Cài đặt và cấu hình CI1. Hướng dẫn cài đặt2. Cấu hình3. Kết hợp với một project thực tế: để xem Jenkins thực sự làm việc như thế nào và lợi ích thực tiện mà nó đem lại

Bài 3: (Cập nhật sau)

I. Continuous Integration (CI) – Tích hợp liên tục

1. Định nghĩa

Tích hợp liên tục (CI) là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm tích hợp công việc thường xuyên. Mỗi ngày, các thành viên đều phải theo dõi và phát triển công việc của họ ít nhất 1 lần. Việc này sẽ được một nhóm khác kiểm tra tự động, nhóm này sẽ tiền hành kiểm thử truy hồi để phát hiện lỗi nhanh nhất có thể. Cả nhóm thấy rằng phương pháp tiếp cận này giúp giảm bớt vấn đề về tích hợp hơn và cho phép phát triển phần mềm gắn kết nhanh hơn

2. Minh họa

*

Các developer thực hiện các ticket và đẩy code lên thư mực nơi sẽ lưu giữ code của Project.Hệ thống CI sẽ lắng nghe và thực hiện kéo code về (server CI), build rồi test code.Trong trường hợp build, test thất bại, các thành viên trong team sẽ nhìn thấy ngay được lỗi phát sinh và các developer sẽ chịu trách nhiệm sửa lỗi và đẩy code sửa lỗi đó lên repo.

Bạn đang xem: Jenkins là gì

3. Các đặc điểm thực tiễn của CI

Quản lý phiên bản (source control and version control ).Tự động build bao gồm test.Đôi ngũ phát triển thường xuyên chuyển (commit) source về nơi lưu trữ chính (mainline).Mỗi khi code có thay đổi sẽ build lại (mainline) thông qua build server.Báo lỗi cho người lập trình gây lỗi và quản lý dự án.Phát hành phiên bản hoàn chỉnh cho khách hàng khi không còn lỗi.Tự động phân phối phiên bản mới đến khách hàng.Mọi người có thể nhìn thấy những gì đã xảy ra (thay đổi, lỗi…) để xem xét và giải quyết kịp thời.

Tuy nhiên, để triên khai hệ thống tích hợp liên tục, ta sẽ gặp những khó khăn như sau:

Cần thời gian thiết lập hệ thống ban đầu.Đòi hỏi quản lý dự án, người lập trình, người kiểm định phải am hiểu mô hình phát triển phần mềm Agile, hệ thống tích hợp CI, cách sử dụng các công cụ hỗ trợ cho Agile và CI.Chi phí thiết bị phần cứng (các server cho CI).

4. Lợi ích của Tích hợp liên tục

Để trả lời cho câu hỏi tại sao chúng ta phải sử dụng Hệ thống tích hợp liên tục, ta sẽ đưa ra vài lợi ích chính như sau

Giảm thiểu rủi ro do lỗi được phát hiện sớm.Giảm thiểu sự lặp lại cho các quá trìnhTạo phần mềm có giá trị sử dụng sớm nhất có thể và sẳn sàng triểnkhai mọi lúc mọi nơi.Cung cấp cái nhìn xuyên suốt tổng quan và cụ thể cho từng giai đoạn.Nâng cao kỹ năng của đội ngũ nhân viên phát triển phần mềm.Cải thiện chất lượng phần mềm…

Xem thêm: Content Là Gì – Viết Cách Xây Dựng Content Thu Hút

5. Các công cụ sử dụng

1. Giới thiệu

Là một ứng dụng web application mã nguồn mở (được cộng đồng phát triển theo giấy phép MIT) đóng vai trò máy chủ build & test của hệ thống tích hợp liên tục.Jenkins được viết bằng Java nên Jenkins có thể kết hợp được với hầu hết các công cụ khác của hệ thống tích hợp liên tục với nhiều nền tảng khác nhau và đặc biệt là tảngmobi application (android).Tiền thân là Hudson được viết bởi Kosuke Kawaguchi tại Sun, kể từ khi Sun được mualại bởi Oracle vào năm 2010, một bộ phận phát triển Hudson đã tách ra phát triển riêngvà được đặt tên là Jenkins.Được sử dụng rộng rãi và được phát triển cải tiến liên tục bởi cộng đồng mã nguồn mởĐạt nhiều giải thưởng :InfoWorld Bossies Award, 2011 O”Reilly Open-Source Award, 2011ALM&SCM, SDTimes 100, 2010, 2011 ,GlassFish Community Innovation Award 2008, Duke”sChoice Award 2008Được các tổ chức lớn tin dùng: Ebay,Apache, NASA,Boeing,Mozilla, Linked in,…

2. Đặc điểm

Dễ dàng cài đặt và sử dụng.Đa nền tảng.Hỗ trợ cho nhiều công nghệ phát triển phần mềm.Được sử dụng rộng rãi.Dễ mở rộng.Dễ dàng liên kết với các công cụ khác của hệ thống tích hợp liên tục thông qua các plug in.…Miễn phí.

3. Vai trò của Jenkins trong Hệ thống tích hợp liên tục

Là trái tim của CI – Là CI server (build & test server) giữ vị trí trung tâm “trái tim” cho mọi hoạt động của hệ thống.

*

-CI giúp khép kín quy trình phát triển phần mềm một cách tự động

Nhờ vào việc hỗ trợ đa nền tảng, công nghệJenkins giúp khép kín quy trình phát triển phầnmềm một cách tự động theo mô hình Agile nóichung và hệ thống tích hợp liên tục nói riêng.Với hơn 400 plugin và được phát triển thêm khôngngừng Jenkins đã trở thành trợ thủ đắc lực cho hệthống CI.

Xem thêm: Deal Là Gì – Nghĩa Của Từ Deal

*

4. Lợi ích mà Jenkins mang lại

Tất cả với Jenkins hầu như là tự động. => Giảm thời gian và chi phí.Nâng cao năng lực nhân viênCó thể tóm gọn lợi ích Jenkins mang lại là FESS.* Faster.* Easier.* Safer.* Smarter.

III. Lời kết

Phần một của series này mình sẽ chỉ giới thiệu sơ qua về CI và Jenkins như vậy. Các bạn có thể tham khảo thêm trong cuốn Jenkins – The Definitive Guide tại link dưới đây.http://www.bogotobogo.com/DevOps/Jenkins/images/Intro_install/jenkins-the-definitive-guide.pdf

Trong bài 2, mình sẽ đi sâu hơi về cài đặt và cấu hình Jenkins, kết hợp với một project thực tế để xem Jenkins thực sự làm việc như thế nào và lợi ích thực tiện mà nó đem lại. Các bạn chú ý đón đọc nhé.Cảm ơn vì đã theo dõi

Chuyên mục: Hỏi Đáp