შეცდომების ავტომატური გამოსწორება
1) მიზანი და პრინციპები
მიზანი: შეამციროს MTTR და თავიდან აიცილოს ინციდენტების ესკალაცია, შეინარჩუნოს SLO, შემოსავალი და შესაბამისობა მოთხოვნებთან.
პრინციპები:- SLO-first: ავტომობილების მოქმედებები ნებადართულია მხოლოდ იმ შემთხვევაში, თუ ბიუჯეტის შეცდომები დადასტურებულია.
- უსაფრთხოება პირველ რიგში: მინიმალური blast-radius, აშკარა ლიმიტები და ტაიმბოქსი.
- Explainable by Design: თითოეული მოქმედება გასაგებია და აუდიტორია.
- Rollback მზადყოფნა: ნებისმიერ ნაბიჯს თან ახლავს დაბრუნების კრიტერიუმები.
- Human-in-loop, სადაც რისკი მაღალია: P1 კრიტიკული ცვლილებები - ორმაგი კონტროლის გზით ან IC/on-coll- ის დადასტურებით (თუ სხვა პოლიტიკა არ არის დადგენილი).
2) ტერმინები
Auto-remediation: პროგრამის რეაქცია ღონისძიებაზე (ალერტი/ანომალია) ადამიანის მონაწილეობის გარეშე.
Guardrails: შეზღუდვების პოლიტიკა (ბარიერი, ხანგრძლივობა, მცდელობების რაოდენობა, გავლენის ზონა).
Runbook-Action: ატომური ოპერაცია წინასწარი/პოსტ-შემოწმებით და გამოტოვებით.
Decision Engine: სერვისი, რომელიც ადარებს მოვლენას პოლიტიკოსებთან და იწყებს მოქმედებებს.
3) გადაწყვეტილების არქიტექტურა
1. სიგნალები: SLO/burn-rate, KRI, სინთეზური, RUM, deep-health.
2. კონტექსტის კორელაცია: გამოშვებები, ფიჩფლაგები, დაგეგმილი სამუშაოები, დამოკიდებული პროვაიდერები.
3. Decision Engine: წესები/პოლიტიკა, იმპაქტისა და რისკის შეფასება, სცენარის არჩევანი.
4. შესრულება: runbook მოქმედებების ორკესტრი (idempotence, rettray და jitter).
5. კონტროლი: წინასწარი მიმღები, პოსტ-გადამოწმება, ტაიმბოქსი, გამოტოვება.
6. აუდიტი და დაკვირვება: ტრეისი, წარმატების მეტრიკა, ჟურნალი (WORM/immutable).
7. კომუნიკაცია: სტატუსის გვერდი (Comms Lead- ის საშუალებით), vart-rum, sapport მაკრო.
4) პოლიტიკა და დაშვება (პოლიტიკა-as-code)
პირობების მაგალითები (ფსევდო-რეგო/ლოგიკა): Failover PSP:- `allow if burn_rate(payments. auth) > fast && impact>threshold && psp_alt. healthy && within_limits("psp_reroute")`
- `allow if p99(bet_settlement)>3x && queue_lag>limit && feature("replay_center"). enabled`
- `allow if consumer_lag>target && cost_budget. ok && region_capacity. available`
- `allow if export_spike && no_ticket && data_class=PII -> action=block + notify(Compliance)`
თითოეული პოლიტიკა შეიცავს: პირობა, მოქმედება, ლიმიტი (scope/დრო/სიხშირე), წარმატების კრიტერიუმები, გამოტოვება.
5) უსაფრთხო მოქმედებების კატალოგი (ატომური runbook მოქმედებები)
გადახდები: გადაიტანეთ ტრეფიკი ალტერნატიულ PSP/Bank- ზე; შეცვალეთ routing პრიორიტეტები health × fee × conversion; ჩართეთ გამარტივებული 3DS; გაზარდეთ რეაგირების შეზღუდვები ჯიტერთან.
ფსონები/თამაშები: setle vorkers მასშტაბები; ჩართეთ cache-warmup; დროებით გამორთეთ არაკრიტიკული ფიჩები (ანიმაციები, მეორადი ფიდები); ჩართეთ waiting-room/queue-page.
ინფრასტრუქტურა: ამოიღეთ დეგრადირებული ნიმუშები (outlier-detector), გადააკეთეთ ტრაფიკი მეზობელ AZ/რეგიონში; გაზარდოს აუზები/კვოტები; გადატვირთეთ ვარჯიშები ლინტების შემოწმებით.
მონაცემები/ხაზები: პარტიების გადანაწილება; გაზარდეთ მომხმარებლები cap- ზე; გადაიტანეთ read ტრაფიკი ჯანმრთელ რეპლიკზე; ჩართეთ ადაპტირებული sempling მარშრუტი.
უსაფრთხოება/შესაბამისობა: დროებით დაბლოკეთ PII ექსპორტი თიკეტის გარეშე; გააძლიეროს დასკვნების შეზღუდვები; ჩართეთ ორმაგი კონტროლი მგრძნობიარე ოპერაციებში.
Comm ფენა: მანქანის პროექტი + Apdate- ის სლოტი Comms Lead- ისთვის; პარტნიორების შეტყობინება PSP- ის დეგრადაციის დროს.
6) წინამორბედი და პოსტვალიდაცია
წინ:- შეამოწმეთ, რომ პრობლემა რეალურია და ახალია (N-M ფანჯრები; არ არის ჩუმად/დაგეგმილი სამუშაოები).
- დარწმუნდით, რომ მოქმედება ნებადართულია პოლიტიკით და არსებობს რესურსების ბიუჯეტი.
- შეაფასეთ ღირებულება (FinOps) და შესაბამისობის შეზღუდვები.
- დაადასტუროს burn-rate/metrick- ის შემცირება; ჩაწერეთ შედეგი; დაგეგმეთ დაბრუნება (auto-rollback) პირობებით.
7) Rollback и “escape hatch”
მანქანის დაბრუნება მეტრიკის სტაბილიზაციით და მაქს-TTL მოქმედების საშუალებით.
დაბრუნების ღილაკი IC/on-coll var-rum- ში.
Break glass მხოლოდ გადაუდებელი წვდომისთვის; სავალდებულო პოსტ-აუდიტი.
8) ინტეგრაცია ალერტინთან და ინციდენტებთან
ნებისმიერი ავტო მოქმედება მიმაგრებულია ინციდენტის ბარათზე: ვინ/რა/როდის/რატომ, შედეგი, ბმულები გრაფიკაზე.
პეიჯერი იშლება დუბლიკატებისთვის, მაგრამ არა წარუმატებელი მანქანების ფიქსაციისთვის (ესკალაცია).
სტატუსის გვერდი განახლდება Comms Lead- ის საშუალებით შაბლონის მიხედვით.
9) უსაფრთხოებისა და შესაბამისობის დიზაინი
ყველაზე მცირე პრივილეგიები ორკესტრისთვის; ინდივიდუალური როლები მოქმედებისთვის/დომენისთვის.
SoD და ორმაგი კონტროლი მაღალი რანგისთვის: PSP როუტინგი, ბონუსის ლიმიტები, PII ექსპორტი.
WORM/immutable ყველა ავტომატური გადაწყვეტილების აუდიტი, მათ შორის შეყვანის სიგნალები და პოლიტიკოსის ვერსიები.
PII ჰიგიენა: ეტიკეტებში და მოქმედების ლოგოებში პირადი იდენტიფიკატორის გარეშე.
10) ავტოკატასტროფების დაკვირვება
მეტრიკა: მოქმედების success-rate, რეაქციის დრო, გამოტოვების%, MTTR დაზოგვა, გავლენა SLO- ზე.
ტრეისი: ტრეისი „სიგნალი - გამოსავალი - ეფექტი“.
ლოგოები: სტრუქტურირებული, პოლიტიკით _ id, ვერსიებით და წინა/პოსტ-შემოწმებებით.
დაშბორდები: Exec (გავლენა შემოსავალზე/SLO), Ops (მოქმედების მატრიცა × დომენები), FinOps (მანქანის ზომების ღირებულება).
11) სცენარების მაგალითები (iGaming)
11. 1 PSP დეგრადაცია (TR/EU)
სიგნალი: auth-success PSP-1- ში 25% 10 წუთში, დაფარვა> გარიგების 30%.
მოქმედებები: გადაანაწილეთ ტრაფიკის 40% PSP-2/3; ჩართეთ გამარტივებული 3DS; აამაღლეთ ბანკის X მოთხოვნის რეტრაები ჯიტერთან.
საზღვრები: მთლიანი ტრაფიკის არაუმეტეს 60% ერთ ალტერნატიულ PSP- ზე; TTL 45 წთ
Rollback: success-rate- ის ნორმალიზებით, სამიზნე სამიზნეზე 15 წუთის განმავლობაში.
11. 2 ზრდა p99 განაკვეთებზე
სიგნალი: p99 „bet-settle“> 3 × ნორმები + consumer-lag> ბარიერი.
მოქმედებები: scale-out vorkers მდე cap; კოეფიციენტების ქეში გაათბეთ; დროებით გამორთეთ „გამეორების ისტორია“.
Rollback: headroom> X და p99 შემდეგ ნორმალურად 20 წთ
11. 3 BD რეპლიკა ჩამორჩება
სიგნალი: გამრიცხველიანება-ლაგი> N წამი, ლოკი-ჰაიტის ზრდა.
მოქმედებები: ამოიღეთ რეალური ტრაფიკი ჯანმრთელ რეპლიკზე; დაბალი პრიორიტეტის throtling write ოპერაციების ჩართვა.
Rollback: lag- ის ნორმალიზებისა და დაბლოკვის შეცდომების შემდეგ.
11. 4 ექსპორტის სპაიკი PII
სიგნალი: ექსპორტი> საბაზო ხაზი × K, არ არის თიკეტები.
მოქმედებები: ექსპორტის ბლოკი, კომუნიკაციის შეტყობინება, ორმაგი კონტროლის ჩართვა.
Rollback: თხოვნის დადასტურებისა და ანომალიის დახურვის შემდეგ.
12) KPI и KRI
MTTR არის ინციდენტები, სადაც მანქანების ფიქსაცია მუშაობდა.
TTD: მოქმედება: დრო დეტექტიდან მოქმედების შესრულებამდე.
Success-rate მოქმედებები და Rollback-rate (დაბალი - კარგია, თუ არა ყალბი ოპერაციების გამო).
False-action (მოქმედებები ეფექტის გარეშე ან უარყოფითი ეფექტით).
SLO impact saved (წუთი/შემოსავალი, ჯარიმების თავიდან აცილება).
Pager fatigue - (ნაკლები ხელით პეიჯერი იმავე/საუკეთესო SLO).
13) განხორციელების გზის რუკა (8-12 კვირა)
ნვე. 1-2: შეარჩიეთ 3-5 მაღალი ROI სცენარი (PSP faylover, lag autoscale, feature-degrade); აღწერეთ პოლიტიკოსები/შეზღუდვები/გამოტოვება.
ნვე. 3-4: სამოქმედო, საიდუმლოებებისა და როლების ორკესტრის განხორციელება, ინციდენტის პლატფორმასთან ინტეგრაცია; დაამატეთ დაკვირვება და აუდიტი.
ნვე. 5-6: მფრინავი „ჩრდილში“ რეჟიმში (simulate-only), A/B ეფექტის შეფასება; შემდეგ ჩართეთ prode მცირე მასშტაბით.
ნვე. 7-8: გააფართოვოს სკრიპტების კატალოგი (BD/ქეში/ეტაპი/ფრონტი), დაუკავშირდეს სტატუს გვერდს და კომსს.
ნვე. 9-10: დაამატეთ FinOps ლიმიტების წესები (ღირებულება/SLI), შემოიღეთ ორმაგი კონტროლი მაღალი რანგისთვის.
ნვე. 11-12: tabletop/chaos სწავლებები, KPI/KRI გადასინჯვა, ჰაიდლაინების გამოქვეყნება და on-coll ტრენინგი.
14) არტეფაქტები და შაბლონები
Auto-Remediation Policy: პირობა, მოქმედება, ლიმიტები, TTL, გამოტოვება, მფლობელი, რისკის კლასი.
Runbook-Action Spec: წინაპირობა, ნაბიჯები, შემოწმება, შეცდომები, მონიტორინგი, დაბრუნების ლოგიკა.
Change-Control: ვისაც შეუძლია მართოს პოლიტიკოსები, PR მიმოხილვა, ტესტები, და ვერსია.
Evidence Pack: logs/traces/მეტრიკა SLO- ზე, ანგარიში პოსტ-mortem/აუდიტისთვის.
15) ანტიპატერები
„ჩვენ ვექცევით სიმპტომს“ მიზეზის შემოწმების გარეშე და SLO - ფუფუნება.
მოქმედებები უკან დახევის გარეშე და TTL არის გაყინული დეგრადაცია.
უნივერსალური სკრიპტები guardrails- ის გარეშე არის კასკადის გაუმართაობა.
აუდიტის არარსებობა და პოლიტიკოსის ვერსიები.
ფასის უგულებელყოფა (ავტო სკეიტი ლიმიტის გარეშე) და კომპლექსი (PII ექსპორტები).
სრული ავტონომია Human-in-loop გარეშე P1 რისკებში.
შედეგი
შეცდომების ავტომატური კორექტირება არის კონტროლირებადი წრე: SLO სიგნალები - პოლიტიკა guardrails- ით - უსაფრთხო runbook მოქმედებები უკან დახევით - დაკვირვება და აუდიტი - ტრენინგი ინციდენტებზე. ეს მიდგომა ზომიერად ამცირებს MTTR- ს, ინარჩუნებს შემოსავალს მწვერვალებში და ამოიღებს რუტინას მისი კოლოფიდან, რაც თავსებადია უსაფრთხოების მოთხოვნებთან და რეგულატორებთან.