Continuous Deployment — bu, hər bir kod dəyişikliyinin bütün yoxlama mərhələlərindən keçdikdən sonra avtomatik olaraq istehsal mühitinə yerləşdirilməsi təcrübəsidir. Continuous Delivery-dən fərqli olaraq, buraxılış əl təsdiqi tələb edir, bu model isə insan faktorunu yerləşdirmə prosesindən çıxarır. Puppet State of DevOps, 2025 hesabatına görə, CD qurulmuş komandalar ənənəvi yanaşmalarla müqayisədə 106 dəfə daha tez-tez yerləşdirmə həyata keçirir.
Əsas məqamlar
Continuous Deployment — bütün avtomatlaşdırılmış yoxlamalardan keçən hər bir kod dəyişikliyinin avtomatik olaraq istehsal mühitinə yerləşdirildiyi inkişaf metodudur. Proses əl təsdiqi tələb etmir — kod kompilasiya, testlər və analizdən keçibsə, dərhal istifadəçilərə çatır.
CD konsepsiyası DevOps mədəniyyəti ilə sıx bağlıdır və yüksək dərəcədə avtomatlaşdırma tələb edir. Komanda öz testlərinə etibar etməli və problem halında sürətli geri qaytarma mexanizmlərinə malik olmalıdır. Bu şərtlər olmadan avtomatik yerləşdirmə riskli olur.
Google Cloud DORA, 2025 məlumatlarına görə, elit ifaçılar (elite performers) kodu gündə bir neçə dəfə yerləşdirir, aşağı effektiv komandalar isə ayda bir dəfə. Belə bir fərq məhz Continuous Deployment və əlaqəli CI/CD təcrübələri sayəsində əldə edilir.
Ənənəvi yanaşmada buraxılışlar bir neçə həftə və ya ayda bir dəfə çıxır. Tərtibatçılar dəyişiklikləri toplayır, bu da mürəkkəb birləşmələrə və konfliktlərə gətirib çıxarır. CD bu modeli dəyişdirir: dəyişikliklər tamamlandıqdan dərhal sonra tək-tək çıxır. Bu, hər bir buraxılışın mürəkkəbliyini azaldır və problemlərin axtarışını sadələşdirir.
CD tətbiqi üçün funktsiya bayraqları (feature toggles) tələb olunur ki, bunlar da yarımçıq funksionallığı istifadəçilərdən gizlətməyə imkan verir. Onlar olmadan tərtibatçılar yarımçıq funksiyaları təhlükəsiz birləşdirə bilməzlər. Həmçinin hərtərəfli monitorinq və alertinq tələb olunur — əgər yerləşdirmə mühiti pozarsa, komanda dəqiqələr ərzində bu barədə öyrənməlidir.
CD-də keyfiyyət təminatı ayrıca bir faza deyil, davamlı bir prosesdir. Hər bir commit yüzlərlə və ya minlərlə avtomatlaşdırılmış testdən keçir: vahid, inteqrasiya, UI və ekran görüntüsü testləri. Hətta bir test uğursuz olarsa — düzəliş edilənə qədər yerləşdirmə bloklanır.
CI, CD və Continuous Delivery terminləri tez-tez qarışdırılır, baxmayaraq ki, onlar kod çatdırılması avtomatlaşdırmasının müxtəlif mərhələlərini təsvir edir. Fərqləri anlamaq düzgün pipeline qurmaq üçün kritik əhəmiyyət daşıyır.
| Təcrübə | Nə edir | Nəticə |
|---|---|---|
| CI (Continuous Integration) | Hər commit-də avtomatik kompilasiya və test | Kod həmişə işlək vəziyyətdə |
| Continuous Delivery | CI + avtomatik buraxılış hazırlığı (əl ilə yerləşdirmə triggeri) | Buraxılış istənilən an yerləşdirməyə hazırdır |
| Continuous Deployment | Continuous Delivery + istehsala avtomatik yerləşdirmə | Dəyişikliklər istifadəçilərə gecikmədən çatır |
Davamlı inteqrasiya (CI) — hər iki model üçün təməldir. Onsuz nə Continuous Delivery, nə də CD mümkün deyil. CI kodun pozulmadığına zəmanət verir və növbəti mərhələlərə hazır olduğunu təmin edir.
Continuous Delivery — komandanın istənilən an düyməni basıb buraxılışı həyata keçirə bilməsidir. CD-dən fərq ondadır ki, Continuous Delivery son qərarı insana (Release Manager və ya DevOps mühəndisinə) buraxır. CD isə bu keçidi tamamilə aradan qaldırır.
Tənzimləmə tələbləri olan layihələr üçün (fintech, tibb) və ya hər buraxılışın məcburi əl yoxlamasından keçdiyi hallarda (stakeholder təsdiqi), tam avtomatlaşdırma olmadan Continuous Delivery daha təhlükəsiz seçimdir. CD ən yaxşı sürətli yeniləmə dövrü olan SaaS məhsulları və mobil tətbiqlər üçün işləyir.
Tam CD pipeline bir neçə ardıcıl mərhələni əhatə edir. Hər bir mərhələ qüsurları filtrləyir — mərhələ uğurla keçilərsə, kod növbəti mərhələyə keçir. Mobil tətbiq üçün tipik zənciri nəzərdən keçirək.
Hər şey repozitoriya push ilə başlayır. CI serveri (məsələn, GitHub Actions və ya Jenkins) webhook bildirişi alır, ən son kod versiyasını yükləyir və kompilasiyanı işə salır. Android üçün bu `./gradlew assembleRelease`, iOS üçün — `xcodebuild -workspace App.xcworkspace -scheme App -configuration Release` ola bilər.
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
Uğurlu kompilasiyadan sonra testlər işə salınır: vahid, inteqrasiya, UI və statik kod analizi. Keyfiyyətə nəzarət sistemi kod əhatəsini, zəifliklərin mövcudluğunu və kod stilinin uyğunluğunu yoxlayır. Həddlər keçilməzsə — pipeline dayandırılır.
Bütün testlər keçilərsə, artefakt avtomatik olaraq staging mühitinə yerləşdirilir. Orada end-to-end testlər və performans testi həyata keçirilir. Bu mərhələdə xarici xidmətlərlə inteqrasiya yoxlamaları qoşula bilər.
Son mərhələ — istehsala çıxarma. Riskləri azaltmaq üçün kanar buraxılışlar (canary releases) istifadə olunur, bu zaman yeni versiya əvvəlcə istifadəçilərin kiçik bir faizinə təqdim edilir. Metriklər sabitdirsə, trafik tədricən 100%-ə qədər artırılır.
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'
}
}
}
Bazarda CD dəstəkləyən çoxsaylı platformalar mövcuddur. Seçim texnologiya stack-indən, komanda ölçüsündən və infrastruktur büdcəsindən asılıdır. Əsas kateqoriyaları və onların nümayəndələrini nəzərdən keçirək.
GitHub Actions, GitLab CI/CD, CircleCI və Bitbucket Pipelines daxili pipeline dəstəyi təklif edir. Onlar bulud registrləri (Docker Hub, GitHub Container Registry) ilə inteqrasiya olunur və AWS, Google Cloud, Azure və Firebase App Distribution-da yerləşdirməni dəstəkləyir.
Spinnaker, ArgoCD və Flux — yalnız CD-yə yönəlmiş alətlər. Onlar qabaqcıl yerləşdirmə strategiyaları təklif edir: blue-green, canary, rolling update. ArgoCD xüsusilə Kubernetes ekosistemində GitOps yanaşması sayəsində populyardır, burada infrastruktur vəziyyəti Git-repozitoriyada təsvir olunur.
Fastlane — App Store və Google Play-də kompilasiya və nəşrlərin avtomatlaşdırılması üçün de-fakto standartdır. CI serverləri ilə inteqrasiya olunur və kod imzalanması, ekran görüntüləri, TestFlight və Internal App Sharing vasitəsilə beta paylanmasını idarə edir. Bitrise və Codemagic — mobil tətbiqlər üçün ixtisaslaşmış CI/CD platformalarıdır.
# Fastfile — Fastlane konfiqurasiyası
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
Continuous Deployment-a keçid yalnız texniki hazırlıq deyil, həm də komanda mədəniyyətində dəyişikliklər tələb edir. Düzgün təcrübələr olmadan avtomatik yerləşdirmə tez-tez insidentlərə və prosesə inamın azalmasına səbəb ola bilər.
Feature flags yarımçıq kodu istehsala yerləşdirməyə, lakin istifadəçilərdən gizlətməyə imkan verir. Bu CD-nin əsasıdır — tərtibatçılar funksiyanın tamamlanmasını gözləmədən istənilən vaxt dəyişiklikləri birləşdirə bilər. LaunchDarkly, Flagsmith və ConfigCat funksiya bayraqlarını idarə etmək üçün məşhur platformalardır.
Metriklər olmadan yerləşdirmənin uğurunu qiymətləndirmək mümkün deyil. Əsas metriklər: cavab müddəti (latency), səhv nisbəti (error rate), ötürmə qabiliyyəti (throughput). Hər bir buraxılışı real vaxtda izləmək üçün Datadog, New Relic və ya Grafana kimi alətlərdən istifadə edin.
CD-nin kritik təcrübəsi — avtomatik geri qaytarma mexanizmi. Əgər yerləşdirmədən sonra metriklər pisləşərsə (error rate həddi aşarsa), sistem özü əvvəlki versiyanı qaytarmalıdır. Bu, bərpa müddətini (MTTR) saatlardan dəqiqələrə endirir.
CD pipeline dəyərli aktivdir və hücumlar üçün potensial hədəfdir. Sirrlərin idarə edilməsi (Vault, AWS Secrets Manager) istifadə edin, artefaktları və konteynerləri imzalayın, asılılıqları zəifliklər üçün skan edin (Dependabot, Snyk). Heç vaxt giriş açarlarını repozitoriyada saxlamayın.
Tez-tez verilən suallar
Continuous Delivery buraxılışı hazırlayır, lakin istehsala yerləşdirmə üçün əl təsdiqi tələb edir. Continuous Deployment bu addımı da avtomatlaşdırır — kod bütün yoxlamalardan keçdikdən sonra insan iştirakı olmadan istifadəçilərə çatır.
Texniki olaraq mümkündür, lakin bu, prosesi əhəmiyyətli dərəcədə çətinləşdirir. Funksiya bayraqları olmadan tərtibatçılar yarımçıq kodu birləşdirə bilməz, bu da işi ləngidir və birləşmə zamanı konflikt riskini artırır.
Kiçik bir komanda üçün sıfırdan — 2 aydan 6 aya qədər. Vaxt cari avtomatlaşdırma səviyyəsindən, layihənin mürəkkəbliyindən və komandanın proses dəyişikliklərinə hazırlığından asılıdır.
Əsas DORA metrikləri: yerləşdirmə tezliyi (deploy frequency), dəyişikliklərin icra müddəti (lead time), orta bərpa müddəti (MTTR) və uğursuz dəyişikliklərin faizi (change failure rate).
Xeyr, sərt tənzimləmə tələbləri olan layihələr üçün (məsələn, tibbi və ya maliyyə sistemləri) tez-tez hər bir buraxılışın əl ilə qəbulu tələb olunur. Belə hallarda Continuous Delivery daha üstündür.
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