CI/CD Nedir?
Yayın: · Son güncelleme:
CI/CD Nedir? Kısaca
CI/CD, yazılımdaki değişikliklerin otomatik olarak birleştirilip test edildiği (sürekli entegrasyon) ve yayına hazır hâle getirilip dağıtıldığı (sürekli teslimat ya da dağıtım) süreçlerin bütünüdür.

CI/CD nedir?
CI/CD iki parçalı bir kısaltmadır. CI, "Continuous Integration" yani sürekli entegrasyon demektir. CD ise "Continuous Delivery" (sürekli teslimat) ya da "Continuous Deployment" (sürekli dağıtım) anlamına gelir.
Fikir şudur: kod değişikliklerini biriktirip ayda bir büyük sürüm çıkarmak yerine, küçük değişiklikleri sık sık ve otomatik olarak test edip yayına almak. Riskler küçülür, hatalar erken yakalanır.
Nasıl çalışır?
Bir geliştirici kodunu depoya gönderdiğinde süreç kendiliğinden başlar. Önce kod derlenir, ardından otomatik testler çalışır. Testler geçerse paket hazırlanır ve test ortamına kurulur.
Sürekli teslimatta canlıya çıkış için son bir onay düğmesi vardır. Sürekli dağıtımda ise testleri geçen her değişiklik insan müdahalesi olmadan canlıya çıkar. Örneğin bir ekip ana dala yaptığı her birleştirmenin on beş dakika içinde müşterilere ulaşmasını sağlayabilir. GitHub Actions, GitLab CI ve Jenkins bu iş için yaygın araçlardır.
Faydaları ve dikkat edilecekler
En büyük kazanç güvendir. Her değişiklik aynı kontrollerden geçtiği için "bende çalışıyordu" türünden sürprizler azalır. Elle yapılan kurulum adımlarındaki unutkanlık hataları da ortadan kalkar.
Ancak CI/CD, testler kadar iyidir. Test kapsamı zayıfsa otomatik hat, hatalı kodu da hızla canlıya taşır. Başlarken küçük adımlarla ilerleyin: önce her push'ta testleri çalıştıran basit bir hat kurun, otomatik dağıtımı ardından ekleyin.
Sıkça Sorulan Sorular
CI ile CD arasındaki fark nedir?
CI, kodun sık sık birleştirilip otomatik test edilmesidir. CD ise test edilen kodun yayına hazır tutulması ya da doğrudan canlıya dağıtılmasıdır. CI genelde CD'nin ilk adımıdır.
Küçük bir proje için CI/CD gerekir mi?
Zorunlu değildir ama faydalıdır. Tek kişilik bir projede bile her değişiklikte testleri otomatik çalıştıran basit bir hat, hataları erkenden yakalamanızı sağlar.