प्रगतिशील रिलीज और मंचन
(खंड: वास्तुकला और प्रोटोकॉल)
1) प्रगतिशील वितरण क्यों
क्लासिक "देव" टेस्ट मंचन प्रोड "योजना सुरक्षा की गारंटी नहीं देती है: उत्पादन के करीब, असंगति का जोखिम जितना अधिक होगा। प्रगतिशील रिलीज विस्फोट त्रिज्या को कम करता है, धीरे-धीरे यातायात/दर्शकों की हिस्सेदारी बढ़ाता है और मेट्रिक्स और एसएलओ के साथ समाधान को मजबूत करता है। मंचन के साथ संयोजन में, यह देता है: शून्य डाउनटाइम, फास्ट रोलबैक, प्रक्रिया दोहराव और औसत दर्जे की गुणवत्ता नियंत्रण।
2) शर्तें
मंचन (वातावरण) - कलाकृतियों के जीवन चक्र के औपचारिक चरण: 'देव', 'सीआई', 'क्यू/टेस्ट', 'स्टेजिंग/प्री-प्रोड', 'प्रोड', साथ ही फीचर शाखाओं के तहत पर्यावरण के पंचांग/पूर्वावलोकन।
प्रगतिशील वितरण - संस्करण/सुविधा का चरणबद्ध समावेश: कैनरी, प्रतिशत रोलआउट, रिंग-तैनाती, फिचफ्लैग, डार्क-लॉन्च, छाया यातायात।
गेट्स - स्वचालित प्रवेश मानदंड (त्रुटि दर, p95, व्यवसाय मेट्रिक्स, एसएलओ त्रुटि बजट)।
कलाकृति का संवर्धन चरणों (अपरिवर्तनीय कलाकृतियों) के बीच एक ही हस्ताक्षरित निर्माण का प्रचार है।
3) पर्यावरण मानचित्र और उनका उद्देश्य
3. 1 मूल
देव (स्थानीय/सैंडबॉक्स): तेज लूप, निर्भरता स्टब्स, न्यूनतम सुरक्षा।
सीआई (एकीकरण स्टैंड): इकाई/एकीकरण/अनुबंध परीक्षण, स्थिर विश्लेषण, एससीए/एसएएसटी।
QA/टेस्ट: e2e, लोड, रिग्रेशन। डेटा - सिंथेटिक या नकाबपोश।
स्टेजिंग/प्री-प्रोड: अधिकतम "एक उत्पाद के रूप में": एक ही कॉन्फ़िगरेशन, झंडे, सीमा, पृष्ठभूमि प्रसंस्करण।
Prod: लड़ाकू यातायात, SLO/SLI, अलर्ट, रोलबैक योजना।
3. 2 अतिरिक्त
पंचांग/पूर्वावलोकन प्रति पीआर: पुल-अनुरोध पर एक स्टैंड का ऑटो-निर्माण, विलय/बंद पर ऑटो-विध्वंस।
व्यावसायिक टीमों के लिए यूएटी/सैंडबॉक्स: स्वीकृति, प्रदर्शन, प्रशिक्षण परिदृश्य।
प्रदर्शन प्रयोगशाला: पृथक लोड प्रयोग (ट्रैफिक जनरेटर, डेटा प्रतिकृतियां)।
4) टिकाऊ मंचन के सिद्धांत
कोड (IaC, GitOps) के रूप में कॉन्फ़िगरेशन, पर्यावरण बहाव को कोड और स्वचालित सत्यापन द्वारा बाहर रखा गया है।
Idempotent, हस्ताक्षरित कलाकृतियां (SBOM, सिद्ध, सत्यापन), एक एकल बिल्ड → मल्टी-स्टेज तैनाती।
बिक्री के साथ समानता: रनटाइम संस्करण, सीमा, नेटवर्क नीतियां, झंडे शामिल हैं। अंतर केवल रहस्य/डेटा में है।
टीडीएम (परीक्षण डेटा प्रबंधन): पाइपलाइन के हिस्से के रूप में सिंथेटिक्स/मास्किंग, पलायन और पक्ष।
डिजाइन द्वारा अवलोकन: रिलीज के निशान, लॉग/निशान का सहसंबंध, सभी चरणों में एक समान डैशबोर्ड।
5) प्रगतिशील रिलीज मॉडल
5. 1 दृष्टिकोण उपकरण
Ficheflags: खंडों (देश, ग्राहक, खाता, यादृच्छिक बीज) द्वारा कार्यक्षमता को सक्षम/अक्षम करना।
कैनरी: प्रत्येक चरण में फाटकों के साथ 1-5-10-25-50-100% यातायात।
रिंग-तैनाती: आंतरिक → कर्मचारी → बीटा → सार्वजनिक।
ब्लू-ग्रीन: प्रमुख मंच उन्नयन के लिए परमाणु फ्लिप।
डार्क-लॉन्च: उपयोगकर्ता को प्रभावित किए बिना छिपा हुआ निष्पादन (मैट्रिक्स एकत्र करना)।
छाया-यातायात: उपयोगकर्ता को जवाब दिए बिना नए संस्करण के लिए अनुरोधों को प्रतिबिंबित करना।
5. 2 स्वचालित द्वार
तकनीकी मैट्रिक्स: त्रुटि दर, p95/p99, संतृप्ति, कतार अंतराल।
व्यवसाय मैट्रिक्स: प्राधिकरण, भुगतान में रूपांतरण, फ़नल चरणों द्वारा इनकार।
SLO/त्रुटि बजट: त्वरित त्रुटि बजट बर्न पर तेजी से बंद करें।
सांख्यिकीय महत्व: प्रति चरण यातायात का न्यूनतम समय/मात्रा, ताकि "शोर पर" निर्णय न लें।
6) विशिष्ट सीआई/सीडी श्रृंखला (संदर्भ)
1. कमिट/PR → Build: एकल छवि/पैकेज, हस्ताक्षर, SBOM।
2. CI- тесты: इकाई/एकीकरण/अनुबंध + सुरक्षा (SAST/SCA/गुप्त-स्कैन)।
3. पंचांग पूर्वावलोकन: मैनुअल चेक/यूएक्स के लिए स्टैंड का स्वचालित उठाना।
4. QA/टेस्ट: e2e + लोड + अराजकता परीक्षण (वैकल्पिक)।
5. मंचन: धुआं, महत्वपूर्ण उपयोगकर्ता पथ का प्रतिगमन, डेटाबेस प्रवासन की जाँच।
6. प्रोड कैनरी: 1-5% ट्रैफिक → गेट्स → 10-25-50-100%।
7. रोलबैक/पूर्णता: समस्याओं के मामले में - ऑटो-रोलबैक; यदि सफल हो, तो पुराने संस्करण को तह करना।
7) डेटा और स्कीमा प्रबंधन
एक्सटेंशन-माइग्रेट-कॉन्ट्रैक्ट: बैकवर्ड-संगत माइग्रेशन, बैकग्राउंड ट्रांसफर, चौकियां, आइडेम्पोटेंसी।
Dduplication या ट्रांजेक्शनल आउटबॉक्स के साथ दोहरी लिखें।
मंचन के लिए उत्पादन डेटा का मास्किंग/सबसैम्पलिंग (कानूनी और तकनीकी रूप से सुरक्षित)।
कैश/सत्र: फ्लिप होने पर बाहरी स्टोर, गर्म शुरुआत, विकलांगता नीति।
8) सुरक्षा और अनुपालन
राज: केएमएस/सीक्रेट्स मैनेजर, रोटेशन, कम से कम विशेषाधिकारों का सिद्धांत।
मंचन का अलगाव: नेटवर्क/खाते/परियोजनाएं; प्रोड के साथ आकस्मिक तुल्यकालन को रोकता है।
ऑडिट/रिलीज ट्रेस: कौन/क्या/जब लुढ़का, कलाकृति संस्करण, अनुमोदन बदलें।
सॉफ्टवेयर शिपमेंट: हस्ताक्षर सत्यापन, रजिस्ट्री ट्रस्ट नीति, नवीनतम प्रतिबंध
9) अवलोकन और संचालन
एकल लेबल प्रारूप: '{सेवा, संस्करण, कमिट, चरण, क्षेत्र, रिंग}'.
बेसलाइन के साथ तुलना: कुछ चार्ट पर कैनरी बनाम स्थिर संस्करण।
एसएलओ पर अलर्ट: किराने और तकनीकी, कैनरी के लिए विभिन्न थ्रेसहोल्ड।
पोस्ट-रिलीज़मॉनिटरिंग: विलंबित प्रभावों के लिए कम से कम एन घंटे/दिन।
10) रोलबैक और आपातकालीन योजनाएं
रोलबैक बटन/कमांड - पाइपलाइन का भाग (मैनुअल क्राफ्ट नहीं)।
झंडे का रिवर्स प्रमोशन किल-स्विच की तुलना में तेज है।
डेटा काउंटरमेशर्स: आइडेम्पोटेंट रिप्रोसेसिंग, क्षतिपूर्ति लेनदेन, डीडुप्लिकेशन।
हादसा प्लेबुक: जो निर्णय लेता है, संचार चैनल, संदेश टेम्पलेट।
11) लागत और प्रदर्शन
आक्रामक रूप से ऑटो-डिलीट होने पर पंचांग वातावरण पैसे बचाते हैं।
रिलीज के समय ब्लू-ग्रीन कई गुना अधिक महंगा है; कैनरी सस्ती है लेकिन परिपक्व मैट्रिक्स की आवश्यकता है।
लोड और रिलीज विंडो द्वारा स्वचालित करना; पूर्वावलोकन स्टैंड के लिए कोटा
12) लगातार एंटी-पैटर्न
वातावरण का बहाव: स्टैंड पर मैनुअल एडिट्स, "यह एक ट्रिफ़ल है।"
प्रति वातावरण एक निर्माण: प्रति चरण पुनर्निर्माण → "अपूरणीय" उत्पादन कीड़े।
अप्रासंगिक डेटा पर परीक्षण: "हरे" परीक्षण प्रोड में गिरते हैं।
कोई द्वार नहीं: SLO के बजाय महसूस करके रिलीज़।
ब्लू-ग्रीन के तहत डीएनएस में लंबे टीटीएल; आंशिक यातायात के साथ कोई चिपचिपाहट नहीं
कैनरी/स्थिर के साथ असंगत डेटाबेस योजनाओं का मिश्रण।
13) चेकलिस्ट
मंचन में पदोन्नति से पहले
- छवि पर हस्ताक्षर किए, SBOM ने एकत्र किया, क्रेते-स्तर की कमजोरियां बंद हो गईं।
- डेटाबेस पलायन विस्तार योग्य हैं।
- नकाबपोश/सिंथेटिक परीक्षणों के लिए डेटा।
- नए संस्करण के लिए डैशबोर्ड/अलर्ट तैयार हैं।
प्रोड में प्रवेश करने से पहले
- चरणों और थ्रेसहोल्ड के साथ कैनरी योजना को मंजूरी दी।
- मंचन के लिए किल-स्विच और रोलबैक योजना की जाँच की गई।
- ट्रैफिक छाया या डार्क-लॉन्च निष्पादित (यदि संभव हो)।
- ऑन-कॉल सूचित, विंडो समय सहमत।
रिलीज के बाद
- एसएलओ निगरानी स्थिर एन घंटे है।
- "अनुबंध" सफाई/पलायन लागू।
- पूर्वव्यापी और प्लेबुक अद्यतन।
14) वास्तुकला द्वारा कार्यान्वयन विकल्प
मोनोलिथ: पूर्वावलोकन स्टैंड + ब्लू-ग्रीन, और फीचर्स - झंडे के माध्यम से; URL/कुकी द्वारा सीमित कैनरी।
Microservices: कैनरी/रिंग प्राकृतिक हैं; सख्त अनुबंध प्रबंधन (सीडीसी), एपीआई वर्शनिंग।
राज्यपूर्ण सेवाएं: वार्म-अप और एक स्पष्ट प्रवासन योजना के साथ ब्लू-ग्रीन; अलग कतारें/विषय प्रति संस्करण।
15) संदर्भ पाइपलाइन c GitOps (स्केच)
ऐप रिपॉजिटरी (कोड) कलाकृतियों को जारी करता है - एनवी रिपॉजिटरी में प्रकट करता है।
GitOps एजेंट (Argo CD/Flux) 'env/dev', 'env/qa', 'env/staging', 'env/prod' को सिंक्रनाइज़करता है।
पदोन्नति - वांछित चरण की सूची के लिए पुल-अनुरोध के माध्यम से; विलय ट्रिगर रोलिंग और गेट्स।
16) सुविधाओं और दर्शकों का प्रबंधन
द्वारा विभाजन: ग्राहक प्रकार, देश, उपकरण, आवेदन संस्करण, एबी-कोर्ट, दिन का समय।
क्रमिक विस्तार: 1% आंतरिक → 5% बीटा → 25% शुरुआती ग्राहक → 100% सभी।
एक ही ध्वज तंत्र पर उत्पाद परिकल्पना के लिए ए/बी प्रयोग और बहुभिन्नता।
17) व्यावहारिक परिदृश्य
परिदृश्य 1 - नया भुगतान एकीकरण
1. पीआर, क्यूए रीग्रेस प्रति पंचांग स्टैंड। 2) धुएं का मंचन + सैंडबॉक्स प्रदाता।
2. 'X-Cohort = आंतरिक' शीर्षक पर प्रोड कैनरी 1%। 4) गेट्स: भुगतान की त्रुटि दर, p95 कॉलबैक, सफल लेनदेन का हिस्सा।
3. 1→5→25→50→100%; गिरावट के दौरान - किल-स्विच।
परिदृश्य 2: उन्नयन रनटाइम (JDK/नोड/OS)
क्लस्टर स्तर पर ब्लू-ग्रीन: ग्रीन वार्म अप, माइग्रेशन "विस्तार", फ्लिप, अवलोकन, समस्याओं के मामले में वापस फ्लिप।
परिदृश्य 3: उच्च जोखिम वाली यूआई सुविधा
डार्क-लॉन्च + फिचफ्लैग केवल बीटा उपयोगकर्ताओं के लिए, यूएक्स मैट्रिक्स का संग्रह, दर्शकों का क्रमिक विस्तार।
18) न्यूनतम टूलबॉक्स
CI: बिल्ड, टेस्ट, सिग्नेचर, SBOM।
सीडी/GitOps: Argo CD/Flux/Spinnaker या देशी क्लाउड टूल।
रूटिंग: इंग्रेस/सर्विस मेश (भारित, हेडर/कुकी आधारित)।
Ficheflags: LaunchDarkly/Unleash/OpenFet/स्व-लिखित सेवा।
अवलोकन: मैट्रिक्स, लॉग, निशान, अलर्ट; प्रति चरण एकल डैशबोर्ड।
टीडीएम: मास्किंग, साइडिंग, सिंथेटिक्स जनरेटर।
सुरक्षा: रहस्य, केएमएस, रजिस्ट्री नीति, निर्भरता जांच।
19) संक्षिप्त सारांश
एक प्रगतिशील रिलीज चरणबद्ध समावेश और सख्त मंचन अनुशासन का एक संयोजन है। सफलता चार स्तंभों पर टिकी हुई है: अपरिवर्तनीय कलाकृतियां, एसएलओ ऑटोगेट्स, प्रतिवर्ती डेटा स्कीमा और फास्ट रोलबैक। पूर्वावलोकन वातावरण, GitOps और phicheflags जोड़ें - और आपकी रिलीज पूर्वानुमानित, सुरक्षित और तेज है।