रोलबैक और स्थिरता वसूली
(धारा: प्रौद्योगिकी और बुनियादी ढांचा)
संक्षिप्त सारांश
रोलबैक डेटा हानि और एसएलओ उल्लंघन के न्यूनतम जोखिम के साथ नवीनतम स्थिर संस्करण में एक प्रबंधित वापसी है। एक विश्वसनीय प्रक्रिया में शामिल हैं: एसएलओ सिग्नल, स्पष्ट गेट और रोलबैक मानदंड, एक स्विचिंग तंत्र (GitOps/Ingress/mesh), एक संगत डेटा योजना, पृथक विन्यास/रहस्य/कैश, रनबुक और घटना के बाद में सुधार चक्र।
1) कब वापस रोल करें (मानदंड शुरू करें)
SLO/बिजनेस गेट्स: थ्रेशोल्ड से ऊपर p95/99, त्रुटि-दर ↑, भुगतान/दर रूपांतरण में गिरावट, PSP टाइमआउट में वृद्धि।
टेक सिग्नल: चूल्हा क्रैश, मेमोरी लीक, कतार की वृद्धि, टोकन गिरावट/सेकंड (एलएलएम), एज पर 5xx।
डेटा जोखिम: गलत प्रवासन, प्रतिकृतियों की असंगति, अनाथ लेनदेन/भुगतान।
सुरक्षा/पीआईआई: संदिग्ध रिसाव - तत्काल रोलबैक/अलगाव।
नियम: यदि 2 + कुंजी मैट्रिक्स थ्रेसहोल्ड के बाहर हैं> एन मिनट, रोलबैक ट्रिगर किया जाता है।
2) रोलबैक के प्रकार
1. अनुप्रयोग: पिछले टैग पर कंटेनरों/पैकेज का रोलबैक।
2. फ़ीचर: फ़ीचर फ़्लैग/किल-स्विच के माध्यम से तत्काल बंद करें
3. रूटिंग - स्थिर संस्करण (canary→stable) या Blue→Green पर वजन लौटाता है।
4. डेटाबेस: तार्किक रोलबैक (मुआवजा), योजना की चरणबद्ध वापसी; PITR एक अंतिम उपाय है।
5. बुनियादी ढांचा: रोलिंग बैक मैनिफेस्ट/टेराफॉर्म योजना; वापसी नेटवर्क/WAF विन्यास।
6. डेटा/कैश/कतार: रीसेट/विकलांगता/फिर से संदेश; संस्करण कैश।
3) सुरक्षित रोलबैक के वास्तुशिल्प सिद्धांत
स्कीमा संगतता: expand→migrate→contract रणनीति (विस्तार और अनुबंध के बीच रोलबैक संभव है)।
पृथक निर्भरता: संशोधन के लिए अलग रहस्य/कॉन्फ़िग/कैश/कतारें।
आदर्श संचालन: पलायन और नौकरी की बार-बार शुरुआत - सुरक्षित।
कलाकृतियों की अपरिवर्तनीयता: चित्र, चार्ट, SQL स्क्रिप्ट - वर्गीकृत और हस्ताक्षरित।
GitOps सही: वर्तमान संस्करण और रूटिंग प्रकट भंडार के लिए प्रतिबद्ध हैं।
4) रोलबैक यांत्रिकी (Kubernetes/GitOps)
आर्गो रोलआउट्स (वजन वापसी)
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 रोलबैक (विचार)
git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision
NGINX: स्थिर पर तेज स्विच
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) डेटाबेस रोलबैक और डेटा संरक्षण
→ माइग्रेट → संविदा का विस्तार करें:- विस्तार - नया फ़ील्ड/इंडेक्स जोड़ें, कोड पुराने और नए स्कीमा का समर्थन करता है।
- माइग्रेट करें: कोड एक नई योजना के लिए लिखना शुरू करता है, हम पुराने को नहीं तोड़ ते हैं।
- संविदा: स्थिरीकरण के बाद ही पुराने को हटाएं।
- PITR/स्नैपशॉट: केवल तभी उपयोग करें जब तार्किक मुआवजा संभव न हो।
- मुआवजा: आवेदन/शेष/भुगतान को ठीक करने के लिए अलग स्क्रिप्ट/नौकरियां।
- केवल पढ़ ने वाली खिड़कियां: जब आलोचना की जाती है, तो हम राज्य को "फ्रीज" करने के लिए अस्थायी रूप से रिकॉर्डिंग को अवरुद्ध करते हैं।
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) रोलबैक पर कतारें और कैश
संस्करण कैश: कुंजियाँ संस्करण ('v2:') के साथ उपसर्ग करती हैं → सुरक्षित सह-अस्तित्व।
विकलांगता: रोलबैक - द्रव्यमान सफाई 'v2:' के दौरान, 'v1:' पर लौटें।
कतारें: संस्करण के अनुसार पार्टियां/विषय; संदेशों को फिर से "चेकपॉइंट से"।
डी-डुप्लिकेशन/आइडेम्पोटेंसी: डुप्लिकेट-फ्री रिप्रोसेसिंग के लिए आइडेम्पोटेंस कुंजी।
7) एसएलओ गेट और ऑटो रोलबैक
मेट्रिक्स: p95/99, त्रुटि-दर, संतृप्ति (सीपीयू/आईओ/जीपीयू), कतार गहराई, टोकन/सेकंड, भुगतान रूपांतरण।
नीति (उदाहरण):
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) रनबुक (प्लेबुक)
A) p99 और 5xx की पोस्ट-रिलीज़वृद्धि
1. प्रचार करना बंद करें (फ्रीज कैनरी/नीला-हरा)।
2. स्थिर संशोधन पर यातायात स्विच करें।
3. कैश हिट/कतार/पीएसपी देरी की जाँच करें।
4. निदान हटाएँ: लॉग, प्रोफाइल, क्लाइंट/स्कीमा संस्करण।
5. संचार: चाटोप्स, स्थिति चैनल, घटना कार्ड।
6. सुधारात्मक क्रिया प्रारंभ करें: पैच/हॉट फिक्स/फीचर रद्द करना।
B) डाटाबेस माइग्रेशन त्रुटि
1. फ्रीज लिखते हैं (केवल पढ़ें, संक्षेप में)।
2. अनुप्रयोग रोलबैक → स्थिर संस्करण (पुराने स्कीमा के साथ संगत)।
3. मुआवजा/रोलबैक स्क्रिप्ट निष्पादित करें।
4. थाव रिकॉर्ड; बहाव/त्रुटियों का निरीक्षण करें।
सी) भुगतान क्षरण (पीएसपी)
1. पिछले मार्ग पर PSP रूटिंग स्विच करें।
2. रोलिंग बैक प्रोसेसिंग रिलीज।
3. सभी लंबित भुगतानों को समेटें, पहचान कुंजी के साथ दोहराएं।
डी) एलएलएम/सिफारिशें नीचा दिखाती हैं
1. नया मॉडल/पैरामीटर (फीचर फ्लैग) अक्षम करें।
2. पिछले समापन बिंदु/वजन वापस करें; नया संशोधन केवी कैश साफ करें।
3. टोकन/एस, पहले विलंबता टोकन, विषाक्तता की जाँच करें।
9) संचार और ठंड रिलीज
फ्रीज विंडो: रोलबैक के बाद - आरसीए/फिक्स पर रुकता है।
एकल चैनल: स्थिति अपडेट, कार्यों का कालक्रम, जिसने क्या किया।
हितधारक: उत्पाद/सीएस/भुगतान/वकील (पीआईआई में)।
10) घटना के बाद: विश्लेषण और रोकथाम
आरसीए (कोई शुल्क नहीं): मूल कारण, कारकों का योगदान, द्वार काम क्यों नहीं करते थे (यदि वे नहीं करते थे)।
क्रियाएं: प्रवासन परीक्षण, सीमा, सुविधा द्वार, अवलोकन।
एसएलओ सीमा: समायोजन अगर "नरम "/" कठिन "भी।
प्रलेखन: रनबुक अपडेट करें, अलर्ट जोड़ें, प्रशिक्षण (गेम-डे)।
11) उपकरण और टेम्पलेट
GitOps: Argo CD/Flux - 'revert '/' रोलबैक' संस्करण के साथ प्रतिबद्ध है।
प्रगतिशील वितरण: आर्गो रोलआउट्स/फ्लैगर - मेट्रिक्स पर स्टॉप/रोल।
एज/इंग्रेस: वेट रूटिंग, कुकी रूटिंग, फास्ट स्विच।
फ़ीचर फ्लैग: आंशिक रोलआउट, किल-स्विच।
माइग्रेशन डीबी: अप/डाउन, ड्राई-रन, थ्रॉटलिंग के साथ मिग-फ्रेमवर्क।
अवलोकन: तैयार डैशबोर्ड "रिलीज तुलना" (स्थिर बनाम कैनरी)।
12) रोलबैक के लिए तत्परता की जाँच
1. Versioned और हस्ताक्षरित कलाकृतियाँ (चित्र/चार्ट/SQL)।
2. दो-रेल कॉन्फ़िग/सीक्रेट/कैश/कतारें (संस्करण उपसर्ग)।
3. DB आरेख द्वारा expand→migrate→contract।
4. एसएलओ गेट्स और ऑटो किकबैक के साथ कैनरी और ब्लू-ग्रीन रिलीज।
5. प्रमुख परिदृश्यों के लिए रनबुक (भुगतान/डीबी/कैश/एलएलएम)।
6. चैटोप्स बटन: '/रोलबैक ', '/फ्रीज', '/प्रचार '।
7. ऑडिट और लॉगिंग: कौन, कब, क्या वापस लुढ़का; नैदानिक कलाकृतियाँ।
8. गेम-डे वर्कआउट: डिप्स और रिकवरी का अनुकरण।
9. व्यापार और समर्थन संचार योजना।
10. एक स्क्रीन पर स्थिर बनाम नया।
13) एंटी-पैटर्न
कोड को रोल आउट करने से पहले विघटनकारी पलायन (कोई पिछड़ा संगतता नहीं)।
संस्करणों के बिना साझा कैश/कतारें - गंदा रोलबैक।
कोई GitOps/परिवर्तन इतिहास → मैनुअल संपादन Prod को नहीं।
गेट्स/टेलीमेट्री के बिना कैनरी रिलीज़ - लेट डिटेक्शन।
फ्रीज और आरसीए के बिना रोलबैक - घटना को दोहराएं।
बिजनेस मैट्रिक्स (भुगतान/दरें) के बिना केवल तकनीकी मैट्रिक्स की निगरानी।
सभी संशोधनों के लिए "रहस्य सामान्य" - घटना को अलग करना मुश्किल है।
सारांश
विश्वसनीय रोलबैक एक "स्टॉप क्रेन" नहीं है, लेकिन रिलीज में निर्मित एक प्रक्रिया: वर्शनिंग और संगतता, पृथक निर्भरता, एसएलओ गेट्स, गिटोप्स वास्तविकता, स्वचालित रोलबैक और स्पष्ट रनबुक। यह दृष्टिकोण iGaming प्लेटफार्मों को जल्दी से स्थिरता हासिल करने, डेटा और राजस्व नुकसान को कम करने और प्रत्येक घटना को सुधार के स्रोत में बदलने की अनुम