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) — 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.
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.
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.
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.
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.
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 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ırma | Istehsala buraxma | Tipik olaraq |
|---|---|---|---|
| CI | Yığma + testlər | Xeyr | İstənilən layihələr |
| CD | Yığma + testlər + reliz versiyası + çatdırma | Dümə ilə | Mobil tətbiqlər |
| Continuous Deployment | Tam: yığma → testlər → çatdırma → buraxma | Avtomatik | Veb xidmətlər, SaaS |
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.
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.
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.
# 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 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.
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.
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.
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-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 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.
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.
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-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.
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.
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.
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.
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.
// 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 (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.
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.
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-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 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ə
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.
Həm də oxuyun