Uygulama Geliştirmede Continuous Deployment: Özü, Aşamaları ve Çalışma Prensibi

Yazar: IT Sectr Yayınlanma: 2026-04-11 Okuma süresi: 8 dk

Continuous Deployment, tüm doğrulama aşamalarını geçtikten sonra her kod değişikliğinin otomatik olarak production'a dağıtılması uygulamasıdır. Sürümün manuel onay gerektirdiği Continuous Delivery'nin aksine, bu model dağıtım sürecinden insan faktörünü ortadan kaldırır. Puppet State of DevOps, 2025 raporuna göre, CD yapılandırmış ekipler geleneksel yaklaşımlara kıyasla 106 kat daha sık dağıtım gerçekleştirmektedir.

Ana Noktalar

  • Continuous Deployment, çıkışın tam otomasyonudur: testleri başarıyla geçen her commit, insan müdahalesi olmadan production ortamına ulaşır.
  • Continuous Delivery'den temel farkı, sürüm öncesinde manuel bir geçit olmamasıdır, bu da değişikliklerin son kullanıcılara iletilmesini hızlandırır.
  • Temel aşamalar derleme, birim testi, entegrasyon testi, güvenlik kontrolü ve dağıtımı içerir.
  • Uygulama için olgun bir test kültürü, izleme altyapısı ve geri alma (rollback) mekanizmaları gereklidir.
  • Ana faydalar — özelliklerin pazara çıkış süresinin kısalması, hızlı hata düzeltme ve küçük artımlı değişiklikler sayesinde risklerin azalması.

Continuous Deployment Nedir

Continuous Deployment, tüm otomatik kontrolleri geçen her kod değişikliğinin otomatik olarak production ortamına dağıtıldığı bir geliştirme metodolojisidir. Süreç manuel onay gerektirmez — kod derleme, test ve analizi geçerse hemen kullanıcılara ulaşır.

CD kavramı DevOps kültürüyle yakından ilişkilidir ve yüksek derecede otomasyon gerektirir. Ekip testlerine güvenmeli ve sorun durumunda hızlı geri alma mekanizmalarına sahip olmalıdır. Bu koşullar olmadan otomatik dağıtım riskli hale gelir.

Google Cloud DORA, 2025'e göre, elit performans gösterenler (elite performers) günde birkaç kez kod dağıtırken, düşük performanslı ekipler ayda bir kez dağıtım yapar. Bu fark, tam olarak Continuous Deployment ve ilgili CI/CD uygulamaları sayesinde elde edilir.

Continuous Deployment Geliştirme Sürecini Nasıl Değiştirir

Geleneksel yaklaşımda sürümler birkaç haftada veya ayda bir gerçekleşir. Geliştiriciler değişiklikleri biriktirir, bu da karmaşık birleştirmelere ve çakışmalara yol açar. CD bu modeli tersine çevirir: değişiklikler tamamlandıktan hemen sonra teker teker çıkar. Bu, her sürümün karmaşıklığını azaltır ve sorun bulmayı kolaylaştırır.

Ekip ve Altyapı Gereksinimleri

CD uygulaması için, kullanıcılardan tamamlanmamış işlevselliği gizlemeye izin veren özellik bayrakları (feature toggles) gereklidir. Bunlar olmadan geliştiriciler bitmemiş kodu güvenli bir şekilde birleştiremez. Kapsamlı izleme ve uyarı sistemi de gereklidir — bir dağıtım ortamı bozarsa, ekip dakikalar içinde haberdar olmalıdır.

QA Otomasyonunun Rolü

CD'de kalite güvencesi ayrı bir aşama değil, sürekli bir süreçtir. Her commit yüzlerce veya binlerce otomatik testten geçer: birim, entegrasyon, UI ve ekran görüntüsü testleri. Tek bir test başarısız olursa — düzeltilene kadar dağıtım engellenir.

CD vs CI vs Continuous Delivery

CI, CD ve Continuous Delivery terimleri sıklıkla karıştırılır, ancak kod teslim otomasyonunun farklı aşamalarını tanımlarlar. Doğru pipeline'ı oluşturmak için farklılıkları anlamak kritik öneme sahiptir.

UygulamaNe yaparSonuç
CI (Sürekli Entegrasyon)Her commit'te otomatik derleme ve testKod her zaman çalışır durumda
Continuous DeliveryCI + otomatik sürüm hazırlığı (manuel dağıtım tetikleyicisi)Sürüm her an dağıtıma hazır
Continuous DeploymentContinuous Delivery + production'a otomatik dağıtımDeğişiklikler gecikmeden kullanıcılara ulaşır

Sürekli Entegrasyon (CI) her iki modelin de temelidir. CI olmadan ne Continuous Delivery ne de CD mümkündür. CI, kodun bozuk olmadığını ve sonraki aşamalar için hazır olduğunu garanti eder.

Continuous Delivery, ekibin her an bir düğmeye basarak sürüm çıkarabilmesidir. CD'den farkı, Continuous Delivery'nin nihai kararı bir kişiye (Sürüm Yöneticisi veya DevOps mühendisi) bırakmasıdır. CD bu geçidi tamamen ortadan kaldırır.

CD Yerine Continuous Delivery Ne Zaman Seçilmeli

Düzenleyici gereksinimleri (fintek, sağlık) olan projeler veya her sürümün zorunlu manuel incelemeden (paydaş onayı) geçtiği durumlar için, tam otomasyon olmadan Continuous Delivery daha güvenli bir seçimdir. CD, SaaS ürünleri ve hızlı güncelleme döngüsüne sahip mobil uygulamalar için en iyi şekilde çalışır.

Continuous Deployment Pipeline Aşamaları

Tam bir CD pipeline'ı birkaç ardışık aşama içerir. Her aşama kusurları filtreler — bir aşama başarıyla geçilirse kod bir sonrakine geçer. Bir mobil uygulama için tipik bir zinciri inceleyelim.

1. Commit tetikleyicisi ve derleme

Her şey depoya push ile başlar. Bir CI sunucusu (örneğin, GitHub Actions veya Jenkins) bir webhook bildirimi alır, kodun en son sürümünü yükler ve derlemeyi başlatır. Android için bu `./gradlew assembleRelease`, iOS için — `xcodebuild -workspace App.xcworkspace -scheme App -configuration Release` olabilir.

yaml
name: CI Pipeline
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build Android APK
        run: ./gradlew assembleRelease
      - name: Run Unit Tests
        run: ./gradlew test DebugUnitTestCoverage

2. Otomatik testler

Başarılı derlemeden sonra testler çalıştırılır: birim, entegrasyon, UI ve statik kod analizi. Kalite kontrol sistemi kod kapsamını, güvenlik açıklarının varlığını ve kod stili uyumunu kontrol eder. Eşikler karşılanmazsa — pipeline durur.

3. Staging'e dağıtım

Tüm testler geçilirse, yapıt otomatik olarak staging ortamına dağıtılır. Orada uçtan uca testler ve performans testleri gerçekleştirilir. Bu aşamada harici hizmetlerle entegrasyon kontrolleri bağlanabilir.

4. Canary veya blue-green dağıtım

Son aşama production'a çıkıştır. Riskleri azaltmak için canary sürümleri (canary releases) kullanılır, yeni sürüm önce kullanıcıların küçük bir yüzdesine sunulur. Metrikler stabilse — trafik kademeli olarak %100'e çıkarılır.

groovy
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh './gradlew assembleRelease'
            }
        }
        stage('Test') {
            steps {
                sh './gradlew test'
            }
        }
        stage('Deploy') {
            steps {
                sh './deploy.sh --canary 5%'
            }
        }
    }
    post {
        failure {
            notify 'devops-team'
        }
    }
}

Continuous Deployment Araçları

Piyasada CD'yi destekleyen birçok platform bulunmaktadır. Seçim, teknoloji yığınına, ekip büyüklüğüne ve altyapı bütçesine bağlıdır. Ana kategorilere ve temsilcilerine bakalım.

Bulut CI/CD Platformları

GitHub Actions, GitLab CI/CD, CircleCI ve Bitbucket Pipelines, yerleşik pipeline desteği sunar. Bulut kayıt defterleriyle (Docker Hub, GitHub Container Registry) entegre olur ve AWS, Google Cloud, Azure ve Firebase App Distribution'a dağıtımı destekler.

Özelleşmiş CD Araçları

Spinnaker, ArgoCD ve Flux, yalnızca CD'ye odaklanmış araçlardır. Blue-green, canary, rolling update gibi gelişmiş dağıtım stratejileri sunar. ArgoCD, altyapı durumunun bir Git deposunda tanımlandığı GitOps yaklaşımı sayesinde Kubernetes ekosisteminde özellikle popülerdir.

Mobil Geliştirme Araçları

Fastlane, App Store ve Google Play'e derleme ve yayınlamayı otomatikleştirmek için fiili standarttır. CI sunucularıyla entegre olur ve kod imzalama, ekran görüntüleri, TestFlight ve Internal App Sharing aracılığıyla beta dağıtımını yönetir. Bitrise ve Codemagic, mobil uygulamalar için özelleşmiş CI/CD araçlarıdır.

ruby
# Fastfile — Fastlane yapılandırması
default_platform(:android)

platform :android do
    desc "Deploy a new version to Google Play"
    lane :deploy do
        gradle(task: 'assembleRelease')
        upload_to_play_store(
            track: 'production',
            release_status: 'completed'
        )
    end
end

CD Uygulamasında En İyi Uygulamalar

Continuous Deployment'a geçiş, yalnızca teknik hazırlık değil, aynı zamanda ekip kültüründe değişiklikler gerektirir. Doğru uygulamalar olmadan, otomatik dağıtım sık sık olaylara ve sürece olan güvenin azalmasına yol açabilir.

Özellik Bayrakları ve A/B Testi

Özellik bayrakları (feature flags), tamamlanmamış kodun production'a çıkarılmasını ancak kullanıcılardan gizlenmesini sağlar. Bu CD'nin temelidir — geliştiriciler bir özelliğin tamamlanmasını beklemeden istedikleri zaman değişiklikleri birleştirebilir. LaunchDarkly, Flagsmith ve ConfigCat, özellik bayraklarını yönetmek için popüler platformlardır.

İzleme ve Gözlemlenebilirlik

Metrikler olmadan dağıtım başarısını değerlendirmek imkansızdır. Temel metrikler: gecikme süresi (latency), hata oranı (error rate), iş hacmi (throughput). Her sürümü gerçek zamanlı olarak izlemek için Datadog, New Relic veya Grafana gibi araçları kullanın.

Otomatik Geri Alma (auto-rollback)

CD'nin kritik bir uygulaması otomatik geri alma mekanizmasıdır. Dağıtımdan sonra metrikler kötüleşirse (hata oranı bir eşiği aşarsa), sistem otomatik olarak önceki sürüme dönmelidir. Bu, ortalama kurtarma süresini (MTTR) saatlerden dakikalara düşürür.

  • Metrikler için eşikler belirleyin — örneğin, hata oranı > %1 veya gecikme > 500ms
  • Uyarı sistemi kurun — Slack, PagerDuty, OpsGenie'de bildirimler
  • Her olaydan sonra post-mortem yazın — suçlu aramadan, sadece gerçekler ve iyileştirmeler

Pipeline Güvenliği

CD pipeline'ı değerli bir varlık ve potansiyel bir saldırı hedefidir. Gizli bilgi yönetimi (Vault, AWS Secrets Manager) kullanın, yapıtları ve konteynerleri imzalayın, bağımlılıkları güvenlik açıklarına karşı tarayın (Dependabot, Snyk). Erişim anahtarlarını asla depoda saklamayın.

Sıkça Sorulan Sorular

Continuous Deployment, Continuous Delivery'den nasıl farklıdır?

Continuous Delivery bir sürüm hazırlar ancak production'a dağıtım için manuel onay gerektirir. Continuous Deployment bu adımı da otomatikleştirir — tüm kontrolleri geçtikten sonra kod insan müdahalesi olmadan kullanıcılara ulaşır.

CD özellik bayrakları olmadan uygulanabilir mi?

Teknik olarak evet, ancak süreci önemli ölçüde karmaşıklaştırır. Özellik bayrakları olmadan geliştiriciler tamamlanmamış kodu birleştiremez, bu da çalışmayı yavaşlatır ve birleştirme çakışmaları riskini artırır.

CD uygulaması ne kadar sürer?

Sıfırdan başlayan küçük bir ekip için — 2 ila 6 ay. Süre, mevcut otomasyon seviyesine, proje karmaşıklığına ve ekibin süreç değişikliklerine hazır olmasına bağlıdır.

CD uygulamasından sonra hangi metrikler izlenmeli?

Temel DORA metrikleri: dağıtım sıklığı (deploy frequency), değişikliklerin teslim süresi (lead time), ortalama kurtarma süresi (MTTR) ve değişiklik başarısızlık oranı (change failure rate).

CD her tür proje için uygun mudur?

Hayır, katı düzenleyici gereksinimleri olan projeler (örneğin, tıbbi veya finansal sistemler) için genellikle her sürümün manuel olarak onaylanması gerekir. Bu gibi durumlarda Continuous Delivery tercih edilir.

Özet

  • Continuous Deployment — manuel müdahale olmadan production'a kod dağıtımının tam otomasyonu, her commit pipeline aracılığıyla kullanıcılara ulaşır.
  • Continuous Delivery'den temel fark — sürüm öncesinde manuel geçit yoktur.
  • CD'nin temeli — olgun otomatik test kültürü, özellik bayrakları ve izleme.
  • Dağıtım stratejileri — canary sürümleri, blue-green ve rolling update çıkış risklerini azaltır.
  • Popüler araçlar — GitHub Actions, GitLab CI/CD, ArgoCD, Spinnaker, Fastlane.
  • DORA metrikleri CD etkinliğini değerlendirmeye ve ekipleri birbiriyle karşılaştırmaya olanak tanır.
  • Pipeline güvenliği — CD'nin zorunlu unsuru: gizli bilgi yönetimi, yapıt imzalama ve güvenlik açığı taraması.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun