DevOps

CI/CD Nedir? Küçük Ekipler İçin Otomatik Dağıtım Kurgusu

21.07.2026 · 3 dk okuma · 1 okunma

CI/CD Nedir? Küçük Ekipler İçin Otomatik Dağıtım Kurgusu

CI/CD, kod değişikliğinden yayına kadar olan yolu otomatikleştirme pratiğidir. Amaç sadece hız değildir; asıl kazanç, aynı adımların her seferinde aynı şekilde çalışmasıdır. Elle yapılan dağıtımda unutulan bir adım vardır; otomatik hatta yoktur.

CI/CD hattının aşamalarını gösteren özet görsel
Her adım başarısız olduğunda hat durur; bozuk kod canlıya ulaşamaz.

Neden gerekli? Elle dağıtımın gizli maliyeti

Elle yapılan bir yayın süreci genelde şöyledir: dosyaları aktar, göçleri çalıştır, önbelleği temizle, birkaç sayfayı elle kontrol et. Ortalama yirmi dakika sürer ve haftada iki kez yapılırsa ayda üç saat eder. Asıl maliyet ise burada değil, unutulan adımlarda ortaya çıkar: önbellek temizlenmediği için eski sürümün görünmesi, göç çalıştırılmadığı için tabloların uyumsuz kalması gibi.

Hattın temel adımları

  1. Tetikleme: Kod ana dala itildiğinde veya birleştirme isteği açıldığında hat otomatik başlar.
  2. Kurulum: Bağımlılıklar temiz bir ortamda kurulur. "Benim makinemde çalışıyordu" sorunu burada biter.
  3. Statik denetim: Kod stili ve statik analiz araçları çalışır; biçim tartışmaları koda değil araca bırakılır.
  4. Test: Birim ve entegrasyon testleri çalışır. Başarısız olursa hat durur ve birleştirme engellenir.
  5. Yapı: Dağıtılacak paket üretilir ve sürüm etiketiyle işaretlenir.
  6. Dağıtım: Test ortamına otomatik, canlıya onay sonrası gönderilir.

Küçük ekip için sade bir başlangıç

Hepsini birden kurmaya çalışmak yaygın bir hatadır. Aşamalı ilerleyin:

  • 1. hafta: Sadece testleri çalıştıran bir hat. Başka hiçbir şey yok.
  • 2-3. hafta: Kod stili denetimi ve statik analiz eklenir.
  • 1. ay: Test ortamına otomatik dağıtım.
  • 2. ay: Canlıya tek düğmeyle, onaylı dağıtım ve geri alma komutu.

Bu sıra, ekibin hatta güven duymasını sağlar. Güven oluşmadan otomatik canlı dağıtım kurmak, ilk hatada tüm sürecin terk edilmesine yol açar.

Ortam tutarlılığı ve konteynerler

Geliştirme makinesiyle sunucunun farklı sürümler çalıştırması, en çok zaman kaybettiren sorunlardan biridir. Konteyner kullanımı bu farkı ortadan kaldırır: uygulama, çalışması için gereken her şeyle birlikte paketlenir. Küçük projelerde konteyner zorunlu değildir, ancak PHP, veritabanı ve eklenti sürümlerinin bir dosyada tanımlı olması bile ciddi kolaylık sağlar.

Sırların hat içinde yönetimi

Otomatik dağıtım, sunucu erişim bilgilerine ihtiyaç duyar. Bu bilgiler asla depoda tutulmamalı, hattın kendi sır yönetimi kullanılmalıdır. Ayrıca dağıtım hesabına yalnızca gereken yetkiler verilmelidir; hattın tüm sunucuda tam yetkili olması, hattı ele geçiren birine tüm sistemi vermek demektir.

Geri alma (rollback) planı

İyi bir dağıtım süreci, geri alınabilir olduğu ölçüde iyidir. Bunun için üç şey gerekir: her sürümün etiketlenmiş olması, önceki sürümün sunucuda durması ve veritabanı değişikliklerinin geriye uyumlu yapılması.

Geriye uyumluluk pratikte şu demektir: yeni sürüm eski veritabanı şemasıyla, eski sürüm de yeni şemayla bir süre çalışabilmelidir. Sütun adı değiştirmek yerine yeni sütun ekleyip iki sürüm boyunca ikisini birden yazmak, geri dönüşü mümkün kılar.

Hattı hızlı tutmak

On beş dakika süren bir hat, geliştiricinin odağını dağıtır ve zamanla atlanmaya başlar. Hızlandırma yolları: bağımlılıkları önbelleğe almak, testleri paralel çalıştırmak, yavaş uçtan uca testleri yalnızca ana dalda koşmak ve yalnızca değişen bölümleri test etmek. Hedef, birleştirme öncesi hattın beş dakikanın altında bitmesidir.

Kalite kapıları: neyi engellemeli?

Hattın değeri, yanlış kodu durdurabilmesindedir. Ancak fazla katı kurallar ekibi hattı atlatmaya iter. Dengeyi kurmak için kuralları ikiye ayırın: engelleyenler ve uyaranlar.

Engelleyici olması gerekenler kısadır: testlerin geçmesi, projenin derlenmesi ve bilinen kritik güvenlik açığı bulunan bağımlılıkların olmaması. Uyarı seviyesinde kalabilecekler ise kod stili tercihleri, test kapsamı yüzdesindeki küçük düşüşler ve karmaşıklık ölçütleridir. Bu ayrım yapılmadığında, biçimsel bir uyarı yüzünden acil bir düzeltmenin yayınlanamaması gibi durumlar ortaya çıkar ve ekibin hatta olan güveni zedelenir.

Ölçün: DORA metrikleri

Sürecin işe yarayıp yaramadığını dört sayı gösterir: dağıtım sıklığı, değişikliğin yayına ulaşma süresi, başarısız dağıtım oranı ve arıza sonrası toparlanma süresi. Bu ölçütler ve arkasındaki araştırma için DORA yayınları iyi bir referanstır. Küçük ekiplerde bile bu dört sayıyı takip etmek, sürecin gerçekten iyileşip iyileşmediğini gösterir.

Sonuç

CI/CD, büyük ekiplerin lüksü değil küçük ekiplerin kaldıracıdır. Sadece testleri çalıştıran bir hatla başlayın, güven oluştukça otomasyonu genişletin ve her adımda geri alma yolunu açık tutun. Yayın yapmanın sıradanlaştığı gün, ekibin hızının kalıcı olarak arttığı gündür.

Paylaş:

Sık Sorulan Sorular

CI (sürekli entegrasyon) her değişikliğin otomatik derlenip test edilmesidir. CD ise testi geçen sürümün otomatik olarak dağıtıma hazırlanması veya doğrudan yayınlanmasıdır. CI olmadan CD tehlikelidir.

Tam tersine, küçük ekiplerde daha çok kazandırır çünkü elle yapılan işleri üstlenecek ayrı bir operasyon ekibi yoktur. Sadece testleri çalıştıran basit bir hat bile üretimdeki hataların önemli kısmını keser.

Kısa süreli bir bakım penceresi küçük projelerde kabul edilebilir. Kesintisiz dağıtım isteniyorsa yeni sürüm ayrı bir dizine kurulup bağlantı (symlink) değiştirilerek geçiş yapılabilir.

Evet, ancak geri alınabilir olmalıdır. Sütun silme gibi geri dönüşü olmayan işlemler iki aşamaya bölünmeli: önce kullanımdan kaldırılmalı, birkaç sürüm sonra silinmelidir.