"Auto-Healing" we "self-recovery systems"
1) Awto-healing näme we näme üçin zerur?
"Auto-healing", adamyň gatnaşmazdan şowsuzlyklar ýüze çykan ýagdaýynda, alamatlary dikeltmegiň (SLO) esasy sebäbini (RCA) gözlemekden ileri tutulýan hyzmatyň awtomatiki durnuklaşdyrylmagydyr.
Maksatlar: MTTR azaltmak, nädogry býudjeti goramak, operasiýa çykdajylaryny we adam ýalňyşlyklaryny azaltmak.
- Detekt (metrikler/loglar/sintetika/wakalar).
- Karar (düzgünler/syýasatlar/ML-ewristika).
- Hereket (restart/skail/şedding/ficheflag/rollback/feylower).
- Tassyklamak (SLO ýaşyl).
- Erbetleşende (revert).
2) Awto-healing mehanizmleriniň kartasy
Programma derejesinde: idempotency, timeouts, retry + backoff + jitter, circuit breaker, bulkhead, kesh-degradasiýa (graceful).
Kubernetes: liveness/readiness/startup probes, restartPolicy, PDB, HPA/VPA, Descheduler, Pod/Node auto-remediation.
Tor/edge: rate limits, per-tenant kwotalar, connection draining, fail-open/close, WAF-düzgünler.
Nobatlar/akym: consumer-autoscale, lag-based backpressure, DLQ/parking lot.
Ammar/DB: replika-feýlower, awto-abatlaýyş (rebuild), throttled autovacuum, connection pool rebalancing.
CI/CD: kanareýanyň ýerleşdirilmegi, progressiw delivery, awto-rollback.
Wakalaryň orkestri: retry-syýasatçylar bilen gözegçiler/operatorlar, workflow-hereketlendirijiler (Argo, Airflow).
Watchdog/Heartbeats: Dead Man's Switch fon joblary üçin.
3) Howpsuz self-recovery dizaýnynyň ýörelgeleri
1. SLO-driven: ähli awtomatiki hereketler ulanyjy tejribesine baglanan alamatlar boýunça başlaýar.
2. Canary-first: ilki ýerli/nokat, soň - global.
3. One-way door guardrails: taýmer/şert boýunça yza gaýdyp, töwekgelçilikli amallar üçin "goşa açar".
4. Idempotency: her hereket (täzeden başlamak, göçmek, aýlanmak) gaýtalananda howpsuz.
5. Observability-by-design: hereket bellikleri, ýollar bilen baglanyşyk, "kim/näme/haçan/näme üçin" magazineurnaly.
6. Least privilege: awtomatikanyň iň az hukuklary bar (RBAC, scoped secrets).
7. Cost-aware: "gymmat" hereketlere çäklendirmeler (masştablamak, egress, snepshotlar).
4) Detekt: awto-healing üçin signallar
Метрики: 5xx%, p95/p99 latency, Kafka lag, DB lock/lag, node pressure.
Sintetika: apteimiň düşmegi/ýol regressi (giriş/goýum).
Loglar: ýalňyşlyklaryň täze alamatlary, kadadan çykmalaryň ýygylygy.
События K8s: CrashLoopBackOff, NodeNotReady, FailedScheduling.
Heartbeat: jobanyň dymmagy> N minut.
promql
API error regression sum (rate (http_requests_total{status=~"5"..}[5m]) )/sum (rate (http_requests_total[5m]))> 0. 01
Kafka: lag> threshold max by (topic, group) (kafka_consumergroup_lag)> 10000
K8s: pod в CrashLoopBackOff increase(kube_pod_container_status_restarts_total[5m]) > 3
5) Awto-dikeldiş hereketleri (playbook-katalog)
5. 1 Goşundy/tor
Circuit breaker ON arka tarapyň anomiýasynda → çalt fil-fast + kesh/stab-jogaplar.
Retry + backoff + jitter.
Rate limit/shed-load: artykmaç ýüklenende - möhüm ýollaryň ileri tutulmagy.
5. 2 Kubernetes
Konteýneriň täzeden başlamagy (liveness) we sagdyn däl düwmede aşgazany aýyrmak.
HPA/VPA: RPS/CPU/latency/lag boýunça awto-skeýl; VPA - diňe teklipler ýa-da off-hours apply.
Auto-remediation nod: persistent-problemalarda cordon + drain (taints).
AZ feýllerden goramak üçin Affinity/Topology spread.
5. 3 Nobatlar/akym
Auto-scale consumers по lag; throughput producers.
zäherli habarlar üçin DLQ; arhiwden replay.
5. 4 BD/nagt
Steýt/konfigurasiýany barlamak üçin "Failover".
Baglanyşyklar "syzanda" Connection pool reset.
Müşderileriň awtomatiki reconfigure bilen Hot-standby promote.
5. 5 CI/CD
5xx/p95 ulalanda awto-rollback.
Feature-flags: Global yzyna gaýtarmagyň ýerine awtomatiki OFF.
6) Progressiw delivery we awto-rollback
Mysal (Argo Rollouts kanareýa strategiýasy)
yaml strategy:
canary:
canaryService: api-canary stableService: api-stable steps:
- setWeight: 10
- pause: {duration: 5m}
- analysis:
templates:
- templateName: api-slo-check
- setWeight: 25
- pause: {duration: 10m}
- analysis:
templates:
- templateName: api-slo-check
Eger analiz-templeyt "fail" (ýalňyşlyklar/gizlinlik) yzyna gaýtarsa, rollout awtomatiki usulda yzyna gaýtarylýar.
7) Öz-özüňi dikeldiş guraly hökmünde baýdaklar
Kynçylyk üçin kill-switch (server-side).
Nyşana almak: segmentde/sebitde fiçany öçürmek.
Awto düzgüni: 5xx% Y minutda çip> X bolsa - OFF we backlog bileti.
Tassyklamak: SLO paneli býudjetler bilen.
8) Artykmaç ýük: ölüme çenli özüňi nädip "bejermeli"
Shed-load: Möhüm däl soraglary (nyrhlary, agyr hasabatlary) ret etmek/peseltmek.
Token-bucket/leaky-bucket we tenant/açar üçin kwotalar.
Adaptive concurrency (proxy/SDK derejesinde) - gizlinlik ýokarlananda meňzeşligi peseltmek.
Bulkhead: akym/birikme howuzlarynyň izolýasiýasy.
9) Yzygiderlilik we idempotentlik
Idempotent açarlary (request_id) → gaýtalanmakdan goramak.
Gorkýan amallar (tölegler, hasapdan çykarmalar) - iki fazaly prosesler, tassyklamak/öwezini dolmak (saga).
Outbox/Inbox и exactly-once через idempotency storage.
10) Howpsuzlyk we gabat gelmek
Awtomatika üçin iň az RBAC (diňe zerur çeşmeler).
Ähli hereketleriň barlagy: kim/haçan/haýsy signal/haýsy täsir.
Awto hereketleri öçürmek üçin el bilen override we "gyzyl düwme".
Wakanyň artefaktlaryna we awtomatika magazinesurnallaryna "Legal Hold".
Syrlar - gizlin dolandyryjy arkaly, öz-özüňi dolandyranda açarlary aýlamak.
11) FinOps: "öz-özüňi bejermegiň" bahasy
Iň ýokary awtoscale çäkleri.
Cost per action metrikleri: 1 restartyň, 1 dop-replikanyň, 1TB egress bahasy.
Agregatlar: cost per SLO-minute saved, cost per mitigated incident.
"Gijeki re regimeim" syýasaty: iş traffigi pes bolsa, awtomatikanyň agressiwligi pesdir.
12) Awtomatikanyň syn edilmegi
Sütünlerdäki bellikler: 'remediation _ action =' rollback '', 'source =' argo '', 'reason =' slo _ burn ''.
Aýratyn dashboard: awto-hereketleriň ýygylygy, üstünlik, median recovery time, rollback rate.
Peýdasyna baha bermek üçin "hereket → SLO" baglanyşygy.
13) Konfigikler we mysallar
13. 1 K8s: probes we restart syýasaty
yaml livenessProbe:
httpGet: { path: /healthz, port: 8080 }
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 2 readinessProbe:
httpGet: { path: /readyz, port: 8080 }
periodSeconds: 5 failureThreshold: 3 startupProbe:
httpGet: { path: /startupz, port: 8080 }
failureThreshold: 30 periodSeconds: 5
13. 2 Alert → auto-action (psevdo)
yaml rule: api_5xx_rate_high action:
type: feature_flag target: "payments. new_flow"
set: false guardrails:
cooldown: 10m max_actions_per_hour: 2 rollback_if:
- condition: "5xx% not reduced within 5m"
13. 3 Kafka lag autoscale (HPA kastom metrika boýunça)
yaml metrics:
- type: Pods pods:
metric:
name: kafka_consumer_lag target:
type: AverageValue averageValue: "500"
14) Auto-healing synagy (chaos & game days)
Chaos sanjymlary: tor arakesmeleri, podlary öldürmek/nod, BD/kesh zaýalanmagy.
Oýun günleri: wagt çäkleri we MTTR metrikleri bilen ssenariýa okuwlary.
Shadow traffic: ulanyjylara täsir etmezden kanareýada traffigi kärendesine almak.
Dry-run awtomatiki usullar (ýazýarys, ýöne etmeýäris).
15) "Awto-dikeldişe taýynlyk" ölçegleri
- SLO kesgitlenen, metrikler durnukly, sintetika bar.
- /healthz ,/readyz ,/startupz synaglary ýagdaýy dogry görkezýär.
- Dempotentlik we dubllardan goramak (esasanam töleglerde).
- Baýdaklar we kanareýalar bar.
- Guardrails: cooldown, rate-limit hereketleri, töwekgelçilikli amallar üçin goşa açar.
- Awtomatika we audit magazinesurnallary.
- "El bilen override" meýilnamasy we gysylan ýagdaýynda runbooks.
16) Tapgyrlar boýunça ornaşdyrmak (4 iterasiýa)
1. Maglumat bazasy: SLO-ny kesgitläň, probes goşuň, täzeden başlamagy/esasy aladalary goşuň.
2. Lokal hereketler: ficheflag-kill-switch, lag-skeyling consumers, auto-rollback kanareýkler.
3. Infra-dereje: node remediation, failover DB/kesh, ýükleýji şedding.
4. Optimizasiýa: guardrails, FinOps-çäklendirmeler, chaos-synaglar, detektor üçin ML-ewristika.
17) Ýygy-ýygydan ýalňyşlyklar we anti-patternler
Sebäbini → uzyn MTTR alamatlaryna çenli bejerýäris.
Kanareýasyz global hereketler.
Yzyna almak ýa-da ýatyrmak üçin kriteriýalar ýok.
Galp saglyk barlaglary (200 bozulan garaşlylyk bilen).
"Çişirme" awtoskeýli çäksiz/gymmatsyz.
Backoff we de duplikasiýa bolmazdan kör retrai-tupan.
18) Mini-FAQ
Awto-hiling üçin ML gerekmi?
Ýok. SLO/metrik we guardrails düzgünleri bilen başlaň; ML anomaliýalar we çaklamalar üçin peýdaly bolar.
Näme üçin täzeden başlamak hemişe kömek etmeýär?
Eger kök garaşly bolsa (DB, keş, tor), täzeden başlamak tupany hasam güýçlendirer. Breaker/shedding/feylower gerek.
Peýdany nädip subut etmeli?
MTTR-i we nädogry býudjetiň sarp edilişini deňeşdiriň. cost per mitigation metriklerini goşuň.
Jemi
Auto-healing - bu "täzeden başlamak" toplumy däl-de, ulgam: SLO-detekt → howpsuz nokat hereketleri → barlamak → ýaramazlaşanda yza gaýdyp gelmek. Probes, kanareýalar, fika baýdaklary, skeyling, şedding, feýlowerler we berk garawullary birleşdirip, siz MTTR-i gysgaldýarsyňyz, nädogry býudjeti saklaýarsyňyz we bahany gözegçilik astynda saklaýarsyňyz.