🔥 GitLab CI – Bí mật đứng sau DevOps Pipeline hiệu quả
Anh em DevOps/Automation chắc hẳn đã nghe câu nói quen thuộc: “The key to the pipelines is the pipeline itself.” 🚀
Trong GitLab CI, pipeline chính là “xương sống” giúp chúng ta tự động hóa build, test, validate và deploy. Nếu một bước trong pipeline fail → toàn bộ pipeline sẽ fail. Vì vậy, thiết kế pipeline rõ ràng, logic, dễ debug là yếu tố sống còn.
📌 Nguyên tắc cơ bản khi xây pipeline
👉 Một job trong GitLab CI có cấu trúc như sau:
stages: - lint - test - deploy lint_job: stage: lint script: - pylint my_code/ - ansible-lint playbooks/ test_job: stage: test script: - pytest deploy_job: stage: deploy script: - ./deploy.sh
🚨 Lưu ý quan trọng
👉 Nếu anh em đang bắt đầu với GitLab CI, hãy thử viết pipeline nhỏ gọn gồm 3 stage: lint → test → deploy. Sau đó mở rộng dần với build container, security scan, artifact upload… để pipeline ngày càng mạnh mẽ.
Anh em DevOps/Automation chắc hẳn đã nghe câu nói quen thuộc: “The key to the pipelines is the pipeline itself.” 🚀
Trong GitLab CI, pipeline chính là “xương sống” giúp chúng ta tự động hóa build, test, validate và deploy. Nếu một bước trong pipeline fail → toàn bộ pipeline sẽ fail. Vì vậy, thiết kế pipeline rõ ràng, logic, dễ debug là yếu tố sống còn.
📌 Nguyên tắc cơ bản khi xây pipeline
- Giữ mọi thứ đơn giản: Pipeline càng phức tạp, troubleshoot càng khó.
- Nhóm task theo tính chất: Ví dụ, linting code → gom Python + Ansible playbook vào cùng một stage thay vì tách nhỏ.
- Định nghĩa pipeline bằng YAML: Tất cả nằm trong file .gitlab-ci.yml ở root của repo.
- .gitlab-ci.yml → trái tim của pipeline.
- Jobs → các tác vụ (task) cụ thể, ví dụ: build, test, lint.
- Stages → định nghĩa thứ tự chạy jobs. Stage sau chỉ chạy khi stage trước thành công.
👉 Một job trong GitLab CI có cấu trúc như sau:
stages: - lint - test - deploy lint_job: stage: lint script: - pylint my_code/ - ansible-lint playbooks/ test_job: stage: test script: - pytest deploy_job: stage: deploy script: - ./deploy.sh
🚨 Lưu ý quan trọng
- Mỗi job phải có tên unique.
- Một số keyword không được dùng làm job name: before_script, after_script, stages, services, image.
- Tài liệu đầy đủ: GitLab CI YAML Reference.
👉 Nếu anh em đang bắt đầu với GitLab CI, hãy thử viết pipeline nhỏ gọn gồm 3 stage: lint → test → deploy. Sau đó mở rộng dần với build container, security scan, artifact upload… để pipeline ngày càng mạnh mẽ.