Rolbeklər və sabitliyin bərpası
(Bölmə: Texnologiya və Infrastruktur)
Qısa xülasə
Geri dönüş - minimum məlumat itkisi və SLO pozuntuları riski ilə son sabit versiyaya idarə olunan qayıdışdır. Etibarlı prosesə daxildir: SLO siqnalları, aydın geytalar və geri dönüş meyarları, keçid mexanizmi (GitOps/Ingress/mesh), uyğun məlumat sxemi, təcrid olunmuş konfiqlər/sirlər/keşlər, runabuk və post-insident təkmilləşdirmə dövrü.
1) Nə zaman geri çəkilmək (başlanğıc meyarları)
SLO/biznes geytaları: p95/99 həddindən yuxarı, error-rate ↑, ödənişlərin/bahislərin konversiyasının azalması, PSP vaxtlarının artması.
Texniki siqnallar: podların boyası, yaddaş sızması, növbələrin böyüməsi, tokenlərin deqradasiyası/san (LLM), Edge-də 5xx.
Məlumat riski: səhv miqrasiyalar, uyğunsuzluqlar, yetim əməliyyatlar/ödənişlər.
Təhlükəsizlik/PII: sızma şübhəsi - dərhal geri çəkilmə/izolyasiya.
Qayda: 2 + açar metrik həddindən kənarda olarsa> N dəqiqə - geri dönüş başlayır.
2) Rolback növləri
1. Əlavə: konteynerlərin/paketlərin əvvəlki etiketə geri qaytarılması.
2. Fici: feature flag/kill-switch vasitəsilə ani söndürmə.
3. Marşrutlaşdırma: sabit versiyada (canary → stable) və ya Blue → Green-də çəkinin geri qaytarılması.
4. Verilənlər bazası: məntiqi geri qaytarma (kompensasiya), mərhələli sxem geri qaytarılması; PITR - son çarədir.
5. Infrastruktur: manifestlərin geri çəkilməsi/Terraform-plan; şəbəkə konfiqurasiyaları/WAF qaytarılması.
6. Verilənlər/cache/növbələr: mesajların sıfırlanması/əlilliyi/təkrar oynaması; version caches.
3) Təhlükəsiz geri dönüş memarlıq prinsipləri
sxemlərin uyğunluğu: strategiya expand → migrate → contract (geri expand və contract arasında mümkündür).
Təcrid olunmuş asılılıqlar: təftiş üçün ayrı-ayrı sirlər/konfiqlər/keşlər/növbələr.
İdempotent əməliyyatları: miqrasiyaların və job-un təkrar başlaması təhlükəsizdir.
Artefaktların immutabilliyi: şəkillər, çartlar, SQL skriptləri - versiyalaşdırılmış və imzalanmışdır.
GitOps-həqiqət: cari versiyası və marşrutlaşdırma manifest-anbar qeyd olunur.
4) Geri dönüş mexanikası (Kubernetes/GitOps)
Argo Rollouts (geri çəkisi)
yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: api }
spec:
strategy:
canary:
steps:
- setWeight: 5
- pause: { duration: 10m }
in case of analysis failure → automatic rollback to stable
GitOps-geri dönüş (ideya)
git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision
NGINX: stable sürətli switch
nginx map $cookie_canary $to_canary { default 0; 1 1; }
upstream stable { server api-stable:80; }
upstream canary { server api-canary:80; }
server {
location / {
if ($to_canary) { proxy_pass http://canary; }
proxy_pass http ://stable; # removed canary cookie - instant rollback
}
}
5) DB Rolback və məlumatların qorunması
Expand → Migrate → Contract:- Expand: Yeni sahələr/indekslər əlavə edin, kod köhnə və yeni sxemi dəstəkləyir.
- Migrate: kod yeni bir sxem yazmağa başlayır, köhnə sındırmaq deyil.
- Contract: köhnə yalnız sabitləşdikdən sonra silinir.
- PITR/snapshot: Yalnız məntiqi kompensasiya mümkün olmadıqda istifadə edin.
- Kompensasiya: əlavələri/balansları/ödənişləri düzəltmək üçün ayrı-ayrı skriptlər/joblar.
- Read-only pəncərələr: tənqid edildikdə - vəziyyəti «dondurmaq» üçün yazını müvəqqəti bloklayın.
sql
-- expand
ALTER TABLE wallet ADD COLUMN bonus_balance NUMERIC DEFAULT 0 NULL;
CREATE INDEX CONCURRENTLY idx_wallet_bonus ON wallet(bonus_balance);
-- migrate in code, two-sided write
-- contract (after stabilization)
ALTER TABLE wallet DROP COLUMN legacy_bonus_balance;
6) Geri dönərkən növbələr və keşlər
Version cache: prefiks versiyası ('v2:') → təhlükəsiz birlikdə yaşamaq.
Əlillik: geri çəkildikdə - kütləvi təmizləmə 'v2:', geri qaytarılma 'v1:'.
Növbələr: versiya üzrə partiyalar/topiklər; «nəzarət nöqtəsindən» mesajları təkrarlamaq.
Deadpublikation/idempotentlik: dubl olmadan təkrar emal üçün idempotentlik açarları.
7) SLO geytləri və avtomatik geri çəkilmələr
Metriklər: p95/99, error-rate, saturations (CPU/IO/GPU), queue depth, tokenlər/san, ödəniş çevirmə.
Siyasət (nümunə):
if p95_latency_ms > 250 for 5m OR error_rate > 1. 5% for 3m OR payment_conv < baseline-0. 3%
then rollback release && open incident && freeze deploys
8) Runabooks (playbooks)
A) Buraxıldıqdan sonra p99 və 5xx artım
1. Stop promote (canary/blue-green dondur).
2. Sabit audit üçün Switch traffic.
3. Cash-hit/növbə/PSP gecikmələrini yoxlayın.
4. Diaqnostikanı çıxarın: qeydlər, profillər, müştəri/sxemlərin versiyaları.
5. Rabitə: ChatOps, status-kanal, insident-kart.
6. Düzeltici hərəkətə başlayın: patch/hot fix/fich ləğv.
B) DB miqrasiyasında səhv
1. Freeze writes (read-only, qısa).
2. proqram → sabit versiyası geri (köhnə sxem ilə uyğun).
3. Kompensasiya/rollback-script yerinə yetirin.
4. Yazını dondurun; drift/səhvləri müşahidə edin.
C) Ödənişlərin deqradasiyası (PSP)
1. PSP marşrutunu əvvəlki marşruta keçin.
2. Prosessinq buraxılışının geri çəkilməsi.
3. Bütün tamamlanmamış ödənişlərin yoxlanılması, idempotent açarları ilə təkrar.
D) LLM/tövsiyələr deqradasiya
1. Yeni model/parametrləri söndürün (feature flag).
2. Əvvəlki enpoint/çəki geri; yeni təftiş KV cache təmizləmək.
3. Tokens/s, ilk latency tokenini, toksikliyini yoxlayın.
9) Rabitə və relizlərin dondurulması
Freeze window: geri qaytarıldıqdan sonra - RCA/fix-ə qədər fasilə.
Vahid kanal: status yenilənməsi, hərəkətlərin xronologiyası, kim nə etdi.
Stakholders: məhsul/CS/ödənişlər/hüquqşünaslar (PII ilə).
10) Post-insident: təhlil və profilaktika
RCA (ittihamsız): əsas səbəb, faktorların töhfəsi, niyə geytlər işləmədi (əgər işləməyibsə).
Fəaliyyət: miqrasiya testləri, limitlər, fiziki geytlər, müşahidə.
SLO-eşik: çox «yumşaq «/» sərt »olduqda düzəliş.
Sənədləşmə: Runabuki yeniləmək, həyəcan, məşq (game-day) əlavə etmək.
11) Alətlər və şablonlar
GitOps: Argo CD/Flux - 'revert '/' rollback' commit versiyası ilə.
Progressive delivery: Argo Rollouts/Flagger - stop/geri metrik.
Edge/Ingress: çəki marşrutu, cookies routing, sürətli switch.
Feature flags: fractional rollout, kill-switch.
DB miqrasiya: up/down, dry-run, throttling ilə mig-frameworks.
Observability: hazır dashboard «release compare» (stable vs canary).
12) Geri çəkilməyə hazırlıq yoxlama siyahısı
1. Version və imzalanmış artefaktlar (şəkillər/çartlar/SQL).
2. İki relsli konfiqlər/sirlər/keşlər/növbələr (versiya prefiksləri).
3. expand → migrate → contract.
4. SLO gates və auto-skid ilə kanarya və mavi-yaşıl relizlər.
5. Əsas ssenarilərdə Runabook (ödənişlər/BD/cache/LLM).
6. ChatOps düymələri: '/rollback ', '/freeze', '/promote '.
7. Audit və loging: kim, nə vaxt, nə yuvarlandı; diaqnostika artefaktları.
8. Game-day təlim: uğursuzluqlar və bərpa imitasiya.
9. Biznes və sapport ilə ünsiyyət planı.
10. Müqayisə metrikası (stable vs new) bir ekranda.
13) Anti-nümunələr
Kod yayılana qədər dağıdıcı miqrasiyalar (əks uyğunluq yoxdur).
Versiyasız ümumi caches/növbələr → «çirkli» geri dönüş.
No GitOps/dəyişiklik tarixi → Prod «əl» düzəlişlər.
Gates/telemetriya olmadan Kanarya Release → gec aşkarlama.
freeze və RCA olmadan geri dönüş → hadisənin təkrarlanması.
Biznes metrik olmadan yalnız texniki monitorinq (ödənişlər/dərəcələr).
Bütün reviziyalar üçün «ümumi sirləri» → hadisəni təcrid etmək çətindir.
Nəticələr
Etibarlı rolback «stop-kran» deyil, buraxılışlarda quraşdırılmış bir prosesdir: versiya və uyğunluq, təcrid olunmuş asılılıqlar, SLO-geytlar, GitOps-reallıq, avtomatik geri dönüşlər və aydın runabuklar. Bu yanaşma iGaming platformalarına məlumat və gəlir itkilərini minimuma endirərək sabitliyi tez bir zamanda qaytarmağa və hər bir hadisəni təkmilləşdirmə mənbəyinə çevirməyə imkan verir.