Staging payplaynlar və buraxılışlar
1) Niyə staging-paypline lazımdır
Staging-paypline, PR-dən «default» keyfiyyət və təhlükəsizlik yoxlamaları ilə istehsalına qədər standartlaşdırılmış bir əsərdir. Məqsədlər:- montaj və buraxılış təkrarlanabilirliyi;
- sürətli və proqnozlaşdırıla bilən fidbek;
- risklərin minimuma endirilməsi (mütərəqqi yayılması, ficheflages, geri qaytarılması);
- uyğunluq və dəyişiklik nəzarət.
2) Standart təchizat axını (yüksək səviyyəli)
1. PR → avtomatik yoxlamalar (lint, unit, SAST, lisenziyalar).
2. Build → determinated image/paket, imza və SBOM.
3. Test on Ephemeral → per-PR qabaqcıl mühit.
- görüntü deploi;
- kontrakt-, inteqrasiya, e2e testlər;
- DAST/IAST, regress, yük smoke;
- lazım olduqda əl UAT/QA.
- 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
- 6. Post-deploy yoxlamaları və SLO/error budget üzrə avto çıxış.
- 7. Runbook/Changelog → buraxılış bağlanması və retrospektiv.
3) Standart YAML paylayn şablonu (ekstraksiya)
yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]
verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog
4) Gates və hazırlıq meyarları (Quality Gates)
Kod və təhlükəsizlik: lintlər, örtük, SAST/SCA, asılılıq siyasəti, «kritik/yüksək» yoxdur.
Müqavilələr: sxemlərin uyğunluğu (API/hadisələr), Pact/Buf yoxlama.
Testlər: unit/integration/e2e p-keçid həddi, sabitlik (flake-rate).
Yükləmə smoke: p95/p99 büdcə çərçivəsində, heç bir deqradasiya.
DAST/IAST: heç bir kritik findings, həssas yollar üçün pen test ssenariləri.
Observability: dashboards/alerts «as code» yenilənib, runbooks tətbiq olunur.
CAB/UAT: buraxılış pəncərələrində təsdiq (tənzimləyici/biznes tələb olunarsa).
5) Reliz strategiyaları
Feature Flags - redeploy olmadan məntiqi fich daxil; «dark launch» və A/B imkanı
Canary - trafik payının tədricən artması (5% → 25% → 50% → 100%), SLO və anomaliyalar üçün avtomatik roll-forward/rollback.
Blue-Green - paralel mühitlər; ani keçid, sadə geri dönüş.
Shadow/Traffic Mirroring - istifadəçilərə təsir etmədən yeni versiyaya passiv trafik keçidi.
Ring Deployments - bölgələr/tenantlar üzrə dalğalar.
6) Geri çəkilmə və buraxılış təhlükəsizliyi siyasəti
Trigger AutoCat: error-rate artım, həddindən yuxarı p95/TTFB, 5xx/timeout artım, DLQ sıçrayış.
Manual geri dönüş: chatbotda '/rollback <service> <sha> 'əmri, buraxılış konsolunda bir düymə.
Freeze windows: Kritik hadisələrə (turnirlər/pik matçlar) buraxılmaq qadağandır.
Changelog & Release Notes: PR nəsil, SemVer tags, komponentləri, miqrasiya.
7) DB miqrasiyası və uyğunluq
Expand → Migrate → Contract:1. uyğun sahələr/indekslər əlavə edin;
2. app deploy (hər iki sxemdə oxuyur/yazır);
3. fon jobları ilə məlumatların miqrasiyası;
4. köhnə aradan qaldırılması.
Sxemlər versiyalaşdırılır, idempotent miqrasiyası, staging dry-run.
Protect destructive SQL: require flag/approval, avtomatik backup və plan-check.
8) Fiziki və mütərəqqi aktivləşmə
Ops bayraqları (təhlükəsiz əməliyyat üçün) və product bayraqları ayırın.
Auditoriyaya daxil: faiz, geo, tenant, rol.
Bayraqların metrikası: dönüşüm, latency, səhvlərə təsir.
Problemlərdə - bayrağın daha sürətli geri qaytarılması.
9) Observability buraxılış hissəsi kimi
Traces: gateway-dən DB/növbələrə qədər 'trace _ id' keçidi; köhnə/yeni versiyaları müqayisə.
Metriklər: p50/p95/p99, error-rate, RPS, saturation, DLQ, retray, Vaxt-to-Wallet/Business KPI.
Qeydlər: strukturlaşdırılmış, PII maskalanması, 'request _ id' korrelyasiyası.
Alertlər: SLO-büdcə, on-call təcili səhifələr, relizin avtomatik yığılması.
10) Təchizat zəncirinin təhlükəsizliyi (supply chain)
SBOM hər bild, saxlama və release etiketinə bağlama.
Şəkil imzaları (cosign), klaster yoxlaması (policy admission).
SLSA sertifikatları: artefaktın sübut olunan mənşəyi.
Policy-as-Code (OPA/Conftest): infrastruktur PR üçün deny-by-default.
Sirlər: yalnız KMS, qısa ömürlü tokenlər, paylaynlarda rotasiyalar.
11) Dəyişikliklər və proseslərə nəzarət
RFC → CRQ → CAB: sənədləşdirilmiş davranış/müqavilə dəyişikliyi əvvəlcədən razılaşdırılır.
Release Calendar: məhsullara/bölgələrə/komandalara görə görünən pəncərələr.
Runbooks: Hər bir komponent üçün - açma/geri alma/diaqnostika prosedurları.
Postmortem/Retro: əhəmiyyətli buraxılışlardan sonra - təhlil və fəaliyyət.
12) Staging test profilləri
Müqavilə (API/Events): Uyğunsuz dəyişiklikləri bloklayın.
İnteqrasiya/e2e: «depozit», «KYC», «çıxış».
Yük smoke: təmsil zirvələri; resurs limitlərini izləyirik.
Xaos ssenariləri: provayderin bağlanması, gecikmənin artması, şəbəkə fappinqləri.
Sintetik monitorinq: cədvəl üzrə «sınaq» əməliyyatları.
13) Misal Makefile buraxılış məqsədləri (fraqment)
makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog
14) Rollar və məsuliyyət
Dev/Team: kod keyfiyyəti, testlər, miqrasiyalar, runbooks.
QA: UAT/regression ssenariləri, gates keyfiyyət nəzarət.
SRE/Platforma: payplaynların etibarlılığı, müşahidə, siyasət.
Release Manager: təqvim, pəncərələr, CAB, son həll.
Security: SAST/DAST/SCA, supply-chain, gizli siyasət.
15) Buraxılışların yetkinlik modeli
1. Əsas - əl yoxlamaları, nadir buraxılışlar, geri qayıtmalar çətindir.
2. Qabaqcıl - standartlaşdırılmış CI/CD, staging-kontur, canary/blue-green, tez-tez buraxılışlar.
3. Ekspert - tenant/regionlar üzrə mütərəqqi çatdırılma, feature flags-first, policy-as-code, SLO üzrə avto-çıxış, tam izlənmə və SLSA.
16) Tətbiqi yol xəritəsi
M0-M1 (MVP): payline şablon, build + sign + SBOM, staging-deploy, əsas testlər və gates.
M2-M3: canary/blue-green, prevyu per-PR, müqavilə testləri, DAST, synthetic checks.
M4-M6: feature flags platforma, shadow traffic, policy-as-code, auto-catch, release calendar + CAB-workflow.
M6 +: regionlar üzrə ring-deployments, SLSA-sertifikatlaşdırma və ciddi admission, tam avtomatlaşdırma runbooks.
17) Prodüser buraxılışından əvvəl çek siyahısı
- Şəkil imzalanır, SBOM yüklənir və buraxılışa bağlıdır.
- Müqavilələr uyğun, yaşıl testlər, e2e staging keçdi.
- Miqrasiyalar yoxlanılır (dry-run), backup hazırdır, geri dönüş planı təsvir edilmişdir.
- Daşbordlar/Alertlər yeniləndi, SLO geytləri aktivdir.
- Runbook və Changelog dərc, Windows Release razılaşdırılır.
- Feature flags mütərəqqi aktivləşdirilməsi üçün xüsusi.
- Freeze-məhdudiyyətlər yerinə yetirilir, on-call hazırdır.
Qısa nəticə
Düzgün dizayn edilmiş staging-paypline relizləri idarə olunan rutinə çevirir: vahid şablonlar, aydın quality gates, təhlükəsiz təchizat zənciri, mütərəqqi yuvarlanma və müşahidə riskləri azaldır və keyfiyyət və iş metrləri üzərində nəzarəti saxlayaraq istehsaldakı dəyişikliklərin çıxarılması müddətini azaldır.