Continuous Delivery (CD): bu nədir, Continuous Deployment-dan nə ilə fərqlənir

Müəllif: IT Sectr Dərc olunub: 2026-04-11 Oxuma vaxtı: 9 dəq

Continuous Delivery (CD) — proqram təminatının həmişə istehsalata buraxılmağa hazır vəziyyətdə olduğu inkişaf təcrübəsidir. Hər bir dəyişiklik avtomatlaşdırılmış test və yoxlama mərhələlərinin hamısından keçir, bundan sonra bir dümə kliklə və ya avtomatik olaraq yerləşdirilə bilər. Google Cloud DORA Report, 2025 məlumatlarına görə, CD tətbiq edən komandalar relizləri 208 dəfə daha tez-tez və 106 dəfə daha sürətli yerləşdirirlər.

Əsas məqamlar

  • Continuous Delivery (CD) — kodun avtomatik yoxlamalardan sonra həmişə buraxılmağa hazır olduğu təcrübədir
  • CD CI-ə daxildir və relizin hazırlanması, imzalanması və tətbiq mağazalarına çatdırılması mərhələlərini əlavə edir
  • Əl ilə təsdiqləmə Continuous Delivery-ni Continuous Deployment-dan (avtomatik yerləşdirmə) fərqləndirir
  • Fastlane — mobil inkişafda CD üçün standart alət, imzalama və dərci avtomatlaşdırır
  • Release pipeline — metadata, ekran görüntüləri, təsvir vɕ marketinq materiallarının yoxlanmasını əhatə edir

Continuous Delivery nədir

Continuous Delivery (CD) — Continuous Integration-ın genişləndirilməsi olub, relizin hazırlanmasının bütün mərhələlərinin avtomatlaşdırılmasını əlavə edir: reliz versiyasının yığılması, sertifikatlarla imzalanması, obfuskasiya, tətbiq mağazası metadatasının yoxlanması və staging-ə yerləşdirmə. Termin Jez Humble və David Farley tərəfindən “Continuous Delivery” (2010) kitabında təqdim edilmişdir.

Proqram təminatının çatdırılmasının təkamülü

CD tətbiqindən əvvəl relizlər hadisə idi: komanda otaqda toplaşır, 20 maddəlik yoxlama siyahısını yerinə yetirir, skriptləri əl ilə işə salır və heç nənin pozulmayacağını umurdu. Continuous Delivery relizi hadisədən prosesə çevirir: kiçik kod dəyişikliyi həftələr yox, dəqiqələr ərzində istifadəçilərə çatdırıla bilər. Amazon, Netflix və Etsy 2010-cu illərdə ilk CD tətbiq edənlər oldu — bu gün bu, məhsul komandaları üçün standartdır.

CD-nin biznes dəyəri

Funksiyaların sürətli çatdırılması rəqabət üstünlüyüdür. Rəqib yeni funksiyanı günlərə yerləşdirirsə, siz isə aylara — bazar rəqibi seçir. DORA metrikaları göstərir: elite komandalar (CD ilə) 1 saatdan az yerləşdirmə müddətinə malikdir, low komandalar (CD-siz) — 1 həftədən 1 aya qədər. CD həm də riski kəskin azaldır: kiçik dəyişikliklər böyük relizdən daha çətin pozulur.

CD vs CI vs Continuous Deployment

CI, CD və Continuous Deployment terminləri tez-tez qarışdırılır, lakin onların arasında aydın sərhəd var. Fərqləri anlamaq pipeline-i düzgün qurmağa və komandanın yetkinliyinə uyğun avtomatlaşdırma səviyyəsini seçməyə kömək edir.

Continuous Integration

CI CD-nin qurulduğu təməldir. CI hər bir commit-in yığılma və testlərdən keçməsini təmin edir. CI olmadan CD mümkün deyil: kod təsdiqlənməyibsə, onu buraxmaq olmaz. CI düzgünlüyü yoxlayır, CD biznes istifadəsinə hazırlığı yoxlayır.

Continuous Delivery

CD CI-ə reliz versiyasının hazırlanması, metadatanın yoxlanması, imzalanması və staging-ə və ya beta test üçün tətbiq mağazasına yerləşdirilməsi mərhələlərini əlavə edir. Əsas fərq — istehsalata buraxma qərarını insan qəbul edir (menecer, məhsul sahibi). CD relizi “bir klik” — sadə və təhlükəsiz edir.

Continuous Deployment

Continuous Deployment tam avtomatlaşdırmadır: CD pipeline-inin bütün mərhələlərindən keçən hər dəyişiklik əl ilə təsdiq olmadan avtomatik istehsala göndərilir. Continuous Deployment SaaS məhsulları və veb xidmətlər üçün uyğundur, lakin tətbiq mağazalarının siyasətləri səbəbindən mobil inkişafda nadir istifadə olunur.

TəcrübəAvtomatlaşdırmaIstehsala buraxmaTipik olaraq
CIYığma + testlərXeyrİstənilən layihələr
CDYığma + testlər + reliz versiyası + çatdırmaDümə iləMobil tətbiqlər
Continuous DeploymentTam: yığma → testlər → çatdırma → buraxmaAvtomatikVeb xidmətlər, SaaS

Mobil tətbiqlər üçün Continuous Delivery

Mobil tətbiqlər üçün CD onu veb və backend pipeline-lərindən fərqləndirən xüsusiyyətlərə malikdir. Mobil relizlər tətbiq mağazalarından (App Store Review, Google Play Review) keçir və bu, zaman və prosedur maneəsi əlavə edir. CD, rəyə göndərmədən əvvəl avtomatlaşdırıla bilən hər şeyi avtomatlaşdırır.

Google Play-də dərc üçün hazırlıq

Android CD pipeline-i daxildir: AAB (Android App Bundle) yığılması, reliz açarı ilə imzalama, R8/ProGuard vasitəsilə obfuskasiya, APK ölçüsü və multidex siniflərinin yoxlanması, reliz qeydlərinin yaradılması. Gradle product flavors (free/paid, dev/staging/prod) istifadəsi bir pipeline-dən bir neçə konfiqurasiyanı idarə etməyə imkan verir.

App Store-da dərc üçün hazırlıq

iOS CD Fastlane match vasitəsilə sertifikatlarla imzalama, ikonların uyğunluğunun yoxlanması (App Store tələbi — 1024×1024 px), metadatanın (ad, təsvir, açar sözlər) validasiyası, özəl API-lərin olmamasının yoxlanmasını tələb edir. Technical validation altool --validate-app vasitəsilə App Store Connect-ə yükləmədən yerinə yetirilir.

ruby
# Fastfile — iOS və Android üçün tam CD pipeline
platform :ios do
  desc "iOS CD — relizin hazırlanması və TestFlight-a yüklənməsi"
  lane :deliver_to_testflight do
    capture_screenshots
    match(type: "appstore")
    build_app(
      scheme: "MyApp",
      export_method: "app-store",
      workspace: "MyApp.xcworkspace"
    )
    pilot(skip_waiting_for_build: true)
  end
end

platform :android do
  desc "Android CD — AAB yığılması və Google Play Console-a yüklənməsi"
  lane :deliver_to_internal do
    gradle(
      task: "bundleRelease",
      build_type: "Release",
      print_command: true
    )
    upload_to_play_store(
      track: "internal",
      skip_upload_metadata: true
    )
  end
end

Fastlane deliver_to_testflight ekran görüntülərini toplayır, match vasitəsilə sertifikatları alır, IPA yığır və TestFlight-a yükləyir. Android üçün deliver_to_internal lane-i Gradle vasitəsilə Release AAB yığır və onu Google Play Console-un daxili trekinə yükləyir. Hər iki pipeline testlərdən keçdikdən sonra CI-dən işə salınır.

CD pipeline komponentləri

CD pipeline ardıcıl mərhələlərdən ibarətdir, hər biri relizin istifadəçilərə hazır olduğuna əminlik əlavə edir. Mərhələlər texniki (yığma, imzalama) və məhsul (metadata, ekran görüntüləri, təsvirin yoxlanması) bölünür. Hər hansə mərhələnin buraxılması relizin tətbiq mağazası tərəfindən rədd edilmə riskini artırır.

Versiya idarəetməsi

CD-nin kritik komponenti — avtomatik versiya idarəetməsi. Version bump (Android üçün versionCode və versionName, iOS üçün CFBundleVersion və CFBundleShortVersionString) Git teqləri və ya mağazadakı əvvəlki versiya əsasında yerinə yetirilir. Fastlane increment_version_number və Gradle əmrləri (versionCode auto-increment) bu addımı avtomatlaşdırır.

Mağaza metadatası

Google Play Console və App Store Connect tələb edir: tətbiq təsviri, açar sözlər, kateqoriya, reytinq, məxfilik siyasətinə keçidlər. CD metadatanın mövcudluğunu və düzgünlüyü yoxlanmasını əhatə edir. Fastlane deliver və supply təsviri, ekran görüntülərini vɕ ikonları yığma ilə birlikdə avtomatik yükləyir.

Gate yoxlamaları

Rəyə göndərmədən əvvəl pipeline gate yoxlamalarını yerinə yetirir: yığma ölçüsünün yoxlanması (APK > 200 MB Google Play tərəfindən rədd edilir), bütün lokallaşdırmaların mövcudluğu, reliz versiyasında debug simvollarının olmaması, ProGuard xəritə faylının yoxlanması. Hər hansə yoxlama keçməzsə — pipeline relizi bloklayır.

CD üçün avtomatlaşdırılmış test

CD-yə etibar səviyyəsi avtomatik testlərin keyfiyyəti ilə düz mütenasibdir. Testlər reqressiyaları tutmazsa — reliz istehsalı poza bilər və komanda CD-yə inamı itirir. Mobil CD platforma spesifikasına uyğunlaşdırılmış üç səviyyəli test piramidası tələb edir.

Vahid testlər

Vahid testlər biznes məntiqini təcrid olunmuş şəkildə yoxlayır. Kod əhatəsi kritik modullar üçün ən azı 70% olmalıdır (doğrulama, ödənişlər, şəbəkə ilə iş). CI hər push-da vahid testləri işə salır və onlar keçməzsə — CD pipeline düzəlişə qədər bloklanır.

inteqrasiya testləri

Komponentlərin qarşılıqlı əlaqəsini yoxlayır: şəbəkə qatı real API (və ya mock server) ilə, verilənlər bazası, fayl sistemi. Room DAO testləri Android üçün, Core Data testləri iOS üçün — inteqrasiya testi nümunələri. Vahid testlərdən yavaşdır (1–5 dəqiqə) və CI-də yox, CD mərhələsində yerinə yetirilir.

UI və ekran görüntüsü testləri

Ekran görüntüsü testləri (snapshot testing) tətbiq ekranlarını standart şəkillərlə müqayisə edir. Kod dəyişikliyi UI-i dəyişdiribsə — test keçmir və tərtibatçı dəyişikliyin gözlənilən olub-olmadığını yoxlayır. Android Roborazzi və Paparazzi, iOS Point-Free-dən SnapshotTesting dəstəkləyir. Ekran görüntüsü testləri CD pipeline-inin bir hissəsi kimi relizdən əvvəl yerinə yetirilir.

Continuous Delivery üçün ən yaxşı təcrübələr

Continuous Delivery-nin tətbiqi təkcə alətlər deyil, həm də komanda mədəniyyətinin dəyişdirilməsini tələb edir. Aşağıdakı təcrübələr Google, Spotify və Uber-dən mobil komandaların uzun illər təcrübəsinə əsaslanır və istənilən ölçü layihələr üçün uyğunlaşdırılmışdır.

Feature flags

Yeni funksiyanın kodu istehsala çatdırılır, lakin bayraq arxasında gizlədilir. Feature flags kodu funksiya istifadəçilərə göstərilməyə hazır olmamışdın əvvəl yerləşdirməyə və problem yaranarsa dərhal söndürməyə imkan verir. Kitabxanalar: LaunchDarkly, Firebase Remote Config, Unleash. Feature flags mobil layihələrdə CD üçün məcburi şərtdir.

Staging mühiti

Istehsala göndərmədən əvvəl yığma staging-də — istehsalla eyni, lakin test məlumatları ilə mühitdə dərc olunur. QA mühəndisləri TestFlight və ya Internal Testing treki vasitəsilə quraşdırılmış staging yığmasında funksiyanı yoxlayır. Staging keçərsə — yığma mağazada rəyə göndərmə üçün təsdiq alır.

Reliz qeydləri və changelog

CD commit mesajları əsasında avtomatik reliz qeydləri yaradır. Conventional Commits (feat:, fix:, chore:) və semantic versioning formatında Git teqləri dəyişiklik tarixçəsini təhlil etməyə imkan verir. Fastlane changelog_from_git_commits son iki teq arasındakı dəyişiklikləri toplayır və tətbiq mağazası üçün formatlaşdırır.

Relizdən sonra monitorinq

CD dərclə bitmir — relizdən sonra monitorinq işə salınır: crash rate, Android üçün ANR rate, başlanma vaxtı, ödəniş uğursuzluqlarının tezliyi. Metrikalar normadan kənara çıxarsa — CD pipeline avtomatik relizi geri qaytarmalı və ya komandaya xəbər verməlidir. Alətlər: Firebase Crashlytics, Sentry, New Relic.

kotlin
// CD üçün Firebase Remote Config ilə Feature Flag nümunəsi
class FeatureManager(
    private val remoteConfig: FirebaseRemoteConfig
) {
    fun isNewCheckoutEnabled(): Boolean {
        return remoteConfig.getBoolean("new_checkout_enabled")
    }

    fun getRecommendedVersion(): String {
        return remoteConfig.getString("minimum_app_version")
    }
}

// Koddan istifadə
if (featureManager.isNewCheckoutEnabled()) {
    showNewCheckoutScreen()
} else {
    showLegacyCheckoutScreen()
}

Tez-tez verilən suallar

Continuous Delivery Continuous Deployment-dan nə ilə fərqlənir?

Continuous Delivery (CD) relizin hazırlanmasını avtomatlaşdırır, lakin yerləşdirmə qərarını insana buraxır. Continuous Deployment — CD + insan iştirakı olmadan avtomatik istehsal relizi. Mobil inkişafda Continuous Deployment mümkün deyil, çünki tətbiq mağazaları məcburi rəy tələb edir.

Reliz versiyasının test edilmişdən fərqlənmədiyinə necə əmin olmaq olar?

Bütün mərhələlər üçün eyni yığmanı istifadə edin: CI debug versiyasını test edir, CD eyni mənbələrlə release versiyasını yığır. Fastlane build_app və Gradle assembleRelease yığma konfiqurasiyasını təcrid edir. Əlavə olaraq, mağazaya göndərmədən əvvəl CD pipeline-də reliz versiyasında smoke testləri işə salın.

Artıq dərc edilmiş tətbiq üçün CD tətbiq etmək olarmı?

Bəli, CD istənilən layihədə tətbiq edilə bilər. Bir mərhələnin avtomatlaşdırılması ilə başlayın — məsələn, reliz versiyasının yığılması. Sonra imzalamanı, sonra TestFlight-a yüklənməni əlavə edin. Tədricən pipeline-i genişləndirin. Əasası — birdən hər şeyi avtomatlaşdırmağa çalışmayın: CD iterativ tətbiq edilir.

Feature flags CD ilə necə əlaqəlidir?

Feature flags CD-nin açar vasitəçisidir. Onlar istifadəçilər üçün aktiv etmədən kodu istehsala çatdırmağa imkan verir. Funksiya qeyri-sabit olarsa — bayraq tətbiqi yenidən yığmadan söndürülür. Firebase Remote Config və LaunchDarkly CD pipeline-i ilə inteqrasiya edir və veb interfeys və ya API vasitəsilə idarə olunur.

CD istifadə edərkən nə qədər tez-tez reliz etmək lazımdır?

CD ilə komandalar relizləri həftəlik və ya iki həftəlik edir. DORA hesabatından elite komandalar Continuous Deployment vasitəsilə (server hissəsi üçün) gündə bir neçə reliz edir. Mobil tətbiqlər üçün optimal tezlik həftədə 1–2 dəfədir: App Store rəyi 1–3 gün çəkir və daha tez-tez relizlər istifadəçilərə dəyişiklikləri görməyə vaxt vermir.

Nəticə

  • Continuous Delivery (CD) — istehsala əl ilə buraxma qərarı saxlanılmaqla relizin hazırlanmasının avtomatlaşdırılması
  • CD CI-ə əsaslanır və əlavə edir: reliz yığılması, imzalama, metadatanın yoxlanması və tətbiq mağazasına çatdırılma
  • Fastlane — mobil inkişafda CD üçün standart alət, bir Fastfile-dən Android və iOS dəstəkləyir
  • Feature flags və staging mühiti — mobil layihələrdə təhlükəsiz CD üçün məcburi təcrübələr
  • Gate yoxlamaları (yığma ölçüsü, lokallaşdırmalar, debug simvolları) mağaza tələblərinə uyğunsuzluqda relizi bloklayır
  • DORA metrikaları sübut edir: CD ilə komandalar 208 dəfə daha tez-tez və daha az risklə reliz edir
  • Tövsiyə: CD-ni iterativ tətbiq edin — reliz versiyasının avtomatik yığılması ilə başlayın, sonra imzalama, sonra TestFlight-a yüklənmə əlavə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun