FresherKỹ thuậtCI/CD
Sự khác nhau giữa CI, continuous delivery và continuous deployment là gì?
Thử trả lời trước
Đáp án mẫu
Ba thuật ngữ này mô tả mức độ tự động hoá sau khi lập trình viên commit code.
- Continuous integration (CI): lập trình viên merge các thay đổi nhỏ vào nhánh chính thường xuyên, và mỗi thay đổi kích hoạt tự động build và chạy test. Mục tiêu là phát hiện sớm lỗi tích hợp.
- Continuous delivery: mọi thay đổi vượt qua pipeline đều được build thành artifact sẵn sàng phát hành và có thể deploy bất cứ lúc nào, nhưng một người sẽ bấm nút để lên production.
- Continuous deployment: bước thủ công cuối cùng bị bỏ. Mọi thay đổi vượt qua toàn bộ kiểm tra tự động đều tự động lên production.
CI là nền tảng của cả hai. Continuous deployment đòi hỏi test tự động mạnh, monitoring và cách rollback nhanh, vì không ai duyệt tay từng bản phát hành.
Ý chính
- CI: merge thường xuyên, mỗi thay đổi đều tự động build và test
- Continuous delivery: luôn sẵn sàng phát hành, deploy production do con người quyết định
- Continuous deployment: mọi thay đổi đạt yêu cầu đều tự động ship
- Tự động deploy cần có test, monitoring và rollback nhanh
Câu hỏi nối tiếp thường gặp
- Bạn đặt những stage nào trong pipeline CI và theo thứ tự nào?
- Khi nào bạn chọn continuous delivery thay vì continuous deployment?
Lỗi thường gặp
- Dùng continuous delivery và continuous deployment như hai từ đồng nghĩa
- Gọi là CI trong khi nhánh sống nhiều tuần mới được merge