Bọn em chưa có GitOps nên deploy tạm tay – mà merge vào dev rồi là được mà anh…
Team tự hào “
chúng tôi dùng EKS, CI/CD xịn lắm!
”, nhưng audit thì thấy dev mở terminal, chạy kubectl apply -f từ laptop. Pipeline? Không có. GitOps? Mơ đi. Deploy như chơi roulette, may thì chạy, xui thì production sập.
![]() |
Deploy EKS bằng kubectl apply từ laptop của dev. |
Thực trạng: Deploy thủ công
Thực trạng:
- Dev viết manifest YAML, push lên Git, rồi kubectl apply từ máy local.
- Không dùng GitOps tool như ArgoCD, Flux, hay Jenkins X.
- Không có version tracking, không biết manifest nào đang chạy trên cluster.
Hệ quả:
- Deploy không đồng bộ: Dev A apply file cũ, ghi đè file mới của Dev B.
- Không trace được: Production chạy manifest nào? Không ai biết.
- Rủi ro lỗi: Apply sai file, sai namespace, làm sập môi trường.
Giải pháp: GitOps và pipeline
Để deploy “xịn”:
- Dùng GitOps: Cấu hình ArgoCD/Flux để tự động sync manifest từ Git repo.
- Pipeline CI/CD: Dùng GitHub Actions/GitLab CI để build image, push, và trigger ArgoCD.
- Version tracking: Lưu manifest theo version trong Git, dùng tag hoặc branch.
Ví dụ: Pipeline GitHub Actions:
name: Deploy to EKS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build and Push Image
run: |
docker build -t my-image .
docker push my-image
- name: Trigger ArgoCD
run: argocd app sync my-app
🎯 Tóm lại: Deploy thủ công là “vé mời” thảm họa. Dùng GitOps và pipeline CI/CD để EKS deploy tự động, trace dễ, và an toàn.
Đăng nhận xét