Oʻzgarishlarni qaytarish skriptlari
(Bo’lim: Operatsiyalar va Boshqaruv)
1) Qaytarish stsenariylari nima uchun kerak?
Hatto mukammal testda ham o’zgarishlarning bir qismi tanazzulga olib keladi. Orqaga qaytish - ma’lumotlar va komplayensni yo’qotmasdan oldindan belgilangan «xavfsiz» versiyaga qaytishning boshqariladigan operatsiyasidir. Maqsad: MTTRni qisqartirish, pul/ma’lumotlarni himoya qilish, sheriklar va regulyatorlarning ishonchini saqlash.
2) O’zgarishlarni tasniflash va qaytarishga yondashuvlar
Kod va konteynerlar: versiyalashtiriladigan artefaktlar → blue-green, canary, rolling.
Konfiguratsiyalar/ficheflaglar: feature toggle rollback, TTL va auditga ega atom kommutatorlari.
DB sxemalari: expand → migrate → contract, ikki yo’nalishli migratsiyalar, «soyali» ustunlar, fondagi backfill.
Ma’lumotlar/prays-varaqlar/soliqlar: artefaktlarning versiyalari (’fx _ version’,’tax _ rule _ version’,’pricelist _ version’), «muzlatish» va qaytarish.
Integratsiyalar (PSP/KYC/kontent provayderlari): marshrutlarni/pullarni, fallbackni zaxira provayderga o’tkazish.
Infratuzilma/tarmoq/CDN: qoidalar/yo’nalishlar bosqichma-bosqich qaytishi, ikki marta yuklangan sertifikatlar/kalitlar qaytishi.
3) Qaytariluvchanlik uchun arxitektura patternlari
Immutable releases: har bir reliz - avvalgisini bir zumda tanlash imkoniyati bilan imzolangan artefakt (rasm/rasm).
Moslik qatlamlari: schema-compat (qoʻshish, olib tashlamaslik), tolerant-reader isteʼmolchilar tomonida.
Ikki marta yozish (dual-write) va shadow-reads: «almashtirishdan» oldin konsistentsiyani solishtiring.
Idempotentlik va dostonlar: kross-servis tranzaksiyalari uchun kompensatsiya choralari.
Ficheflaglar: «issiq» o’rniga tez o’chirish/bosqichma-bosqich yoqish.
4) Qaytarish nuqtalari bilan yoyish strategiyalari
Canary N%: metriklar/gvardrayllar → avto-otkat degradatsiyasida; muvaffaqiyatli bo’lganda - 100% gacha kengaytirish.
Blue-Green: ikkita prod-stek; trafikni almashtirish va tezkor rollback.
Rolling with pause: «tanaffus nuqtalari» va oldingi to’lqinga qaytish imkoniyati bo’lgan partiyalar bo’yicha yangilanish.
Kohortlar bo’yicha ficheflaglar: «qorong’u uchirish», whitelists, mintaqaviy/tenant bayroqlar.
5) DB va migratsiyani qaytarish: xavfsiz shablonlar
expand → migrate → contract:1. Expand: yangi ustunlar/indekslar/endpointlar qoʻshish, kod ikkala versiyada ham yoziladi.
2. Migrate: backfill va validatsiyalar; yangi tuzilishdan «soyali» o’qish.
3. Contract: barqarorlikdan keyin eskisini oʻchirish.
Ikki yo’nalishli: har bir migratsiya’down ()’ga ega; katta to’plamlar uchun - jismoniy o’chirish o’rniga logical revert (bayroqlar, yo’nalishlar).
Snapshotlar/point-in-taym: PITR/tanqidiy chiqarishdan oldin jadvallar snapshot.
Sxemalarni nazorat qilish: kontraktlar validatorlari CI/CD + «dry-run» da staging/replikada.
6) Katalog/narxlar/soliqlar ma’lumotlarining qaytarilishi
Prays-varaqlar va soliq qoidalarini versiya qiling; nashr kvitansiyalarini saqlang.
Buyurtmalarga’fx _ version ’/’ tax _ rule _ version’- qaytarish eski cheklarni buzmaydi.
«PriceMismatch» da → keshning fors-nogironligi, artefaktning oldingi versiyasiga qaytish, siyosat bo’yicha kompensatsiya.
7) Integratsiyalar va tashqi provayderlar
PSP/KYC/kontent: zaxira yo’nalishlarni, sog’liq sinovlarini, DNS/LB tezkor almashtirishni, alohida kalitlarni saqlang.
Vebxuklar: write-drop va navbatlarni yoqing; orqaga qaytganda - idempotent kalitlari bo’lgan «o’lik xatlar» dan olingan gaplar.
Sertifikatlar/kalitlar: ikki marta yuklash (eski + yangi), almashtirishdan oldin moslashuvchanlikni tekshirish.
8) Orqaga qaytish («runalar») va gvardrayllarni avtomatlashtirish
Руны (кнопки): Rollback Release, Disable Flag, Re-route, Flush Cache, Scale Back, Restore Schema.
Gvardraillar: qaytishni ishga tushirish IC/egasi uchun mavjud; jurnal imzolangan (DSSE), operatsiyalar chastotasi limitlari, tasdiqlash chek-varaqasi.
Avto-qaytish: SLO/persentillar/xatolar/moliyaviy signallar bo’yicha shartlar (masalan, Δ quote quotcout ≠ 0).
9) Kommunikatsiyalar va artefaktlar
Reliz kartochkasida: versiya, xeshlar, prerekvizitlar chek-varaqasi, qaytarish pleybuki, mas’ul.
Orqaga qaytishda: vaqt belgilari, sabab, ta’sir ko’rsatilgan trafikning hajmi, artefaktlar (log-havolalar, metriklar).
Tashqi kommunikatsiyalar (maqom-sahifa/sheriklar): qisqa va faktologik.
10) Qaytarish pleybuklari (referens)
Kod/tasvir tanazzulga uchraydi (P1):1. Re-route/Blue-Green back → 2) versiyani tuzatish → 3) keyingi yoyishlarni to’sib qo’yish → 4) forenzika.
Bayroq xatolar koʻpayishiga olib keladi:1. Disable Feature Flag (100%) → 2) kesh/follbeklarni tozalash → 3) tuzatish uchun chipta.
DB migratsiyasi taymautlarni beradi:1. to’xtatish heavy-backfill → 2) o’qishni eski sxemaga qaytarish (dual-read off) → 3) yukni/indekslarni kamaytirish → 4)’down ()’yoki mantiqiy orqaga qaytishni baholash.
PriceMismatch/FX/Tax:1. ’pricelist _ version ’/’ tax _ rule _ version’ → 2) edge-keshni nogironlashtirish → 3) kompensatsiyalar va cheklarni solishtirish.
PSP muvaffaqiyatsiz tugadi:1. zaxira PSPga o’tish → 2) «kulrang» tranzaksiyalar karantini → 3) barqarorlashgandan keyin navbat ko’rsatish.
Sertifikat/kalit buzildi:1. oldingi kalitga qaytish (dual-key) → 2) rotatsiya va repablash.
11) RACI
12) Sifat metrikasi va SLO
Change Failure Rate (CFR) - qaytish relizlari ulushi (maqsad ↓).
MTTR (orqaga qaytish bilan) - barqarorlikka qaytish vaqtining medianasi.
Time-to-Rollback - triggerdan to qaytarish tugagungacha (P1 ≤ 15-20 min).
Δ - metrika do/keyin (p95, error-rate, E2E success).
Bir xil sababni takroran qaytarish ≤ N/chorak
Audit-qamrov: 100% artefaktlar va imzolar bilan qaytarish.
13) Xavfsizlik, maxfiylik, komplayens
relizlar/qaytishlar uchun WORM-jurnallar; artefaktlarni regulyatorlar bo’yicha saqlash.
PII/moliya: orqaga qaytish ruxsat etilmagan zonalarga/eski siyosatchilarga kirish imkoniyatini ochmasligini tekshirish.
SoD: «kim tarqatadi» ≠ «kim ma’qullaydi» ≠ «kim qaytarishni boshlaydi».
Kreadlar/sirlar: dual-rollover va oldingi kalitga bir zumda qaytish.
14) Moliyaviy va operatsion samaralar
To’xtab qolish narxi vs qaytarish qiymati: SLO-gvardraillar orqali yechimni avtomatlashtiring.
Kompensatsiya/kreditlar bo’yicha SLA - pleybuklardagi shablonlar.
Egress/compute-cap: orqaga qaytish vaqtincha yukni ko’tarishi mumkin (replay/kesh nasos) - oynalarni rejalashtiring.
15) Chiqarishdan oldingi chek-varaq (go/no-go)
- Imzolangan artefaktlar va qaytarish nuqtasi (rasm/ /maʼlumotlar versiyasi).
- Tekislash rejasi va qaytish pleybuki (qadamlar bo’yicha).
- Tasdiqlangan migratsiyalar: expand → migrate → contract, PITR aktiv.
- Dials/gvardraillar SLO: alert tizimidagi avto-qaytarish shartlari.
- Aloqa kanallari: IC/Owners/Comms on-call.
- Teskari moslik va «quruq yugurish» testlari.
- Muhim integratsiyalar uchun zaxira yo’nalishlar.
- Kommunikatsiyalar rejasi (ichki/tashqi) va namunalar.
16) Qaytish chek-varaqasi (hodisa vaqtida)
- Trigger va ta’sir qilingan hajmni tasdiqlash (mintaqa/tenant/kanal).
- «Nimaga qaytyapmiz» versiyasini tuzatish.
- Qaytarish runasini bajarish (kod/bayroq/yo’nalish/ma’lumotlar).
- SLI/SLO va biznes metriklarini tekshirish (E2E, checkout, vebxuklar).
- Kataloglar/versiyalarni solishtirish (FX/Tax/PriceList).
- Holatni mustahkamlash: yangi rulonlarni taqiqlash, artefaktlarni to’plash.
- Aloqa: status-sahifa, sheriklar, ichki.
17) Tez-tez xatolar va anti-patternlar
Artefaktlar va imzolarsiz «qo’lda» orqaga qaytish.
Ikki yo’nalishsiz va PITRsiz halokatli migratsiyalar.
«Global oʻchirgichsiz» feature-flag.
PSP/KYC uchun zaxira yo’nalishlar yo’qligi.
Keshni isitmasdan tozalash → sovuq soʻrovlar koʻchkisi.
Prays-varaq qaytarilgandan keyin hisobga olinmagan quote ≠ checkout.
18) FAQ
Qachonki «joyida» emas, balki orqaga qaytish yaxshiroq?
Agar SLO/pul/maʼlumotlar xavfi buzilsa, maʼlum barqaror versiyaga qaytish tezroq va xavfsiz boʻladi.
«Buzuvchi» migratsiyalarni qaytarish mumkinmi?
Ha, agar ular expand → migrate → contract s’down () ’/PITR va mantiqiy follbek sifatida ishlab chiqilgan bo’lsa.
Rad etish qarorini qanday avtomatlashtirish mumkin?
SLO-gvardraillar (p95, error-rate, Δ-narxlar, vebxuklarning muvaffaqiyati) + tavakkalchilik matritsasi → avto-runa.
«Orasidagi» buyurtmalar/tranzaksiyalar bilan nima qilish kerak?
Idempotent kalitlari, kulrang operatsiyalar karantini, bobo bilan navbat ko’rsatish.
Xulosa: Orqaga qaytish stsenariylari improvizatsiya emas, balki tezda barqarorlikka qaytish uchun oldindan ishlab chiqilgan qobiliyatdir. Hamma narsani versiya qiling, qaytariladigan ma’lumotlar sxemasini saqlang, ficheflaglar va kanarlardan foydalaning, runlarni avtomatlashtiring, artefaktlar va SLO-gvardrayllarni tuzating. Shunda har qanday reliz boshqarilishi mumkin, biznes esa oldindan aytib bo’ladigan darajada barqaror bo’lib qoladi.