Mục tiêu của một pipeline tốt
Một pipeline CI/CD tốt phải đáp ứng: an toàn, nhanh và có thể rollback bất kỳ lúc nào. Thời gian từ merge PR đến production không nên quá 10 phút.
Cấu trúc pipeline tại ANSOL
commit → lint → test → build image → push registry → deploy staging → smoke test → deploy prod
GitHub Actions workflow
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: pnpm test --coverage
- name: Build & push Docker image
run: |
docker build -t $IMAGE_TAG .
docker push $IMAGE_TAG
- name: Deploy via ArgoCD
run: argocd app sync my-app --timeout 300
GitOps với ArgoCD
Sử dụng ArgoCD để đảm bảo trạng thái cluster luôn khớp với git repository. Mọi thay đổi infrastructure đều có audit trail và rollback 1 click.
Kết quả
Pipeline hiện tại của ANSOL: build 3 phút, test 2 phút, deploy 3 phút = 8 phút tổng. Tần suất deploy tăng từ 2 lần/tuần lên 15 lần/ngày.