System-Healing և wwww.f-recovery համակարգեր
1) Ի՞ նչ է-healing-ը, և ինչո՞ ւ է այն անհրաժեշտ։
International-healing-ը ինքնաբերական կայունացում է 'առանց մարդու մասնակցության, ախտանիշների վերականգնման գերակայությամբ (SLO) առաջինի որոնման վրա (RCA)։
Նպատակները 'նվազեցնել MTTR-ը, պաշտպանել սխալ բյուջեն, կրճատել վիրահատական ծախսերը և մարդկային սխալները։
Հիմնական հատկությունները
Մանկություն (մետրիկներ/լոգներ/սինթետիկ/իրադարձություններ)։
Լուծումը (կանոններ/քաղաքականություն/ML-evristy)։
Գործողություն (restart/skeil/shedding/ficheflag/rollbek/feilover)։
Վերիֆիկացիան (SLO կանաչ է նշված պատուհանի մեջ)։
Վերացումը (revation) վատացման ժամանակ։
2) Ստանդարտ-healing մեխանիզմների քարտեզը
Դիմումի մակարդակում 'idempotency, timeouts, retry + backoff + jitter, circuit breaker, bulkhead, kash-դեգրադացիա (graceful)։
Kubernetes: liveness/readiness/startup probes, restartPolicy, PDB, HPA/VPA, Descheduler, Pod/Node auto-remediation.
Ցանցը/edge: rate limits, 71-տենանտ քվոտաներ, connational intaining, fail-բաց/close, WAF կանոնները։
/ striming: consumer-autoscale, lag-based backpressure, DLQ/parking lot։
Express/BD: Failover կրկնօրինակը, Auto-( rebuild), throttled autovacum, connational pool rebalancing։
CI/CD: Կանարյան դասավորություններ, progressivery, avto-rollback։
Իրադարձությունների նվագախումբը 'վերահսկիչներ/օպերատորներ, workflow շարժիչներ (Argo, Airflow) retry քաղաքական։
Watchdog/Heartbeats: Dead Man 's Switch ֆոնային ջոյի համար։
3) Անվտանգ www.f-recovery նախագծման սկզբունքները
1. SLO-driven: Բոլոր ավտոմատ գործողությունները սկսվում են օգտագործողի փորձին կապված ախտանիշներով։
2. Canary-first: Սկզբում տեղական/կետային, ապա գլոբալ։
3. One-way door guardrails: Timer/պայմանով, «կրկնակի բանալին» ռիսկային վիրահատությունների համար։
4. Idempotency: յուրաքանչյուր գործողություն (restart, միգրացիա, միգրացիա) անվտանգ է կրկնության ժամանակ։
5. Observability-by-des.ru-ը 'գործողությունների իրականացումը, հարաբերակցությունը հետքերի հետ, ամսագիրը «ով/երբ/ինչու»։
6. Leportprivilege: Ավտոմատացումը նվազագույն իրավունքներ ունի (RBAC, scoped secrets)։
7. Cost-a.ru: limits «թանկ» գործողությունների վրա (մեծացում, egress, ձիթապտուղներ)։
4) Մանկություն 'ազդանշաններ գործարկելու համար։
Метрики: 5xx%, p95/p99 latency, Kafka lag, DB lock/lag, node pressure.
Սինթետիկ 'ապթայմի/ռետինի ճանապարհի անկում (լոգին/դեպոզիտ)։
Լոգները 'սխալների նոր ազդանշաններ, բացառությունների հաճախություն։
События K8s: CrashLoopBackOff, NodeNotReady, FailedScheduling.
Heartbeat: լռություն ջոբա> N րոպե։
PromQL-ի օրինակ
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) Ավտո վերականգնման գործողությունները (playbook-կատալոգը)
5. 1 Հավելված/ցանց
Circuit breaker ON-ը backend-ի անոմիայի դեպքում արագ fail-fox + kash/105-պատասխանները։
Retry + backoff + jitter-ը սահմանափակումներով և deduction-ով։
Rate limit/shed-load: ծանրաբեռնվածության դեպքում կրիտիկական ճանապարհների գերակայությունն է։
5. 2 Kubernetes
Ռեստարտը (liveness) և պոդի հեռացումը ոչ առողջ նոդայի վրա։
HPA/SNA: Avto-scayl RPS/CPU/latency/lag; MSA-ն միայն առաջարկություններ է կամ off-hours apply։
Աուտո-ռեմիդացիա nod: www.don + www.ain persistent-խնդիրների ժամանակ (tain.ru)։
Affinity/Topology spread-ը AZ-ֆեյլներից պաշտպանելու համար։
5. 3 Հերթեր/սթրիմինգ
Auto-scale consumers по lag; throughput winders-ի ժամանակավոր նվազումը։
DLQ-ը թունավոր հաղորդագրությունների համար։ replay արխիվներից։
5. 4 BD/kash
Failover-ը սթեյթ/կազմաձևի ստուգման ժամանակ։
Connational pool reset-ը «արտահոսքի» ժամանակ։
Hot-standby promote-ը հաճախորդների ավտոմատ reconfigure-ով։
5. 5 CI/CD
Avto-rollback-ը, երբ 5xx/p95 մեծանում է Կանարյան գյուղում։
Feature-flags: ավտոմատ OFF խնդրահարույց ֆիչի փոխարեն գլոբալ արձագանքի փոխարեն։
6) Progressive divery և auto-rollback
Օրինակ (Argo Rollouts)
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
Եթե տեմպլեյտը վերադարձնում է «fail» (գերազանցել սխալները/լատենտությունը) - rollout ինքնաբերաբար արձագանքում է։
7) Ֆիչա դրոշը որպես www.f-recovery գործիք
Kill-switch-ը խնդրահարույց ֆիչի համար (server-side)։
Targeting 'անջատել ֆիչին հատվածում/տարածաշրջանում։
Avto-կանոնը 'եթե 5xx տոկոսը ֆիչից> X-ը Y րոպեի ընթացքում OFF-ն է և հյուսելը backlog-ում։
Veriation: SLO վահանակը ֆիգուրներով։
8) Ծանրաբեռնվածություն. Ինչպե՞ ս բուժել ինքդ քեզ մինչև մահ
Shed-load: շեղել/իջեցնել QoS-ի քննադատական հարցումները (սակագները, heavy-զեկույցները)։
Token-bucket/leaky-bucket և քվոտաները tenault/բանալին։
Adaptive concurrency (RTK մակարդակում) - նվազեցնել զուգահեռ լատենտության աճի ժամանակ։
Bulkhead 'հոսքերի գնդակների մեկուսացում/2019։
9) Կոնսիստենտալությունը և գաղափարախոսությունը
Idempotent բանալիները (request _ id) բացատրում են պաշտպանությունը խոհարարներից։
Վտանգավոր վիրահատությունները (վճարումները, մարումները) երկչափ գործընթացներ են, ապացույց/փոխհատուցում (saga)։
Outbox/Inbox и exactly-once через idempotency storage.
10) Անվտանգություն և բաղադրիչներ
Նվազագույն RBAC-ը ավտոմատացման համար (միայն անհրաժեշտ ռեսուրսները)։
Բոլոր գործողությունների աուդիտը 'ով/երբ/ինչ ազդանշան/ինչ ազդեցություն։
Ձեռքով override և «կարմիր կոճակը» ռուսական մեքենայի գործողությունների համար։
Legal Hold-ը պատրաստված է արտեֆակտների և ավտոմատացման ամսագրերի վրա։
Գաղտնիքները գաղտնիության մենեջերի միջոցով են, ինքնաարտադրության ժամանակ միգրացիան։
11) Ֆինոպս '«ինքնաբացարկի» գինը
Լիմիտները առավելագույն autoscale-ի վրա, որպեսզի չփչանան աճի ժամանակ։
Cost per action metrics: 1 restart, 1 dop կրկնօրինակներ, 1TB egress։
Ագրեգատները ՝ cost per SLO-minenssaved, cost per mitigated incident։
«Գիշերային ռեժիմի» քաղաքականությունները 'ավտոմատացման ագրեսիվությունը ցածր է, եթե բիզնեսը ցածր է։
12) Ավտոմատացման դիտարկումը
Կարդացեք գրաֆիկների վրա '"remediation _ action =" rollback "," source = "argo", "reason =" slo _ burn "։
Առանձին տաշբորդ 'ավտոմատացման հաճախականությունը, հաջողությունը, ռուսական recovery Time, rollback rate։
Հարաբերակցությունը «SLO-ի գործողությունը» օգուտները գնահատելու համար։
13) Ջորջներ և օրինակներ
13. 1 K8s: probes և restart քաղաքականություն
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 Alexpress-action (կեղծ)
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 կաստոմային մետրով)
yaml metrics:
- type: Pods pods:
metric:
name: kafka_consumer_lag target:
type: AverageValue averageValue: "500"
14) Փորձարկումներ 2019-healing (chaos & game days)
Chaos-international: Ցանցային դադարներ, ենթատեսակների/նոդների սպանություն, BD/kash քայքայումը։
Game days 'Time Limite-ի և MTTR-ի։
Shadow traffic 'վարձույթը կատարվում է կանարի վրա առանց օգտագործողների վրա ազդելու։
Disy-run ավտոմատացման ռեժիմները (գրում ենք, բայց չենք անում)։
15) «Պատրաստակամություն մեքենայի վերականգնման համար»
- SLO-ն որոշվում է, մետրերը կայուն են, կան սինթետիկ։
- Փորձարկումներ/healthz ,/readyz ,/startupz ճիշտ արտացոլում են վիճակը։
- Idempotenty և պաշտպանություն դուբլներից (հատկապես օրինագծերում)։
- Ֆիչա դրոշները և քարքարոտ ծածկոցները հասանելի են։
- Guardrails: cooldown, rate-limit, կրկնակի բանալին բարձր ռիսկային վիրահատությունների համար։
- Ավտոմատացման և աուդիտի ամսագրեր։
- «Ձեռքով override» պլանը և runbooks-ը մաքրման դեպքում։
16) Փուլերի ներդրումը (4 իտացիա)
1. Հիմքը 'SLO, ավելացրեք probes, միացրեք restarts/հիմնական ալերտերը։
2. Տեղական գործողությունները 'ficheflag-kill-switch, lag-sceiling consumers, 71-rollback canares։
3. Infra մակարդակը ՝ node remediation, failover BD/kash, բեռի գլուխգործոց։
4. Օպտիմիզացիան 'guardrails, FinOps-limits, chaos-թեստեր, ML-evristics երեխաների համար։
17) Հաճախակի սխալներ և հակատիպեր
Մենք բուժում ենք պատճառը մինչև ախտանիշները երկար MTTR-ն։
Համաշխարհային գործողությունները առանց կանարական փուլի։
Ոչ մի արձագանք կամ ոչ մի չափանիշներ չկա։
Կեղծ health-cheks (200 կոտրված կախվածությամբ)։
«Փչացնել» ավտոմեքենան առանց սահմանների/սթոիմոստային շեմերի։
Կույր retrai փոթորիկ առանց backoff և dedupliation։
18) Mini-FAQ
Արդյո՞ ք ML-ն անհրաժեշտ է աուտո-հիլինգի համար։
Ոչ։ Սկսեք SLO/metriks և guardrails կանոնները։ ML-ն օգտակար կլինի անոմալիաների և նախասիրությունների համար։
Ինչո՞ ւ միշտ չէ, որ վերագործարկումն օգնում է։
Եթե արմատը կախված է (BD, kashe, ցանցը), ռեստարտը միայն ավելի կբարելավի փոթորիկը։ Անհրաժեշտ է breaker/գլուխգործոց/ֆեյլովեր։
Ինչպե՞ ս կարող ենք ցույց տալ օգուտները։
Համեմատեք MTR-ը և սխալ բյուջեի սպառումը մինչև/հետո։ Ավելացրեք cost per mitigation։
Արդյունքը
Internet-healing-ը համակարգ է, ոչ թե «restart-ոսպնյակների» հավաքածու, SLO-մանկությունը հաստատվում է անվտանգ կետային գործողություններով, որոնք կարող են վատթարանալ։ Probes, kanared, fich դրոշներ, skeiling, shedding, feilovers և խիստ guardrails, դուք կրճատում եք MTTR-ը, պահպանում եք սխալ բյուջեն և պահում եք արժեքը վերահսկման տակ։