Dəyişikliyin geri qaytarılması ssenariləri
(Bölmə: Əməliyyatlar və İdarəetmə)
1) Niyə geri dönüş ssenariləri lazımdır
Hətta mükəmməl testlə bəzi dəyişikliklər deqradasiyaya səbəb olur. Geri dönüş - məlumat və uyğunluq itkisi olmadan əvvəlcədən müəyyən edilmiş «təhlükəsiz» versiyaya qayıtmaq üçün idarə olunan əməliyyatdır. Məqsədlər: MTTR-i azaltmaq, pul/məlumatları qorumaq, tərəfdaşların və tənzimləyicilərin etibarını qorumaq.
2) Dəyişikliklərin təsnifatı və geri qaytarma yanaşmaları
Kod və konteynerlər: versiyalaşdırıla bilən artefaktlar → mavi-yaşıl, canary, əvvəlki görüntü üçün ani geri dönüş ilə rolling.
Konfiqurasiya/feature toggle rollback, TTL və audit ilə atom açarları.
DB sxemləri: expand → migrate → contract, iki yönlü miqrasiyalar, «kölgə» sütunları, arxa fonda backfill.
Məlumatlar/qiymət vərəqləri/vergilər: artefaktların versiyaları ('fx _ version', 'tax _ rule _ version', 'pricelist _ version'), «dondurma» və geri qaytarma.
İnteqrasiya (PSP/KYC/məzmun provayderləri): marşrutları/hovuzları, fallback ehtiyat provayderinə keçid.
Infrastruktur/şəbəkə/CDN: qaydaların/marşrutların mərhələli geri qaytarılması, sertifikatların/düymələrin geri qaytarılması.
3) Geri dönüş üçün memarlıq nümunələri
Immutable releases: Hər buraxılış əvvəlkini dərhal seçmək imkanı ilə imzalanmış bir artefaktdır.
Uyğunluq layları: schema-compat (əlavə etmək, silməmək), tolerant-reader istehlakçı tərəfində.
Dual-write və shadow-reads: «keçid» əvvəl tutarlılığı müqayisə edin.
İdempotentlik və dastanlar: cross-servis əməliyyatları üçün kompensasiya addımları.
Ficheflags: «isti» redeploi əvəzinə sürətli söndürmə/mərhələli açma.
4) Geri dönüş nöqtələri ilə yuvarlanma strategiyaları
Canary N%: avtomatik geri deqradasiya zamanı metrik/guard →; müvəffəqiyyətlə - 100% -ə qədər uzanır.
Blue-Green: iki prod yığın; keçid trafik və ani rollback geri.
Rolling with pause: «fasilə nöqtələri» və əvvəlki dalğaya geri dönmə imkanı ilə partiyalar üzrə yeniləmə.
Kohortlara görə ficheflags: «qaranlıq başlanğıc», whitelists, regional/tenant bayraqları.
5) DB və miqrasiyanın geri çəkilməsi: təhlükəsiz şablonlar
expand → migrate → contract olmadan heç vaxt «dağıdıcı» miqrasiya etməyin:1. Expand: Yeni sütunlar/indekslər/end-pointlər əlavə edin, kod hər iki versiyada yazır.
2. Migrate: backfill və validasiya; yeni strukturdan «kölgə» oxumaq.
3. Contract: stabillikdən sonra köhnə söndürün.
İki istiqamətli: hər bir miqrasiyada 'down ()' var; böyük dəstlər üçün - fiziki çıxarılma əvəzinə logical revert (bayraqlar, marşrut).
Snapshot/point-in-time: PITR/kritik buraxılışdan əvvəl cədvəllərin snapshot.
Sxemlərə nəzarət: CI/CD + «dry-run» staging/replikasında müqavilə validatorları.
6) Kataloq/qiymət/vergilərin geri qaytarılması
Qiymət siyahıları və vergi qaydaları versiyası; nəşr qəbzləri saxlayın.
Sifarişlərdə 'fx _ version '/' tax _ rule _ version' yazın - geri qaytarma köhnə çekləri pozmur.
«PriceMismatch» → fors-əlil cache, artefaktın əvvəlki versiyasına qayıtmaq, siyasət üzrə kompensasiya.
7) İnteqrasiya və xarici provayderlər
PSP/KYC/məzmun: ehtiyat marşrutları, sağlamlıq testləri, DNS/LB sürətli keçid, fərdi açarlar saxlayın.
Webhucks: write-drop və növbələri açın; geri dönərkən - idempotent açarları olan «ölü məktublardan» reple.
Sertifikatlar/açarlar: qoşa yükləmə (köhnə + yeni), keçid etməzdən əvvəl uyğunluq testi.
8) Geri çəkilmə («run») və qvardraillərin avtomatlaşdırılması
Руны (кнопки): Rollback Release, Disable Flag, Re-route, Flush Cache, Scale Back, Restore Schema.
Guardian: başlanğıc geri IC/sahibi mövcuddur; jurnal imzalanmış (DSSE), əməliyyatların tezlik limitləri, təsdiq çek siyahısı.
Avtomatik geri dönüş: SLO/persentil/səhv/maliyyə siqnalları üçün şərtlər (məsələn, Δ quote quote checkout ≠ 0).
9) Rabitə və artefaktlar
Buraxılış kartında: versiya, hash, prerekvizitlərin çek siyahısı, geri qaytarma playbook, cavabdeh.
Geri dönmə zamanı: zaman işarələri, səbəb, təsirlənmiş trafikin həcmi, artefaktlar (log-linklər, metriklər əvvəl/sonra).
Xarici kommunikasiyalar (status-səhifə/partnyorlar): qısa və faktoloji.
10) Geri qaytarma pleybukları (referans)
Kod/görüntü deqradasiya (P1):1. Re-route/Blue-Green back → 2) versiyası düzəltmək → 3) əlavə yayılması bloklamaq → 4) forensics.
Bayraq səhvlərin artmasına səbəb olur:1. Disable Feature Flag (100%) → 2) cache/follback təmizlənməsi → 3) düzəliş bileti.
Miqrasiya DB vaxt verir:1. dayandırmaq heavy-backfill → 2) köhnə sxem oxumaq geri (dual-read off) → 3) yük/indekslər aşağı → 4) qiymətləndirmək 'down ()' və ya məntiqi geri.
PriceMismatch/FX/Tax:1. geri çəkilmə 'pricelist _ version '/' tax _ rule _ version' → 2) edge-cache əlilliyi → 3) kompensasiya və çeklərin müqayisəsi.
PSP uğursuzluğu:1. ehtiyat PSP keçid → 2) karantin «boz» əməliyyatlar → 3) sabitləşmədən sonra növbə.
Açar/sertifikat sındırıldı:1. əvvəlki açar geri (dual-key) → 2) rotasiya və repablich.
11) RACI
12) Keyfiyyət metrikası və SLO
Change Failure Rate (CFR) - geri çəkilmə ilə relizlərin payı (hədəf ↓).
MTTR (geri çəkilmə ilə) - sabitliyə qayıtma vaxtının medianı.
Time-to-Rollback - triggerdən geri çəkilmənin tamamlanmasına qədər (P1 ≤ 15-20 dəq).
Δ -metrika əvvəl/sonra (p95, error-rate, E2E success).
Eyni səbəbin təkrar geri qaytarılması ≤ N/kvartal.
Audit-əhatə: 100% artefaktlar və imzalarla geri qaytarma.
13) Təhlükəsizlik, gizlilik, uyğunluq
WORM-jurnallar üçün relizlər/geri dönüşlər; artefaktların tənzimləyicilər tərəfindən saxlanılması.
PII/Maliyyə: geri çəkilmənin icazəsiz zonalara/köhnə siyasətlərə giriş açmadığını yoxlamaq.
SoD: «kim yuvarlanır» ≠ «kim təsdiqləyir» ≠ «kim geri qaytarmağa başlayır».
Credits/Secrets: dual-rollover və əvvəlki açar üçün dərhal geri.
14) Maliyyə və əməliyyat effektləri
Fasilə haqqı vs geri qaytarma dəyəri: SLO-guard vasitəsilə həlli avtomatlaşdırın.
Kompensasiya/SLA kreditləri - pleybuklarda şablonlar.
Egress/compute-cap: geri çəkilmə müvəqqəti olaraq yükü qaldıra bilər (reple/cache nasos) - pəncərələri planlaşdırın.
15) Buraxılışdan əvvəl çek siyahısı (go/no-go)
- İmzalanan artefaktlar və geri dönüş nöqtəsi (şəkil/ /verilənlər versiyası).
- Yuvarlanma planı və geri dönüş oyunu (addımlarla).
- Təsdiqlənmiş miqrasiyalar: expand → migrate → contract, PITR aktiv.
- Dials/guard SLO: alert sistemində avtomatik geri dönüş şərtləri.
- Rabitə kanalları: IC/Owners/Comms on-call.
- Əks uyğunluq testləri və staging üzərində «quru qaçış».
- Kritik inteqrasiya üçün ehtiyat marşrutlar.
- Rabitə planı (daxili/xarici) və şablonları.
16) Geri çəkildikdə çek siyahısı (hadisə zamanı)
- Trigger və təsir həcmi təsdiq (region/tenant/kanal).
- «Biz nəyə yuvarlanırıq» versiyasını düzəltmək.
- Run geri (kod/bayraq/marşrut/məlumat).
- SLI/SLO və biznes metriklərini yoxlayın (E2E, checkout, webhucks).
- Kataloqlar/versiyaları müqayisə edin (FX/Tax/PriceList).
- Vəziyyəti möhkəmləndirin: yeni yamacların qadağan edilməsi, artefaktların toplanması.
- Rabitə: status-səhifə, tərəfdaşlar, daxili.
17) Tez-tez səhvlər və anti-nümunələr
Artefaktlar və imzalar olmadan «əl ilə» geri dönüş.
İki yönlü olmayan dağıdıcı miqrasiyalar və PITR.
«Qlobal açar» olmadan feature-flag.
PSP/KYC üçün ehtiyat marşrutların olmaması.
Qızdırılmadan cache təmizlənməsi → uçqun soyuq sorğular.
Qiymət siyahısını geri qaytardıqdan sonra hesaba alınmamış quote ≠ checkout.
18) FAQ
«Yerində» fiksi deyil, geri qayıtmaq daha yaxşıdır?
SLO/pul/məlumat riski pozulduqda, məşhur sabit versiyaya qayıtmaq daha sürətli və təhlükəsizdir.
«Dağıdıcı» miqrasiyaları geri qaytarmaq mümkündürmü?
Bəli, expand → migrate → contract ilə 'down () '/PITR və məntiqi follbek kimi nəzərdə tutulubsa.
Geri qaytarma qərarını necə avtomatlaşdırmaq olar?
SLO-qvardrails (p95, error-rate, Δ-qiymətlər, vebhukların uğuru) + risk matrisi → avto-run.
«Arasında» sifarişlər/əməliyyatlar ilə nə etmək lazımdır?
İdempotent açarları, «boz» əməliyyatların karantini, baba ilə növbələrin replikaları.
Xülasə: Geri dönüş ssenariləri improvizasiya deyil, tez bir zamanda sabitliyə qayıtmaq üçün əvvəlcədən hazırlanmış bir qabiliyyətdir. Hər şeyi verin, geri dönən məlumat sxemini saxlayın, ficheflages və canary istifadə edin, runes avtomatlaşdırın, artefaktları və SLO-guard 'ları düzəldin. Sonra hər hansı bir buraxılış idarə edilə bilən olaraq qalır və biznes proqnozlaşdırıla bilən sabitdir.