Rolbekler we durnuklylygy dikeltmek
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
Yza gaýdyp gelmek, iň az maglumatlary ýitirmek we SLO düzgünlerini bozmak töwekgelçiligi bilen iň soňky durnukly wersiýa dolandyrylyp bilinýän gaýdyp gelmekdir. Ygtybarly proses aşakdakylary öz içine alýar: SLO signallary, aýdyň geýtler we yza gaýdyp gelmek ölçegleri, geçiş mehanizmi (GitOps/Ingress/mesh), gabat gelýän maglumat shemasy, izolirlenen konfigalar/syrlar/nagt pullar, runabuk-i we wakadan soňky gowulaşmalar sikli.
1) Haçan çykarmaly (işe girizmegiň ölçegleri)
SLO/biznes-oýunlar: p95/99 bosagadan ýokary, error-rate ↑, tölegleriň/stawkalaryň öwrüminiň peselmegi, PSP wagtynyň ýokarlanmagy.
Tehniki signallar: tagtalaryň boýaglary, ýadyň syzmagy, nobatlaryň ösmegi, tokenleriň zaýalanmagy/sek (LLM), Edge-de 5xx.
Maglumatlaryň töwekgelçiligi: nädogry migrasiýalar, replikalaryň utgaşdyrylmazlygy, ýetim amallary/tölegler.
Howpsuzlyk/PII: syzmak şübhesi - derrew yzyna gaýtarmak/izolýasiýa.
Düzgün: bosaganyň daşyndaky 2 + esasy metrika> N minut bolsa - yza gaýdyp başlaýar.
2) Rolbekleriň görnüşleri
1. Goşundy: konteýnerleri/bukjany öňki taga geçirmek.
2. Fiçler: feature flag/kill-switch arkaly derrew öçürmek.
3. Marşrut: Durnukly wersiýa (canary → stable) ýa-da Blue → Green.
4. Maglumat bazasy: logiki yza gaýdyp gelmek (kompensasiýa), shemanyň tapgyrlaýyn gaýdyp gelmegi; PITR - iň soňky çäre.
5. Infrastruktura: manifestleriň/Terraform-meýilnamanyň yza çekilmegi; / WAF torunyň konfigurasiýalaryny yzyna gaýtarmak.
6. Maglumatlar/keş/nobatlar: habarlary taşlamak/maýyplyk/täzeden oýnamak; wersiýa nagt pullary.
3) Howpsuz yzyna gaýtarmagyň binagärlik ýörelgeleri
Shemalaryň laýyklygy: expand → migrate → contract strategiýasy (expand bilen contract arasynda yza gaýdyp bolýar).
Izolirlenen garaşlylyklar: aýry-aýry syrlar/konfigalar/keşler/barlaglar üçin nobatlar.
Idempotent amallary: migrasiýalaryň we joblaryň gaýtalanmagy - howpsuz.
Artefaktlaryň immuniteti: şekiller, diagrammalar, SQL-skriptlar - wersiýa edildi we gol çekildi.
GitOps-hakykat: häzirki wersiýasy we ugrukdyrylyşy manifest-repozitoriýada hasaba alyndy.
4) Gaýdyş mehanikasy (Kubernetes/GitOps)
Argo Rollouts
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-yza gaýdyp gelmek (ideýa)
git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision
NGINX: stable çalt 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 we maglumatlary goramak
Expand → Migrate → Contract:- Expand: Täze meýdanlary/indeksleri goşuň, kod köne we täze shemany goldaýar.
- Migrate: kod täze shema ýazyp başlaýar, köne shema döwülmeýär.
- Contract: Könesini diňe durnuklaşandan soň aýyrýarys.
- PITR/snapshotlar: diňe logiki öwezini dolmak mümkin bolmadyk ýagdaýynda ulanyň.
- Kompensasiýa: goşma/balans/tölegleri düzetmek üçin aýratyn skriptlar/joblar.
- Oka-only penjireler: tankyt edilende - ýagdaýy "doňdurmak" üçin ýazgyny wagtlaýyn bloklaýarys.
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) Yza gaýdyp barylanda nobatlar we nagt pullar
Wersiýa keşi: deslapky wersiýasy bolan açarlar ('v2:') → howpsuz bilelikde ýaşamak.
Maýyplyk: yzyna gaýtarylanda - köpçülikleýin arassalamak 'v2:', yzyna gaýtarmak 'v1:'.
Nobatlar: wersiýa boýunça partiýa/topiki; "gözegçilik nokadyndan" habarlaryň gaýtalanmagy.
Dublikasiýa/idempotentlik: dublikatsyz gaýtadan işlemek üçin idempotentligiň açarlary.
7) SLO-geýtlar we awto-yza gaýdyşlar
Metrikler: p95/99, error-rate, saturations (CPU/IO/GPU), queue depth, tokenler/sekunt, töleg öwrülişikleri.
Syýasat (mysal):
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) Runabuki (playbooks)
A) Çykarylandan soň p99 we 5xx beýikligi
1. Dur promote (canary/blue-green doňdur).
2. Durnukly gözden geçirmek üçin Switch traffic.
3. Keş-hit/nobat/PSP gijikdirmelerini barlaň.
4. Diagnostikany aýyrmak: loglar, profiller, müşderileriň/shemalaryň wersiýalary.
5. Aragatnaşyk: ChatOps, status-kanal, waka-kartoçka.
6. Düzediş hereketini başla: ýama/gyzgyn fiks/çiçi ýatyrmak.
B) DB göçmekde ýalňyşlyk
1. Freeze writes (read-only, gysgaça).
2. Programmanyň yza çekilmegi → durnukly wersiýa (köne shema bilen gabat gelýär).
3. Kompensasiýalary/rollback skriptini ýerine ýetirmek.
4. Ýazgyny doňdurmak; drift/ýalňyşlyklary synlamak.
C) Tölegleriň pese gaçmagy (PSP)
1. PSP ugrukdyrylyşyny öňki ugruna geçir.
2. Prosessingiň çykarylmagy.
3. Ähli gutarylmadyk tölegleri deňeşdirmek, idempotent açarlary bilen gaýtalamak.
D) LLM/teklipler pese gaçýar
1. Täze modeli/parametrleri öçürmek (feature flag).
2. Öňki endpoint/agramyny yzyna gaýtarmak; Täze barlagyň KV kesşini arassalaň.
3. Tokens/s, ilkinji token latency, zäherliligini barlaň.
9) Aragatnaşyk we goýberilişleri doňdurmak
Freeze window: yza çekilenden soň - RCA/Fix-e çenli goýberiş arakesmesi.
Bir kanal: status-täzelenmeler, hereketleriň hronologiýasy, kim näme etdi.
Steýkholderler: önüm/CS/tölegler/aklawçylar (PII bilen).
10) Post-waka: seljerme we öňüni alyş
RCA (aýyplamasyz): esasy sebäp, geýtleriň näme üçin işlemändigi (eger işlemese) faktorlaryň goşandy.
Hereketler: migrasiýa synaglary, çäkler, fiçeflag-geýtlar, syn ediliş.
SLO-bosagasy: gaty "ýumşak "/" gaty "bolsa düzetmek.
Resminamalar: runabuklary täzelemek, aladalary, türgenleşikleri goşmak (game-day).
11) Gurallar we şablonlar
GitOps: Argo CD/Flux - 'revert '/' rollback' wersiýasy bolan kommita.
Progressive delivery: Argo Rollouts/Flagger - metrler boýunça dur/yza gaýdyň.
Edge/Ingress: agramy marşrutlaşdyrmak, kurka-marşrutlamak, çalt switch.
Feature flags: fractional rollout, kill-switch.
DB göçmek: up/down, dry-run, throttling.
Observability: taýýar daşbordlar "release compare" (stable vs canary).
12) Yzyna gaýtarmaga taýýarlygyň çek-sanawy
1. Wersiýa edilen we gol çekilen artefaktlar (şekiller/diagrammalar/SQL).
2. Iki relsli konfigikler/syrlar/keşler/nobatlar (wersiýa prefiksleri).
3. expand → migrate → contract.
4. SLO derwezeleri we awto-yza gaýdyşlary bolan kanar we gök-ýaşyl neşirler.
5. Esasy ssenariýalara Runabuki (tölegler/BD/nagt pul/LLM).
6. ChatOps-düwmeler: '/rollback ', '/freeze', '/promote '.
7. Audit we logirleme: kim, haçan, näme togtatdy; anyklaýyş artefaktlary.
8. Oýun-gün türgenleşigi: şowsuzlyklara we dikeldişlere öýkünmek.
9. Işewürlik we sapport bilen aragatnaşyk meýilnamasy.
10. Bir ekranda deňeşdirme metrikleri (stable vs new).
13) Anti-patternler
Kod dargadylýança göçmegi ýok edýär (ters gabat gelmeýär).
Wersiýasyz umumy keşler/nobatlar → "hapa" yzyna gaýtarmak.
GitOps/üýtgeşmeler taryhynyň ýoklugy → Prod.
Geýtsiz/telemetriýasyz kanar çykyşy → soňrak ýüze çykma.
Freeze we RCA → hadysanyň gaýtalanmagy.
Diňe biznes-metriksiz tehnometrik gözegçilik (tölegler/nyrhlar).
Ähli barlaglar üçin "umumy syrlar" → wakany izolirlemek kyn.
Netijeler
Ygtybarly rolback "dur-krany" däl-de, relizlere gurlan prosesdir: wersiýa we gabat gelmek, izolirlenen endikler, SLO-geýtlar, GitOps-hakykat, awtomatiki yza gaýdyp gelmek we aýdyň runabuklar. Bu çemeleşme, iGaming platformalaryna maglumatlaryň we girdejileriň ýitgilerini azaltmak arkaly durnuklylygy çalt yzyna gaýtarmaga we her bir hadysany gowulaşmagyň çeşmesine öwürmäge mümkinçilik berýär.