CI/CD pipeline, “build alıp deploy eden script” değildir; yazılım teslimatının güvenlik kapısıdır. İyi tasarlanmış bir pipeline; hatayı erken yakalar, release riskini düşürür ve incident sayısını azaltır.
Bu yazıda CI/CD’yi dört parçaya ayırarak ele alacağım: build, test, gate (policy) ve deploy. Örnekleri GitHub Actions üzerinden vereceğim ama prensipler genel.
1) Hedef: hızlı geri bildirim + güvenli release
Pipeline’ın başarı metrikleri:
- PR lead time
- Prod hata oranı
- Rollback süresi
- Kritik güvenlik bulgularının prod’a sızmaması
2) Build: deterministik artefact üret
- Lockfile zorunlu
- Build cache stratejisi
- Artefact bir kez üretilir, ortamlar arası promote edilir
3) Test: piramit + paralel
- Unit test hızlı ve çok
- Integration test kritik akışlarda
- E2E az ama en kritik senaryolarda
4) Gate: kalite + security kapıları
Minimum gate seti:
- Lint/typecheck
- Test suite
- Secret scanning
- Dependency audit (SCA)
- Container scan (imaj varsa)
5) Deploy: progressive delivery ve rollback
- Canary / ring rollout
- Metric bazlı rollback
- Feature flag ile risk azaltma
Sonuç
CI/CD iyi tasarlanırsa hız ve güvenlik birbirine düşman olmaz. Deterministik build + doğru gate + progressive deploy ile üretimde sürprizler azalır.