Bài viết sẽ đưa ra một mô hình tổng quát CI/CD cho hệ thống sử dụng Docker + Kubernetes + Jenkins + Linux.

Đầu tiên, mình sẽ nhắc lại khái niệm về CI/CD

CI/CD là một bộ đôi công việc, bao gồm CI (Continuous Integration) và CD (Continuous Delivery), ý nói là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery).

Giải thích chi tiết các bước:

1. Developer push code tới git repository

2. Jenkins định kỳ kiểm tra, nếu có code mới thì thực hiện pull code

3. Jenkins chạy Unit Test, nếu pass thì thực hiện bước tiếp theo

4. Jenkins gọi Docker để build image.

5. Sau khi build xong, Jenkins push image tới Docker Registry

6. Jenkins thực hiện remote tới Kubernetes Cluster, để pull image và tự động update images mới nhất vào các container đang chạy.

Các bước của mô hình trên (trừ bước 1) đều được Jenkins thực hiện một cách tự động.