ცვლილებების დაბრუნების სცენარები
(განყოფილება: ოპერაციები და კონტროლი)
1) რატომ არის საჭირო გამოტოვების სცენარები
იდეალური ტესტირებითაც კი, ცვლილებების ნაწილი იწვევს დეგრადაციას. დაბრუნება არის კონტროლირებადი ოპერაცია, რომ დაუბრუნდეს წინასწარ განსაზღვრულ „უსაფრთხო“ ვერსიას მონაცემთა დაკარგვისა და შესაბამისობის დაკარგვის გარეშე. მიზნები: MTTR- ის შემცირება, ფულის/მონაცემების დაცვა, პარტნიორებისა და რეგულატორების ნდობის შენარჩუნება.
2) ცვლილებების კლასიფიკაცია და უკან დახევის მიდგომები
კოდი და კონტეინერები: ვერსირებული არტეფაქტები - ცისფერი-მწვანე, რულონი, მყისიერი გამოტოვებით წინა გამოსახულებაზე.
კონფიგურაცია/ficeflages: feature toggle rollback, ატომური კონცენტრატორები TTL- ით და აუდიტით.
DD სქემები: expand - migrate - contract, ორმხრივი მიგრაცია, „ჩრდილის“ სვეტები, ზურგჩანთა ფონზე.
მონაცემები/ფასების სიები/გადასახადები: არტეფაქტების ვერსიები ('fx _ version', 'tax _ rule _ version', 'pricelist _ version'), „გაყინვა“ და დაბრუნება.
ინტეგრაცია (PSP/KYC/შინაარსის პროვაიდერები): მარშრუტების/აუზების გადართვა, სარეზერვო პროვაიდერზე fallback.
ინფრასტრუქტურა/ქსელები/CDN: წესების/მარშრუტების ეტაპობრივი დაბრუნება, ორმაგი დატვირთვის სერთიფიკატების/გასაღებების გამოტოვება.
3) არქიტექტურული ნიმუშები შექცევისთვის
Immutable releases: თითოეული გამოშვება არის ხელმოწერილი არტეფაქტი (სურათი/კონფისკაცია) წინა მყისიერი არჩევანის შესაძლებლობით.
თავსებადობის ფენები: schema-compat (დამატება, არა მოცილება), tolerant-reader მომხმარებელთა მხარეს.
ორმაგი ჩაწერა (ორმაგი ჩაწერა) და shadow-reads: „გადართვამდე“ შეადარეთ თანმიმდევრულობა.
Idempotence და საგა: კომპენსაციის ნაბიჯები ჯვარედინი მომსახურებისთვის.
ფიჩეფლაგები: სწრაფი გამორთვა/ეტაპობრივი ჩართვა „ცხელი“ იშვიათობის ნაცვლად.
4) შემცირების სტრატეგიები დაბრუნების წერტილებით
Canary N%: მრიცხველები/მცველები, როდესაც მანქანების გამოტოვება ხდება; წარმატებით - გაფართოება 100% -მდე.
Blue-Green: ორი დასტის დასტა; ტრაფიკის გადართვა და მყისიერი rollback უკან.
Rolling with pause: მხარეების განახლება „პაუზის წერტილებით“ და წინა ტალღაზე დაბრუნების შესაძლებლობა.
კოჰორტების ძაფები: „მუქი გაშვება“, whitelists, რეგიონალური/ჩრდილოვანი დროშები.
5) DD და მიგრაციის გამოტოვება: უსაფრთხო შაბლონები
არასოდეს გააკეთოთ „დამანგრეველი“ მიგრაცია ექსპერიმენტის გარეშე:1. Expand: დაამატეთ ახალი სვეტები/ინდექსები/ენდოინები, კოდი წერს ორივე ვერსიაში.
2. Migrate: backfill და მოვალეობები; ახალი სტრუქტურიდან „ჩრდილის“ კითხვა.
3. Contract: გამორთეთ ძველი სტაბილურობის შემდეგ.
ორმაგობა: თითოეულ მიგრაციას აქვს 'down ()'; დიდი კომპლექტებისთვის - ლოგიკური revert (დროშები, მარშრუტიზაცია) ფიზიკური მოცილების ნაცვლად.
Snapshots/წერტილის დრო: PITR/Snapshot ცხრილები კრიტიკულ გამოშვებამდე.
სქემების კონტროლი: კონტრაქტების შემსრულებლები CI/CD + „dry-run“ - ში staging/რეპლიკზე.
6) დირექტორიის/ფასების/გადასახადების მონაცემების დაბრუნება
ვერსიით ფასების სიები და საგადასახადო წესები; შეინახეთ პუბლიკაციის ქვითრები.
შეკვეთებში ჩაწერეთ 'fx _ version '/' tax _ rule _ version' - დაბრუნება არ არღვევს ძველ ჩეკებს.
PriceMismatch- ის პირობებში, ქეშის ინვალიდობა, არტეფაქტის წინა ვერსიისა და პოლიტიკის კომპენსაციის დაბრუნება.
7) ინტეგრაცია და გარე პროვაიდერები
PSP/KYC/შინაარსი: შეინახეთ სარეზერვო მარშრუტები, ჯანმრთელობის ტესტები, DNS/LB სწრაფი გადართვა, ინდივიდუალური გასაღებები.
ვებჰუკი: ჩართეთ write-drop და რიგები; გამოტოვებისას - „მკვდარი წერილების“ აბრევიატურა იდემპოტენტური კლავიშებით.
სერთიფიკატები/გასაღებები: ორმაგი დატვირთვა (ძველი + ახალი), თავსებადობის შემოწმება გადართვამდე.
8) გამოტოვების ავტომატიზაცია („რუნები“) და მცველები
Руны (кнопки): Rollback Release, Disable Flag, Re-route, Flush Cache, Scale Back, Restore Schema.
მცველები: უკანდახევის გაშვება ხელმისაწვდომია IC/მფლობელისთვის; ჟურნალმა ხელი მოაწერა (DSSE), ოპერაციების სიხშირის ლიმიტები, დადასტურების სია.
ავტო-გამოტოვება: პირობები SLO/percentials/შეცდომები/ფინანსური სიგნალები (მაგალითად, Syte-checkout-0).
9) კომუნიკაციები და არტეფაქტები
გამოშვების ბარათში: ვერსია, heshi, prerecvisites ჩეკი, გამოტოვებული playbook, პასუხისმგებელი.
დაბრუნებისას: დროის ეტიკეტები, მიზეზი, დაზარალებული ტრაფიკის მოცულობა, არტეფაქტები (ლოგიკური ბმულები, მეტრიკები/შემდეგ).
გარე კომუნიკაციები (სტატუსის გვერდი/პარტნიორები): მოკლედ და ტექსტოლოგიურად.
10) Playbooks გამოტოვება (რეფერენდუმი)
კოდი/სურათი დეგრადირებულია (P1):1. Re-route/Blue-Green უკან (2) დააფიქსირეთ ვერსია - 3) გადაკეტეთ შემდგომი გადაკეტვა (4) წინსვლა.
დროშა იწვევს შეცდომების ზრდას:1. Disable Feature Flag (100%) (2) ქეში/ფოლბეკების გაწმენდა (3) გამოსწორების თიკეტი.
BD მიგრაცია იძლევა ტაიმაუტებს:1. შეჩერდით heavy-backfill (2), რომ დააბრუნოთ კითხვა ძველ სქემაზე (dual-read off) - 3) შეამციროთ დატვირთვა/ინდექსები 4) შეაფასეთ 'down ()' ან ლოგიკური გამოტოვება.
PriceMismatch/FX/Tax:1. გამოტოვება 'pricelist _ version '/' tax _ rule _ version' (2) edge-ქეში ინვალიდობის ანაზღაურება და შემოწმება.
PSP წარუმატებლობა:1. სტაბილიზაციის შემდეგ „ნაცრისფერი“ გარიგების (3) კარანტინის გადართვა სარეზერვო PSP (2).
გასაღები/სერტიფიკატი გატეხილია:1. დაბრუნდით წინა კლავიშზე (ორმაგი კეი) - 2) როტაცია და რეპუბლიკა.
11) RACI
12) ხარისხის მეტრიკა და SLO
Change Failure Rate (CFR) არის დაბრუნების გამოშვებების წილი (მიზანი).
MTTR (გამოტოვებით) არის სტაბილურობის დაბრუნების დროის საშუალო.
Time-to-Rollback - გამომწვევიდან დაბრუნების დასრულებამდე (P1-15-20 წუთი).
P95, error-rate, E2E success).
იგივე მიზეზის განმეორებითი გამოტოვება არის N/კვარტალი.
აუდიტის საფარი: 100% გამოტოვება არტეფაქტებით და ხელმოწერებით.
13) უსაფრთხოება, კონფიდენციალურობა, შესაბამისობა
WORM ჟურნალები გამოშვებები/გამოტოვება; რეგულატორებისთვის არტეფაქტების შენახვა.
PII/ფინანსები: შემოწმება, რომ დაბრუნება არ ხსნის გადაუჭრელი ზონების/ძველი პოლიტიკოსების წვდომას.
SoD: „ვინ იშლება“ და „ვინ ამტკიცებს“ და „ვინ იწყებს უკან დაბრუნებას“.
კრედიტები/საიდუმლოებები: ორმაგი როლოვერი და მყისიერი დაბრუნება წინა კლავიშზე.
14) ფინანსური და ოპერაციული ეფექტები
გამოტოვების ხარჯები: ავტომატიზირებული გამოსავალი SLO გვარდიის საშუალებით.
კომპენსაცია/სესხები SLA- სთვის - შაბლონები playbucks.
Egress/compute-cap: გამოტოვებას შეუძლია დროებით გაზარდოს დატვირთვა (ქეში ტუმბო/ტუმბო) - დაგეგმეთ ფანჯრები.
15) ჩეკის სია გამოქვეყნებამდე (go/no-go)
- ხელმოწერილი არტეფაქტები და დაბრუნების წერტილი (სურათი/კონფისკაცია/მონაცემთა ვერსია).
- დასაკეცი გეგმა და პლეიბუკები (ნაბიჯებით).
- მიგრანტები პასუხისმგებელნი არიან: ექსპედიცია და ციფრული კონტრაქტი, PITR აქტიურია.
- Dials/SLO გვარდიები: მანქანის გამოტოვების პირობები ალერტის სისტემაში.
- საკომუნიკაციო არხები: IC/Owners/Comms on-call.
- საპირისპირო თავსებადობის ტესტები და „მშრალი პროგონი“ შეტევაზე.
- სარეზერვო მარშრუტები კრიტიკული ინტეგრაციისთვის.
- კომუნიკაციის გეგმა (შიდა/გარეგანი) და შაბლონები.
16) ჩეკის სია უკან დახევის დროს (ინციდენტის დროს)
- დაადასტუროს ტრიგერი და დაზარალებული მოცულობა (რეგიონი/ტენანტი/არხი).
- ჩაწერეთ ვერსია „რაზე ვტრიალებთ“.
- შეასრულეთ გამოტოვების რუნი (კოდი/დროშა/მარშრუტი/მონაცემები).
- შეამოწმეთ SLI/SLO და ბიზნეს მეტრიკა (E2E, checkout, ვებჰუკი).
- შეამოწმეთ კატალოგები/ვერსიები (FX/Tax/PriceList).
- უზრუნველყოს მდგომარეობა: ახალი შეღებვის აკრძალვა, არტეფაქტების შეგროვება.
- კომუნიკაცია: სტატუსის გვერდი, პარტნიორები, შიდა.
17) ხშირი შეცდომები და საწინააღმდეგო ნიმუშები
გამოტოვება „ხელით“ არტეფაქტებისა და ხელმოწერების გარეშე.
დესტრუქციული მიგრაციის გარეშე და PITR.
Feature-flag „გლობალური გამორთვის“ გარეშე.
სარეზერვო მარშრუტების არარსებობა PSP/KYC.
ქეში გაწმენდის გარეშე - ცივი მოთხოვნის ზვავი.
Universite qute - checkout ფასების ჩამონათვალის დაბრუნების შემდეგ.
18) FAQ
როდის არის უკეთესი დაბრუნება და არა ფიქსი „ადგილზე“?
SLO/ფულის/მონაცემების რისკის დარღვევით, უფრო სწრაფი და უსაფრთხოა ცნობილ სტაბილურ ვერსიაში დაბრუნება.
შესაძლებელია „დამანგრეველი“ მიგრაციის გადატანა?
დიახ, თუ შექმნილია როგორც ექსპედიცია - migrate - contract 'down () '/PITR და ლოგიკური ფოლბეკი.
როგორ გავაანალიზოთ უკან დახევის გადაწყვეტილება?
SLO მცველები (p95, error-rate, C- ფასები, ვებჰუკების წარმატება) + რისკების მატრიცა - auto-run.
რა უნდა გავაკეთოთ შეკვეთებით/გარიგებებით „შორის“?
Idempotent- ის გასაღებები, „ნაცრისფერი“ ოპერაციების კარანტინი, რიგები ბაბუით.
რეზიუმე: გამოტოვების სცენარები არ არის იმპროვიზაცია, არამედ წინასწარ შემუშავებული უნარი სწრაფად დაუბრუნდეს სტაბილურობას. ყველაფერი ვერსიით, შექცევადი მონაცემთა სქემით, გამოიყენეთ ficheflages და canary, ავტომატიზაცია მოახდინეთ რუნები, დააფიქსირეთ არტეფაქტები და SLO მცველები. შემდეგ ნებისმიერი გამოშვება რჩება კონტროლირებადი, ხოლო ბიზნესი პროგნოზირებადი სტაბილურია.