Sobes.tech
Junior

Sürekli dağıtım (continuous deployment) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bu, her otomatik test ve onay sürecinden geçen her değişikliğin otomatik olarak üretim ortamına dağıtıldığı bir yazılım geliştirme yaklaşımıdır. Sürekli Teslimat'tan temel farkı, üretime dağıtmadan önce manuel onay adımının olmamasıdır.

Ana aşamalar:

  1. Commit: Geliştirici, değişiklikleri sürüm kontrol sistemine (örneğin Git) yapar.
  2. Build: Otomatik olarak artefaktın (görüntü, paket vb.) oluşturulması.
  3. Test: Otomatik testlerin çalıştırılması (birim testleri, entegrasyon, fonksiyonel, yük testleri vb.).
  4. Deploy: Tüm testler başarılıysa, artefakt otomatik olarak çalışma ortamına dağıtılır.

Ana bileşenler:

  • Yüksek otomasyon seviyesi.
  • Güvenilir altyapı.
  • Sürekli Entegrasyon (CI) ve Sürekli Teslimat (CD) uygulamaları.
  • Sorunları hızlı tespit etmek için izleme ve günlükleme.
  • Hızlı geri alma imkanı.
# GitLab CI/CD'de pipeline'ın bir bölümüne örnek
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Uygulamayı oluşturuyoruz..."
    - # Build komutları burada

test_job:
  stage: test
  script:
    - echo "Testleri çalıştırıyoruz..."
    - # Test komutları burada
  only:
    - main # Sadece ana dal için tetiklenir

deploy_job:
  stage: deploy
  script:
    - echo "Üretime dağıtım..."
    - # Dağıtım komutları burada
  when: on_success # Önceki aşamalar başarılıysa dağıtım yap
  only:
    - main
Avantajlar Dezavantajlar
Yeni özelliklerin/hataların hızlı çıkışı Testlerin yüksek kalite gereksinimleri
TTM'nin (Time To Market) azaltılması İstenmeyen değişikliklerin dağıtımında potansiyel risk
Her dağıtımda riskin azaltılması Olgun olmayan CI/CD süreçleri olmadan uygulamada zorluk
Kullanıcı geri bildiriminin hızlı alınması Güvenilir izleme ve geri alma yeteneği gerekliliği