DevOps अभ्यास और CI/CD
1) लक्ष्य और सिद्धांत
तेज और सुरक्षित: छोटे चक्र, परिवर्तन के छोटे बैच, स्वचालित जांच।
दोहराव: बुनियादी ढांचा कोड (IaC), पर्यावरण = कोड + नीति के रूप में।
अवलोकन: मैट्रिक्स/ट्रेल्स/बॉक्स से बाहर लॉग, एक अनुबंध के रूप में एसएलओ।
अनुपालन: ऑडिट, नियंत्रण बदलें, क्षेत्रीय डेटा अलगाव।
सुनहरा नियम: "पहले गुणवत्ता, फिर गति - अन्यथा गति कभी प्रकट नहीं होगी।"
2) शाखाएँ और वातावरण
ट्रंक-आधारित + फीचर फ्लैग्स - मूल चयन।
लघु सुविधा लाइनें (≤ 2-5 दिन), दैनिक ट्रंक में विलय।
वृद्धिशील वितरण और सुरक्षित रोलबैक के लिए सर्वर-साइड झंडे।
गिट वातावरण: 'देव' → 'स्टेज' → 'प्रोड' (+ क्षेत्रीय 'प्रोड-ईयू', 'प्रॉड-लैटम')।
कलाकृतियों का संवर्धन: एक एकत्रित छवि को मीडिया के माध्यम से बढ़ावा दिया जाता है (पाचन द्वारा अपरिवर्तनीय टैग)।
जब GitFlow: नियामक विधानसभाओं/SDK की दुर्लभ रिलीज़ - फिर शाखाएँ + "सख्त" जारी करती हैं।
3) गुणवत्ता का पिरामिड और "लाल रेखा"
1. स्थिर विश्लेषण (SAST, लिंटर्स, लाइसेंस)।
2. इकाई/संपत्ति-आधारित परीक्षण (सेकंड)।
3. एपीआई और घटनाओं के लिए अनुबंध-परीक्षण (सीडीसी) (OpenAPI/AsyncAPI, स्कीमा रजिस्ट्री)।
4. एकीकरण (परीक्षक, स्थानीय दलाल)।
5. E2E महत्वपूर्ण रास्ते: पंजीकरण → KYC → जमा → गेम लॉन्च → आउटपुट।
6. भुगतान/बटुआ/खेल प्रदाताओं के लिए लोड/अराजकता परीक्षण।
गुणवत्ता पास नहीं होती है - जमा अवरुद्ध है। परिवर्तन-रिकॉर्ड के बिना कोई "मैनुअल अपवाद" नहीं हैं।
4) आपूर्ति श्रृंखला
प्रत्येक छवि/पैकेज (CycloneDX/SPDX) के लिए SBOM।
Artifact हस्ताक्षर (cosign), प्रवेश में केवल "नीति पर हस्ताक्षर"।
SCA/Dependabot: कमजोरियां और लाइसेंस।
प्रोवेंस/एसएलएसए: प्रजनन योग्य विधानसभाएं, बंद बिल्ड एजेंट, सत्यापन।
राज: प्रबंधक (केएमएस/बाहरी रहस्य) में, रेपो/लॉग में एक भी रहस्य नहीं है।
5) GitOps и IaC
कोड के रूप में इंफ्रा: क्लाउड के लिए टेराफॉर्म/पुलुमी; k8s के लिए हेल्म/Kustomize।
GitOps नियंत्रक (ArgoCD/Flux): घोषणात्मक घोषणापत्र, पीआर समीक्षा, ऑडिट ट्रेल।
विंडोज/फ्रीज: टूर्नामेंट सप्ताह/पीक आवर्स - उत्पादन रिलीज का ऑटो-ठहराव।
OPA/Kyverno नीतियां: नवीनतम ', गैर-रूट, रीड-ओनली FS, hostPath अस्वीकृत।
6) प्रगतिशील वितरण
कैनरी: रेलिंग मेट्रिक्स पर 1→5→10→25→50→100% (p95 विलंबता, 5xx, त्रुटि बजट बर्न)।
ब्लू-ग्रीन: फास्ट स्विच + रोलबैक प्लान।
छाया/मिररिंग: प्रतिक्रिया को प्रभावित किए बिना अनुरोधों की प्रतिलिपि (नए पीएसपी एडेप्टर के लिए)।
फ्लैग्स: खंड (क्षेत्र/भूमिका/पार्टनर/चैनल) + किल-स्विच द्वारा समावेश।
7) डेटाबेस पलायन (विस्तार और अनुबंध)
चरण 1: योजना का विस्तार करें (नए कॉलम/इंडेक्स) - पुराने कोड के साथ संगत।
चरण 2: डंप कोड जो दोनों संस्करणों/क्षेत्रों को लिखता है।
चरण 3: पृष्ठभूमि जॉबा डेटा माइग्रेशन, प्रगति मैट्रिक्स।
चरण 4: नए क्षेत्रों में पढ़ ने के लिए स्विच करें।
चरण 5: पुराने को हटाना एक अलग रिलीज है।
प्राइम टाइम में डीडीएल प्रतिबंध को अवरुद्ध करना; उच्च तालिकाओं के लिए - ऑनलाइन प्रवास।
8) अवलोकन और एसएलओ
मेट्रिक्स: आरपीएस, पी 50/95/99, 4xx/5xx, संतृप्ति (सीपीयू/मेम/कतार), डीएलक्यू/ब्रोकर लैग।
बिजनेस मैट्रिक्स: TTP (टाइम-टू-प्ले), TtW (टाइम-टू-वॉलेट), FTD-सफलता, KYC-TtV।
ट्रेस: गेटवे से डेटाबेस तक ट्रेस-आईडी।
SLO: उदाहरण के लिए, 'जमा p95 ≤ 300-500 ms', 'सफलता ≥ 98। 5% ',' उपलब्धता ≥ 99। 9%`.
गिरावट के दौरान बर्न रेट अलर्ट + ऑटो-पॉज़रिलीज़।
9) घटनाएं, पोस्टमार्टम, शिफ्ट
महत्वपूर्ण धाराओं पर रनबुक (जमा/आउटपुट/एसीसी, लाइव गेम)।
प्राथमिकता स्केल: P1...P4, मालिक, ईटीए, संचार (बैनर, स्थिति पृष्ठ, भागीदार)।
एक्शन आइटम और तारीखों के साथ ब्लैमलेस पोस्टमॉर्टम।
कॉल पर वैकल्पिक, चैट अलर्ट, स्थिति हर एन मिनट अपडेट करती है।
डॉक ट्रेल: कौन/कब/क्या पोस्ट किया गया (प्रतिबद्ध, कलाकृतियां, पर्यावरण, ध्वज)।
10) सुरक्षा और अनुपालन (DevSecOps)
SAST/DAST/IAST, CI में गुप्त स्कैन।
mTLS servis↔servis, छोटे TTL के साथ JWT, कुंजी रोटेशन।
लॉग/ट्रैक में मास्किंग पीआईआई/पैन; WORM व्यवस्थापक गतिविधि लॉग।
भू-अलगाव: क्षेत्र द्वारा समूह/डेटाबेस, गेटवे मार्ग।
परिवर्तन प्रबंधन: संवेदनशील क्षेत्रों के लिए टिकट/अनुमोदन (बटुआ
11) डोरा मैट्रिक्स और फिनोप्स
तैनाती आवृत्ति (दैनिक छोटी रिलीज)।
परिवर्तन के लिए लीड टाइम (आदर्श: घड़ी)।
MTTR (वसूली: मिनट/घंटे)।
असफलता दर बदलें (लक्ष्य ≤ 15%)।
FinOps: वातावरण की लागत, RPS कैशिंग, गर्म पूल, श्रमिकों का ऑटो-ठहराव, "प्रति लेनदेन लागत।"
12) iGaming विशिष्टता
चोटियों (टूर्नामेंट/लाइव): प्रमुख परिवर्तनों को ठंड, कैश/छवियों को गर्म करना, कोटा बूस्ट।
भुगतान/पर्स: व्यक्तिगत पूल/नोड्स, एलिवेटेड एसएलओ, क्षेत्र द्वारा कैनरी रोलआउट, पीएसपी प्रदाताओं द्वारा दोहरी टेलीमेट्री।
सीसी/अनुपालन: रिलीज की अलग ताल, अनुपालन के अनिवार्य पोस्ट-अपडेट।
भागीदार/सहयोगी: पुराने ग्राहकों की सहायता विंडो और निगरानी के साथ सुरक्षित एसडीके, एपीआई संस्करण।
13) उदाहरण CI/CD (YAML, GitHub क्रियाएं → ArgoCD)
yaml name: ci-cd on:
push:
branches: [ main ]
paths: [ "services/wallet/" ]
jobs:
build_test_scan:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Setup Node uses: actions/setup-node@v4 with: { node-version: 22 }
- run: npm ci --omit=dev working-directory: services/wallet
- run: npm test -- --ci working-directory: services/wallet
- name: Lint & SAST run: npm run lint && npm run sast working-directory: services/wallet
- name: Build image run:
docker build -t registry. local/wallet:${{ github. sha }} -f Dockerfile.
cosign sign --key $COSIGN_KEY registry. local/wallet:${{ github. sha }}
- name: SBOM & Scan run:
syft packages registry. local/wallet:${{ github. sha }} -o cyclonedx-json > sbom. json trivy image --exit-code 1 --severity HIGH,CRITICAL registry. local/wallet:${{ github. sha }}
- name: Push image run: docker push registry. local/wallet:${{ github. sha }}
deploy_stage:
needs: build_test_scan runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Bump Helm values (image tag)
run: yq -i '.image. tag = "${{ github. sha }}"' helm/wallet/values-stage. yaml
- name: Create PR to gitops repo run: gh pr create -R org/gitops -B stage -H stage-bump/wallet-${{ github. sha }} -t "wallet:${{ github. sha }}" -b "Promote to stage"
promote_prod:
if: github. ref == 'refs/heads/main'
needs: deploy_stage runs-on: ubuntu-latest steps:
- name: Gate: SLO/quality checks run:./scripts/gates/check_stage_health. sh # p95, 5xx, e2e ok
- name: Canary 10%
run:./scripts/gitops/canary. sh wallet ${{ github. sha }} 10
- name: Auto-pause on degradation run:./scripts/gates/guardrails. sh./scripts/gitops/rollback. sh wallet
- name: Roll to 100%
run:./scripts/gitops/rollout. sh wallet ${{ github. sha }} 100
14) चेकलिस्ट
मुख्य में विलय करने से पहले
- यूनिट/सीडीसी/एकीकरण हरा।
- लिंटर्स/SAST/लाइसेंस साफ हैं।
- अद्यतन OpenAPI/AsyncAPI स्कीमा और डेटाबेस माइग्रेशन।
- Fiche झंडे जोड़े गए, फॉलबैक परिभाषित।
प्रोड में रिलीज से पहले
- छवि पर हस्ताक्षर किए गए, SBOM संलग्न, HIGH/CRIT कमजोरियां बंद हो गईं।
- डैशबोर्ड/अलर्ट बनाए गए; एसएलओ गेट जुड़े हुए हैं।
- रोलबैक योजना, किल-स्विच, छाया (यदि आवश्यक हो)।
- क्षेत्रीय प्रतिबंध और डेटा नीति की पुष्टि की।
घटनाएँ
- रनबुक मिला और आज तक।
- उपयोगकर्ताओं/भागीदारों के लिए संचार (टेम्पलेट, ईटीए)।
- 48 घंटे पर पोस्टमॉर्टम, तारीखों के साथ एक्शन आइटम।
15) एंटी-पैटर्न
"हर वातावरण के लिए पुनर्संयोजन" (कोई कलाकृति पदोन्नति नहीं)।
बिना लेखा परीक्षा/पुनरावृत्ति के चरण तैनात करना।
डेटाबेस माइग्रेशन "हेड-ऑन", असंगत एपीआई प्रतिक्रियाएं।
सीआई चर में या भंडार में रहस्य।
ध्वज/रोलबैक के बिना भयावह विशेषताएं।
कैनरी रिलीज पर SLO/रेलिंग की कमी।
PII/PAN के साथ लॉग, कोई मास्किंग नहीं।
16) उपयोगी माइक्रोकोपी टेम्पलेट
रिलीज (भागीदारों के लिए):- "हम चरणों (%) में भुगतान मॉड्यूल के अपडेट को रोल आउट कर रहे हैं। 2 मिनट तक की अल्पकालिक नामांकन देरी संभव है। पूरा होने का ईटीए - रात 9 बजे। ईईटी"
- "भुगतान प्रदाता एक्स अस्थिर है। नामांकन में 15 मिनट तक का समय लग सकता है। हम एक फिक्स पर काम कर रहे हैं। अगला स्थिति अपडेट 30 मिनट में है"
- "बढ़ती देरी के कारण अपडेट होल्ड पर है। हम पिछला संस्करण वापस करते हैं। डेटा और संचालन सहेजे गए हैं"
17) कार्यान्वयन प्रक्रिया (4 स्प्रिंट)
1. गुणवत्ता मानक और पाइपलाइन: SAST/इकाई/CDC, एकल छवि, हस्ताक्षर, SBOM।
2. GitOps + वातावरण: हेल्म/Kustomize, ArgoCD, कलाकृतियों का प्रचार, गुप्त नीति।
3. प्रगतिशील रिलीज और एसएलओ गेट: कैनरी/छाया, रेलिंग, ऑटो-हब।
4. विश्वसनीयता और लागत: अराजकता परीक्षण, ऑटोस्केल/गर्म पूल, फिनोप्स डैशबोर्ड।
अंतिम धोखा पत्र
ट्रंक + झंडे + छोटे बैच = तनाव-मुक्त गति।
एकल हस्ताक्षरित कलाकृतियाँ + SBOM = नियंत्रित आपूर्ति श्रृंखला।
GitOps + नीतियां = प्रजनन और ऑडिटिंग।
कैनरी/ब्लू-ग्रीन + एसएलओ गेट = सुरक्षित रिलीज।
DB = शून्य डाउनटाइम के लिए विस्तार और अनुबंध।
अवलोकन और DORA = प्रबंधनीय सुधार।
क्षेत्रीय अलगाव और अनुपालन = कानूनों और विश्वास का अनुपालन।