Đây là bài 5 của chương 6: Pipeline kiểm tra và build, thuộc khóa demo Docker & CI/CD. Nội dung được dùng để trải nghiệm cấu trúc chương trình học; hãy thực hành trên dữ liệu và môi trường thử nghiệm riêng. Trong dự án xuyên suốt, bạn sẽ xây dựng môi trường ứng dụng có web, database, pipeline kiểm tra và quy trình khôi phục.
Mục tiêu cụ thể
Pipeline có các bước kiểm tra, build và xuất artifact. Build một lần rồi triển khai cùng artifact giúp giảm khác biệt giữa môi trường kiểm tra và môi trường chạy.
Bộ câu hỏi tự kiểm tra
- Vì sao pipeline kiểm tra và build cần được xem xét riêng trong dự án Docker & CI/CD?
- Giải thích bằng lời của bạn: Pipeline có các bước kiểm tra, build và xuất artifact. Build một lần rồi triển khai cùng artifact giúp giảm khác biệt giữa môi trường kiểm tra và môi trường chạy.
- Phát hiện vấn đề trong tình huống: Một bước test thất bại nhưng pipeline vẫn tiếp tục tạo cảm giác an toàn giả. Kiểm tra exit code và không bỏ qua lỗi tùy tiện.
- Bạn sẽ giữ bằng chứng gì để chứng minh giải pháp hoạt động?
Tiêu chí chấm
- Test lỗi làm pipeline thất bại
- Artifact có định danh
- Không đưa credentials vào output
Bài mở rộng
Bắt đầu từ yêu cầu Thiết kế pipeline cho dự án mẫu, cố ý làm một test thất bại và xác nhận bước deploy không chạy. Thay đổi quy mô, độ dài dữ liệu hoặc thứ tự thao tác. Chọn đúng một biến thể phù hợp với chương rồi dự đoán tác động trước khi thử. Ví dụ là công cụ để hiểu nguyên lý, không phải đáp án duy nhất.
Gợi ý tự đánh giá
- Mức 1: nhắc lại được khái niệm nhưng chưa tự thực hiện.
- Mức 2: tự hoàn thành ví dụ và giải thích các bước.
- Mức 3: xử lý được trường hợp biên và giải thích lựa chọn khác.
Nếu chưa đạt mức 2, quay lại bài thực hành thay vì chỉ đọc đáp án. Khi đã đạt mức 3, ghi lại một cách giải khác và so sánh độ đơn giản, khả năng kiểm chứng và giới hạn của hai phương án.
Lưu bằng chứng
Tạo bảng gồm ca thử, đầu vào, kết quả mong đợi, kết quả thực tế và kết luận. Chỉ đánh dấu hoàn thành sau khi từng tiêu chí có kết quả quan sát được; bài tự kiểm tra này không tự chấm điểm và không cấp chứng chỉ.