Proqressiv Release və Stagings
(Bölmə: Memarlıq və Protokollar)
1) Niyə mütərəqqi çatdırılma
«Dev → test → staging → prod» klassik sxemi təhlükəsizliyə zəmanət vermir: prodakşenə nə qədər yaxın olarsa, uyğunsuzluq riski bir o qədər yüksəkdir. Proqressiv buraxılış blast radius-u minimuma endirir, tədricən trafik/auditoriya payını artırır və ölçü və SLO həllərini gücləndirir. Staging ilə birlikdə, bu verir: sıfır downtime, sürətli geri dönüş, prosesin təkrarlanması və ölçülə bilən keyfiyyət nəzarəti.
2) Terminlər
Steycinqlər (environments) - artefaktın həyat dövrünün formal mərhələləri: 'dev', 'ci', 'qa/test', 'staging/pre-prod', 'prod', həmçinin ephemeral/preview fice-filialları altında əhatə edir.
Progressive Release (progressive delivery) - mərhələli versiya/fich: canary, faiz rollout, ring-deploy, ficheflags, dark-launch, shadow-trafik.
Geytlər - avtomatik giriş meyarları (error rate, p95, biznes metrikası, SLO üzrə səhv büdcəsi).
Artefaktın təşviqi - eyni imzalanmış bildin steycinqlər (immutable artifact) arasında təşviqi.
3) Ətraf mühitin xəritəsi və onların təyinatı
3. 1 Əsas
Dev (yerli/qum qutusu): sürətli dövrlər, asılılıq qapaqları, minimum təhlükəsizlik.
CI (inteqrasiya stendləri): vahid/inteqrasiya/müqavilə testləri, statik analiz, SCA/SAST.
QA/Test: e2e, yük, regressiya. Məlumatlar sintetik və ya maskalanmışdır.
Staging/Pre-prod: maksimum «prod kimi»: eyni konfiqurasiya, bayraqlar, limitlər, fon emalı.
Prod: döyüş trafiki, SLO/SLI, risklər, geri dönüş planları.
3. 2 Əlavə
Ephemeral/Preview per PR: pull-request-də stendin avtomatik qurulması, merge/close-də avtomobil sökülməsi.
Biznes komandaları üçün UAT/Sandbox: qəbul, nümayişlər, təlim ssenariləri.
Performance laboratoriyası: təcrid olunmuş yük təcrübələri (trafik generatorları, məlumat replikaları).
4) Davamlı steycinq prinsipləri
Kod kimi konfiqurasiya (IaC, GitOps), mühit sürüklənməsi kod və avtomatik validasiyalarla istisna edilir.
İdempotent, imzalanmış artefaktlar (SBOM, provenance, attestations), vahid build → multi-stage deploy.
Qida ilə paritet: kirayə versiyası, limitlər, şəbəkə siyasətləri, bayraqlar daxil. Fərq yalnız sirlərdə/məlumatlarda.
TDM (Test Data Management): Sintetik/Maskalama, Miqrasiya və Sid Payplayn hissəsi kimi.
Müşahidə by design: reliz etiketləri, qeydlərin/izlərin korrelyasiyası, bütün mərhələlərdə vahid daşbordlar.
5) Proqressiv buraxılış modeli
5. 1 Yanaşma alətləri
Funksionallığın seqmentlərə (ölkə, müştəri, hesab, random seed) daxil edilməsi/bağlanması.
Canary: 1-5-10-25-50-100% trafik hər addımda gates ilə.
Ring-deploy: ring uzantısı (internal → employees → beta → public).
Blue-Green: böyük platforma yeniləmələri üçün atom flip.
Dark-launch: istifadəçiyə təsir etmədən gizli icra (metrik toplama).
Shadow-traffic: istifadəçiyə cavab vermədən yeni versiyada sorğuların əks olunması.
5. 2 Avtomatik geytalar
Texnometrika: error rate, p95/p99, saturation, queue lag.
Biznes metrikası: avtorizasiya, ödənişə çevrilmə, huni addımlarından imtina.
SLO/error budget: tez yanan büdcə səhvləri ilə sürətli stop.
Statik əhəmiyyət: «səs-küy» qərar verməmək üçün minimum vaxt/trafik həcmi.
6) Tip CI/CD zənciri (istinad)
1. Commit/PR → Build: vahid şəkil/paket, imza, SBOM.
2. CI-тесты: unit/integration/contract + security (SAST/SCA/secret-scan).
3. Ephemeral preview: əl yoxlama/UX üçün stand avtomatik qaldırılması.
4. QA/Test: e2e + yük + xaos testləri (isteğe bağlı).
5. Staging: smoke, kritik istifadəçi yollarının reqressiyası, DB miqrasiya yoxlama.
6. Prod canary: 1-5% trafik → geyta → 10-25-50-100%.
7. Geri çəkilmə/tamamlanma: problemlərdə - avto-rollback; müvəffəqiyyətlə - köhnə versiyanın yığılması.
7) Verilənlərin və sxemlərin idarə edilməsi
Expand-migrate-contract: əks uyğun miqrasiyalar, fon köçürmələri, yoxlama nöqtələri, idempotentlik.
İki axınlı qeydlər (dual-write) və ya «əməliyyat outbox».
Masking/staging üçün prod-data seçimi (qanuni və texniki cəhətdən təhlükəsiz).
Cashes/seanslar: xarici saxlama, isti başlanğıc, flip əlillik siyasəti.
8) Təhlükəsizlik və uyğunluq
Secrets: KMS/Secrets Manager, rotation, ən kiçik imtiyazlar prinsipi.
Steyjing izolyasiyası: şəbəkələr/hesablar/layihələr; prod ilə təsadüfi sinxronizasiyanın qadağan edilməsi.
Audit/Trace Release: kim/nə/nə zaman yuvarlandı, artefakt versiyası, change approval.
Proqram təminatı: imzanın yoxlanılması, reyestrlərə etimad siyasəti, «latest» qadağası.
9) Müşahidə və istismar
Vahid etiket formatı: '{service, version, commit, stage, region, ring}'.
Baseline ilə müqayisə: kanarya vs sabit versiyası tək qrafiklərdə.
SLO Alerts: qida və texniki, canary üçün müxtəlif eşiklər.
Post-release monitorinq: gecikmiş effektlər üçün ən azı N saat/gün.
10) Geri çəkilmə və qəza planları
Düymə/geri qaytarma əmri paylaynın bir hissəsidir (əl kraft deyil).
Bayrağın revers-promosyon deploy (kill-switch) daha sürətli.
Məlumatlara görə əks tədbirlər: idempotent təkrar emal, kompensasiya əməliyyatları, deduplikasiya.
Hadisə pleybukları: kim qərar verir, rabitə kanalları, mesaj şablonları.
11) Qiymət və performans
Ephemeral-ətraf aqressiv avtomatik aradan qaldırılması əgər pul qənaət edir.
Blue-Green buraxılış zamanı dəfələrlə bahadır; canary daha ucuz, lakin yetkin metrik tələb edir.
Yük və buraxılış pəncərəsi üzrə avtoskeylinq; pre-stendlər üçün kvotalar.
12) Tez-tez anti-nümunələr
Mühit sürüklənməsi: stendlərdə əl düzəlişləri, «bu kiçik bir şeydir».
Mühit üçün bir bild: rebuild per stage → «bərpa olunmayan» prod-bags.
Qeyri-aktual məlumatlar üzrə testlər: «yaşıl» prodda düşən testlər.
Geytlərin olmaması: SLO əvəzinə hisslər üçün buraxılışlar.
Blue-Green altında DNS uzun TTL; qismən trafikdə stickiness yoxdur.
canary/stable uyğun olmayan DB sxemləri qarışdırılması.
13) Çek vərəqləri
Staging promosyondan əvvəl
- Şəkil imzalanır, SBOM toplanır, krit səviyyəli zəifliklər bağlanır.
- BD miqrasiyası geri qaytarıla bilər (expand).
- Testlər üçün məlumatlar maskalı/sintetik.
- Yeni versiya üçün Dashboard/Alerts hazırdır.
Prod-a getməzdən əvvəl
- Addımlar və eşiklər ilə canary planı təsdiq edilmişdir.
- Kill-switch və geri plan staging yoxlanılır.
- Traffic shadow və ya dark-launch (mümkünsə).
- On-call xəbərdar, pəncərə vaxtı razılaşdırılır.
Buraxıldıqdan sonra
- SLO monitorinqi sabit N saat.
- Təmizləmə/miqrasiya «contract» tətbiq olunur.
- Retrospektiv və playbook yeniləmə.
14) Memarlıq üzrə tətbiq variantları
Monolit: ön stendlər + Mavi-Yaşıl, fiçlər isə bayraqlar vasitəsilə; URL/cookie ilə məhdud canary.
Mikroservislər: canary/ring təbii; ciddi müqavilə idarəetməsi (CDC), API versiyası.
Stateful xidmətləri: Blue-Green istilik və aydın miqrasiya planı ilə; ayrı-ayrı növbələr/topiklər per version.
15) Referens paypline c GitOps (eskiz)
app (kod) anbarı artefakt buraxır → env anbarına manifest qoyur.
GitOps agent (Argo CD/Flux) 'env/dev', 'env/qa', 'env/staging', 'env/prod' sinxronlaşdırır.
Promosyon - istədiyiniz steyj kataloquna pull-request vasitəsilə; merj trigger yayılması və geyt.
16) Fiçlərin və auditoriyaların idarə edilməsi
Seqmentasiya: müştəri növü, ölkə, cihaz, proqram versiyası, AB koort, günün vaxtı.
Tədricən genişləndirilməsi: 1% daxili → 5% beta → 25% erkən müştərilər → 100% hamısı.
A/B təcrübələri və eyni bayraq mexanizmində məhsul hipotezləri üçün mullivariant.
17) Praktik ssenarilər
Ssenari 1: yeni ödəniş inteqrasiyası
1. Ephemeral stend per PR, QA-regress. 2) Staging smoke + sandbox provayder.
2. Prod canary 1% 'X-Cohort = internal' başlığı ilə. 4) Geytalar: error rate ödəniş, p95 callback, uğurlu əməliyyatların payı.
3. 1→5→25→50→100%; deqradasiya zamanı - kill-switch.
Ssenari 2: Random yeniləmə (JDK/Node/OS)
Blue-Green klaster səviyyəsində: Green qızdırılır, «expand» miqrasiyası, flip, müşahidə, problemlərdə flip back.
Ssenari 3: yüksək risk UI-fich
Dark-launch + ficheflag yalnız beta istifadəçilər üçün, UX-metrik toplama, tədricən auditoriya genişləndirilməsi.
18) Minimum alətlər dəsti
CI: build, testlər, imza, SBOM.
CD/GitOps: Argo CD/Flux/Spinnaker və ya yerli bulud alətləri.
Routing: Ingress/Service Mesh (weighted, header/cookie based).
Ficheflages: LaunchDarkly/Unleash/OpenFeature/özünü yazma xidməti.
Observability: metriklər, loglər, izlər, alertlər; vahid dashboard per stage.
TDM: maskalama, sidinq, sintetik generatorlar.
Security: sirləri, KMS, qeydiyyat siyasəti, asılılıq yoxlamaları.
19) Qısa xülasə
Proqressiv buraxılış mərhələli qoşulma və sərt staj intizamının birləşməsidir. Uğur dörd sütuna əsaslanır: immutable artefaktlar, SLO avtoqeytləri, geri dönən məlumat sxemi və sürətli geri dönüş. Qabaqcıl mühit, GitOps və ficheflags əlavə edin - və buraxılışınız proqnozlaşdırıla bilən, təhlükəsiz və sürətli olacaq.