गेमिंग प्लेटफ़ॉर्म के लिए सीआई/सीडी: कैनरी रिलीज़ और फ़िचफ्लैग
1) iGaming के लिए प्रगतिशील वितरण महत्वपूर्ण क्यों है
वास्तविक समय और धन: लॉगिन/जमा/दरों में त्रुटियां राजस्व को तुरंत प्रभावित करती हैं।
ट्रैफिक चोटियाँ: पदोन्नति और टूर्नामेंट - कीड़े के हिमस्खलन का जोखिम।
मल्टी-मार्केट और ब्रांड: कार्यों के लक्षित अक्षम होने की संभावना के साथ चरणबद्ध रिलीज की आवश्यकता होती है
उद्देश्य: रिलीज़ जिसे धीरे-धीरे चालू किया जा सकता है, एसएलओ पर प्रभाव को मापता है, और तुरंत डाउनटाइम के बिना वापस रोल करता है।
2) सीआई/सीडी संदर्भ वास्तुकला
सीआई (बिल्ड एंड टेस्ट):1. स्रोत स्कैन (SAST), कलाकृति/छवि असेंबली (SBOM, हस्ताक्षर)।
2. इकाई/अनुबंध/एकीकरण परीक्षण, e2e परीक्षण बेंच पर।
3. मैनिफेस्ट सत्यापन (OPA/Kyverno), हेल्म/Kustomize लिंटिंग।
सीडी (प्रगतिशील वितरण):- GitOps (Argo CD/Flux) एकमात्र अनुप्रयोग तंत्र के रूप में।
- आर्गो रोलआउट्स/फ्लैगर для कैनरी/ब्लू-ग्रीन/शैडो।
- रिलीज-गेट्स: केवल तभी बढ़ावा दें जब एसएलओ हरा हो (लॉगिन/डिपॉजिट/रेट)।
- थ्रेसहोल्ड का उल्लंघन होने पर ऑटो-रोलबैक।
वातावरण: 'देव स्टेज कैनरी-प्रोड' प्रोड '(बाजार/ब्रांड द्वारा)। कैनरी के लिए, एक अलग नेमस्पेस/सेल।
3) आपूर्ति श्रृंखला सुरक
'Sha256' द्वारा अपरिवर्तनीय छवियां, निषेध 'नवीनतम'।
प्रवेश वेबहुक पर छवि हस्ताक्षर (Cosign) + सत्यापन।- स्कैन कमजोरियां (SCA) "अवरुद्ध कदम" के रूप में।
- रहस्य - बाहरी रहस्यों के माध्यम से तिजोरी/बादल एसएम से; एक्सेस ऑडिट।
4) कैनरी रिलीज़: पैटर्न
विकल्प:- यातायात द्वारा कैनरी: 1% → 5% → 10% → 25% → 50% → 100%।
- खंड द्वारा कैनरी: कर्मचारी केवल, फिर एक ब्रांड/बाजार, फिर पूरा क्षेत्र।
- छाया: प्रतिक्रियाओं ("भारी" परिवर्तनों के लिए) को प्रभावित किए बिना वास्तविक यातायात का
- ब्लू-ग्रीन: दो समान ढेर, त्वरित मार्ग स्विचिंग।
- SLI: लॉगिन/डिपॉजिट/शर्त सफलता, p95 एपीआई और डब्ल्यूएस-आरटीटी, 4xx/5xx, रिट्रे कतार।
- बिजनेस एसएलओ: registratsiya→depozit रूपांतरण, सफलता दर।
- "हार्ड" स्टॉप सिग्नल: चार्ज बैक त्रुटियों में वृद्धि, सफलता अनुपात पीएसपी में गिरावट, गेम प्रदाता की त्रुटियां।
yaml रणनीति:
कैनरी:
चरण:
- सेटवेट: 5
- ठहराव: {अवधि: 5 मी}
- विश्लेषण: {templates: [{templateName: dovit-slo}]} # гейт по SLO
- सेटवेट: 25
- ठहराव: {अवधि: 10 मी}
- विश्लेषण: {templates: [{templatemName: auth-arre-rate}}}
- सेटवेट: 50
- ठहराव: {}5) Ficheflags: रिलीज के बिना जोखिम प्रबंधन
फ्लैग प्रकार:- फ्लैग्स जारी करें - एक नया फंक्शन सक्षम करना (आप कैनरी "अंदर" संस्करण कर सकते हैं)।
- ऑप्स फ्लैग्स (किल-स्विच) - महंगे/अस्थिर भागों का त्वरित बंद (उदाहरण के लिए, एक नया गेम प्रदाता)।
- प्रयोग झंडे - यूआई/थ्रेसहोल्ड के लिए ए/बी।
- फ्लैग्स की अनुमति - केवल बाजारों/वीआईपी/भागीदारों के लिए अभिगम।
- झंडे - एक केंद्रीकृत सेवा/एसडीके (Unleash/LaunchDarkly/Ralout, या अपने स्वयं के) में।
- ध्वज और "ऋण" के लिए टीटीएल - स्थिरीकरण के बाद स्पष्ट।
- 'ट्रेस _ आईडी' के साथ "फ्लैग सॉल्यूशन" लॉग करें (डिबगिंग के लिए).
- दुर्घटनाओं के लिए "प्री-सेट" स्टोर करें ("पुराने भुगतान वापस करें" बटन)।
json
{
"सुविधा": "payments_v2," "नियम": [
{"यदि": "['DE', 'SE'] में बाजार," "रोलआउट": 0। 25}, {"यदि": "ब्रांड = = 'X' और उपयोगकर्ता। Isकर्मचारी" ", रोलआउट": 1। 0}
] ", kill_switch": गलत
}6) एसएलओ गेट और ऑटो पिकअप
बजट त्रुटि: यदि खिड़की 10-15 मिनट की है, तो SLI थ्रेसहोल्ड से परे जाता है - ऑटो-पॉज़और रोलबैक।
मीट्रिक स्रोत: प्रोमेथियस/ओटेल आर्गो रोलआउट्स/फ्लैगर रन।
आवश्यक अनुक्रमिक उल्लंघन ≥ 3।
थ्रेसहोल्ड के उदाहरण हैं:- 'लोगिन _ सफलता _ अनुपात ≥ 99। 9%`
- 'p95 _ payment _ dovit ≤ 400ms'
- 'ws _ rtt _ p95 ≤ 120ms'
- 'डेपोसिट _ सक्सेस _ by _ psp ≥ 99%' (प्रति पीएसपी)
7) डेटाबेस पलायन और डाउनटाइम-मुक्त संगतता
विस्तार → माइग्रेट → अनुबंध पैटर्न:1. विस्तार: नए कॉलम/इंडेक्स जोड़ें, योजनाओं को संगत बनाएं (डबल एंट्री)।
2. माइग्रेट करें: एप्लिकेशन पुराने + नए को लिखता है, फ़िचफ्लैग के पीछे नए से पढ़ ता है।
3. संविदा: स्थिरीकरण के बाद - पुराने को हटा दें।
उपकरण: लिक्विबेस/फ्लाईवे, सीआई के लिए प्रवास, "आदर्श और पिछड़े-संगत" नियम।
एंटी-ट्रैप: पलायन पर प्रतिबंध लगाना जो पुराने संस्करण को तोड़ ता है जबकि कैनरी <100% है।
8) प्रगतिशील वितरण के लिए परीक्षण रणनीति
सेवाओं और बाहरी प्रदाताओं (पीएसपी/गेम) के बीच अनुबंध (संधि/बुफ)।
E2E परिदृश्य: लॉगिन → जमा → दर → निपटान → वापसी (और नकारात्मक रास्ते)।
बिक्री में सिंथेटिक्स (कैनरी सेल): कम मात्रा में परीक्षण जमा/दरें।
Ficheflag परीक्षण: प्रत्येक शाखा में - dev/stage/canary के लिए फ्लैग कॉन्फ़िगरेशन।
9) डोमेन द्वारा रिलीज का ऑर्केस्ट्रेशन
ऑथ/प्रोफाइल: शॉर्ट टाइमआउट और लिमिट; 2FA/SSO परीक्षा।
भुगतान/बटुआ: केवल एक छोटे हिस्से और एक बाजार के लिए कैनरी; पीएसपी कोटा की सख्त निगरानी।
गेम-गेटवे (WS): व्यक्तिगत नोड्यूल; पीडीबी; चिपचिपा-मार्ग; नए कोडेक/प्रोटोकॉल के लिए ficheflag।
प्रोमो/बोनस: पहचान '/प्रोमो/दावा '; कैनरी यातायात पर प्रतिबंध।
10) GitOps स्ट्रीम (उदाहरण)
1. मुख्य → CI में विलय करें, छवि पर हस्ताक्षर किए, परीक्षण चलाया।
2. बॉट ने कैनरी मैनिफेस्ट में संस्करण को अपडेट किया - Argo CD लागू।
3. आर्गो रोलआउट्स: 5% ट्रैफिक + मैट्रिक्स विश्लेषण।
4. 25/50/100% या ऑटो-रोल के लिए ऑटो-वॉश करें।
5. "पूर्ण छड़ी" और झंडे/कॉन्फ्रेंस को साफ करने के लिए पीआर।
11) रिलीज की अवलोकन और टेलीमेट्री
'संस्करण', 'रोलआउट _ स्टेप', 'फ्लैग _ वेरिएंट' मेट्रिक्स/लॉग/ट्रेस को चिह्नित करता है।
डैशबोर्ड "रिलीज़हेल्थ": प्रमुख प्रवाह द्वारा SLI, तुलना 'बेसलाइन बनाम कैनरी'।
Phicheflag समाधान (दर-सीमित) के लॉग, समस्या फैलाव के लिए लिंक का पता लगाएं।
12) घटनाएं, रोलबैक, हॉटफिक्स
रनबुक: "रिलीज़को कैसे रोल करें/झंडा बंद करें/PSP स्विच करें।"
किल-स्विच बटन: नए फ़ंक्शन को तैनात किए बिना तत्काल अक्षम करना।
हॉटफिक्स: कैनरी के माध्यम से 1-5% + हरे एसएलओ के साथ त्वरित पदोन्नति।
13) अनुपालन और लेखा परीक्षा
पूर्ण ट्रेसबिलिटी: कौन/कब/क्या लुढ़का, क्या झंडे और कहां शामिल हैं।
WORM रिलीज़ और फ्लैग परिवर्तन के लॉग।- भुगतान सेवाओं और डेटाबेस प्रवासन के लिए चार-आंख नीति।
14) कॉन्फ़िगरेशन उदाहरण
GitHub क्रियाएँ (CI टुकड़ा):yaml नौकरियां:
बिल्ड-टेस्ट:
रन-ऑन: ubuntu-नवीनतम चरण:
- उपयोग: क्रियाएं/चेकआउट @ v4
- रन: परीक्षण करें
- रन: build & cosign साइन --key $ COSIGN _ KEY छवि: टैग
- रन: तुच्छ छवि --exit-code 1 छवि: टैग
- रन: sbom उत्पन्न छवि: टैग> sbom। spdx। jsonअजगर अगर झंडे। is_enabled ("भुगतान _ v2", उपयोगकर्ता = ctx। उपयोगकर्ता, बाजार = ctx। बाजार)::
परिणाम = deposit_v2 (req)
और:
परिणाम = deposit_v1 (req)रेगो इनकार [msg] {
इनपुट। अनुरोध। दयालु। दयालु = = "पॉड"
इनपुट नहीं। अनुरोध। वस्तु। स्पेक्ट।  संदर्भ। RunAsNonRoot msg: = "RunAsNonRoot आवश्यक है"
}15) सूची की जांच करें (प्रोड-रेडी)
- GitOps सक्षम; मैनुअल 'कुबेक्टल लागू' की अनुमति नहीं है।
- छवियों पर हस्ताक्षर, मानकों में कमजोरियां; प्रवेश हस्ताक्षर की जाँच करता है।
- कैनरी/ब्लू-ग्रीन कॉन्फ़िगर; एसएलओ के माध्यम से रिलीज-गेट जुड़े हुए हैं।
- किल-स्विच के साथ Ficheflags; फ्लैग निर्णय लॉग।
- expand→migrate→contract प्रवास; संक्रमणों पर दोहरी प्रविष्
- डैशबोर्ड 'बेसलाइन बनाम कैनरी'; मेट्रिक्स द्वारा ऑटो-रोलबैक।
- PSP रोलबैक/स्विच/गेम प्रदाता रनबुक डिस्कनेक्ट करें।
- कैनरी पर परीक्षण किए गए बाहरी प्रदाताओं के साथ अनुबंध।
- सुरक्षा नीतियां (OPA/Kyverno), तिजोरी/एसएम रहस्य।
- रिलीज के बाद मृत झंडे और कॉन्फ़िग साफ़ करना।
16) विशिष्ट जाल
कैनरी "आईपी द्वारा", और खिलाड़ियों के वास्तविक खंडों द्वारा नहीं - मैट्रिक्स की विकृति।
एसएलओ द्वार की कमी - कैनरी आंख से जाती है।- पुराना संस्करण सक्रिय होने पर स्कीमा माइग्रेशन को तोड़ ना।
- भुगतान में असीमित रेट्राई/पहचान - कैस्केड लेता है।
- TTL → कॉन्फ़िगरेशन अराजकता के बिना "अनन्त" ficheflags।
- कैनरी में एकमात्र PSP की तुलना सफलता अनुपात से नहीं की जा सकती है।
सारांश फिर से शुरू करें
IGaming के लिए CI/CD समय में प्रगतिशील वितरण + कॉन्फ़िगरेबिलिटी है: कैनरी रिलीज़, किल-स्विच, SLO गेट्स और ऑटो-रोलबैक के साथ फ़िचफ्लैग। सुरक्षित पलायन, GitOps अनुशासन, बेसलाइन बनाम कैनरी टेलीमेट्री, और मजबूत सुरक्षा नीतियां जोड़ें - और आपकी रिलीज़ पीक लोड और सख्त अनुपालन के तहत भी अनुमानित, तेज और प्रबंधनीय हो जाएगी।
