Đợt tháng 3 vừa rồi, mình có lên kế hoạch tổ chức một buổi seminar nho nhỏ để chia sẻ với các bạn sinh viên về mô hình tích hợp liên tục (continuous integration), gọi một cách ngắn gọn là mô hình CI/CD trong phát triển và triển khai phần mềm. Rất không may là đợt rồi xảy ra dịch Covid-19, khiến các kế hoạch bị hủy bỏ.

Bạn đang xem: Ci/cd là gì

Vì không thể tổ chức seminar nên mình đành để tài liệu ở đây và trình bày ngắn gọn nội dung trong bài post này. Hi vọng có thể chia sẻ với mọi người chút kiến thức hữu ích.

Tóm lược nội dung

Ban đầu, mình định tổ chức buổi chia sẻ dạng trình chiếu và tương tác, do đó tài liệu mình soạn ra ở dạng file trình bày (slide). Phần nội dung slide trình bày được để ở mục dưới, trong phần này mình sẽ tóm tắt một vài ý chính trong bài.

Một số ý chính của nội dung chia sẻ:

Lý do ra đời của hệ thống tích hợp liên tục: không phải ngẫu nhiên mà người ta nghĩ ra trò CI/CD trong phát triển phần mềm, cái gì cũng có lí do của nó cả.Mô hình hoạt động của một hệ thống CI/CD: khi biết mình gặp vấn đề gì rồi, người ta sẽ nghĩ ra một cách thức nào đó để giải quyết nó, mô hình CI/CD là một trong số đó. Phần này mình cũng đề cập tới một vài lợi ích và sự đánh đổi khi theo đuổi mô hình này.

Xem thêm: 3d Touch Là Gì – Mẹo Sử Dụng Touch 3d Iphone Hiệu Quả

Triển khai CI/CD với CircleCI: Khi đã nghĩ ra được mô hình giải quyết, người ta phải tạo ra công cụ để thực hiện điều đó, và người ta đã tạo ra CircleCI. Lưu ý là: CircleCI chỉ là 1 công cụ để thực hiện mô hình CI/CD, ngoài ra còn nhiều công cụ khác lắm: Jenkins, JavisCI, … Hướng dẫn và demo triển khai CI với CircleCI

Mình có để link mã nguồn demo CircleCI ở cuối bài, các bạn có thể tham khảo.

Mình thường sử dụng CI/CD trong trường hợp nào

Triển khai liên tục (CD: continuous deployment) là một vấn đề khó, hoặc rất khó. Nó không chỉ liên quan tới cách setup hệ thống, mà còn có thể liên quan tới khách hàng sử dụng, dữ liệu người dùng, downtime khi update, … Vậy nên trong hầu hết trường hợp, mình chỉ sử dụng tích hợp liên tục (CI).

Một số trường hợp có thể dùng CI:

Cài đặt các hệ thống kiểm tra coding standards (kiểm tra lint, style, khi làm việc đội nhóm.Thực thi automation test (unit test, configuration test, e2e test, …) mỗi khi source code có sự thay đổi.Đóng gói phần mềm (build file apk, file cài đặt, …)…

Nội dung trình bày

Đây là slide nội dung chính về mô hình CI/CD và các khái niệm cơ bản khi triển khai với CircleCI: INTRODUCTION TO CI/CD AND CIRCELCI.

Xem thêm: Nghĩa của từ perks là gì, nghĩa của từ perk

*

(Rất xin lỗi các bạn vì mình đã để link dẫn tới bài presentation trên Google Docs, nhưng mình không biết cách để embed vào bài viết, bạn nào biết cách thì chỉ mình với nhé. Rất cảm ơn các bạn)

Mã nguồn demo:

Nếu các bạn thấy hữu ích, đừng ngại ngần mà nhấn sao (Star) trên github cho mình nhé. Hoặc kiến thức mình có điều gì sai, nhờ các bạn chỉ ra cho mình điều đúng hơn với nhé.

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