फीचर फ्लैग्स: वर्कफ़्लो और इन्फ्रास्ट्रक्चर
टाइप किए गए फीचर फ्लैग्स को परिभाषित करता है जिनमें डिफ़ॉल्ट-सुरक्षित मान होते हैं, ऑडिट किए गए टेनेंट और उपयोगकर्ता टारगेटिंग, एक हमेशा पहुंच योग्य किल-स्विच, और एक क्लीनअप तिथि होती है जिसके बाद फ्लैग को हटाना आवश्यक होता है।
पैकेज स्थिति: संदर्भ समीक्षा के लिए तैयार। अनुबंध और परीक्षण परिदृश्य पूर्ण हैं, लेकिन यह दावा नहीं किया गया है कि किसी अपनाने वाली इम्प्लीमेंटेशन ने इन्हें पार किया है।
निर्णय
टाइप किए गए फ्लैग्स के पीछे व्यवहार परिवर्तन भेजें जिनका डिफ़ॉल्ट अंतिम ज्ञात-सुरक्षित पथ हो। टारगेटिंग केवल ऑडिट किए गए नियम सेट के माध्यम से टेनेंट या उपयोगकर्ताओं का चयन कर सकती है। एक किल-स्विच हर टारगेटिंग नियम को ओवरराइड करता है। प्रत्येक फ्लैग में एक क्लीनअप तिथि होती है; उस तिथि के बाद फ्लैग को कोड और कॉन्फ़िगरेशन से हटाना चाहिए, न कि स्थायी ब्रांचिंग के रूप में छोड़ना चाहिए।
दायरा
- फ्लैग स्कीमा, डिफ़ॉल्ट, मूल्यांकन क्रम, टेनेंट और उपयोगकर्ता टारगेटिंग, प्रतिशत रोलआउट, किल-स्विच, परिवर्तन ऑडिट, क्लाइंट और सर्वर मूल्यांकन, और क्लीनअप के बाद हटाना।
- बैकएंड सेवाओं और वेब क्लाइंट्स में प्रोडक्ट व्यवहार की प्रोग्रेसिव डिलीवरी जो समान फ्लैग नाम साझा करते हैं।
- बिना पूर्ण आर्टिफैक्ट रोलबैक के शिप किए गए पथ को आपातकालीन रूप से अक्षम करना।
इस ब्लॉक के बाहर
- नए बाइनरी का ट्रैफ़िक-वेटेड कैनरी, जो एक रिलीज-रूटिंग निर्णय है।
- प्रयोग असाइनमेंट और मीट्रिक्स का सांख्यिकीय विश्लेषण।
अनुबंध
- प्रत्येक फ्लैग प्रकार, डिफ़ॉल्ट-सुरक्षित मान, मालिक, और क्लीनअप तिथि घोषित करता है; अज्ञात फ्लैग्स टाइप किए गए डिफ़ॉल्ट पर मूल्यांकन होते हैं, न कि true पर।
- मूल्यांकन क्रम है: किल-स्विच, फिर पर्यावरण अक्षम, फिर स्पष्ट अस्वीकृति, फिर टारगेटिंग, फिर प्रतिशत, फिर डिफ़ॉल्ट।
- टेनेंट और उपयोगकर्ता टारगेटिंग अभिनेता, कारण, और परिवर्तन समय रिकॉर्ड करता है; गुमनाम क्लाइंट प्रतिबंधित फ्लैग को स्वयं प्रदान नहीं कर सकते।
- किल-स्विच कॉन्फ़िगर किए गए प्रचार सीमा के भीतर सुरक्षित मान को वैश्विक रूप से लागू करता है।
- सर्वर मूल्यांकन प्राधिकृत पथों के लिए प्राधिकृत है; वेब क्लाइंट केवल क्लाइंट-सुरक्षित चिह्नित फ्लैग्स को कैश कर सकता है।
- क्लीनअप तिथि के बाद, यदि फ्लैग पहचानकर्ता अभी भी कोड या रनटाइम कॉन्फ़िग में दिखाई देता है तो CI विफल हो जाता है।
कार्यान्वयन मार्गदर्शन
- कॉलर्स को फ्री-स्ट्रिंग फ्लैग नाम पास न करने के लिए स्कीमा से एक्सेसर्स उत्पन्न करें।
- फ्लैग्स का मूल्यांकन अनुरोध या जॉब सीमा पर करें और एक स्नैपशॉट पास करें; अनुरोध के बीच में पुनः पढ़ें नहीं।
विफलता प्रबंधन
- यदि फ्लैग स्टोर पहुंच योग्य नहीं है, तो डिफ़ॉल्ट प्रदान करें और उच्च-गंभीरता का सिग्नल जारी करें; प्रयोगात्मक व्यवहार के लिए खुले तौर पर विफल न हों।
- गलत टारगेटिंग नियमों को छोड़ दिया जाता है और मूल्यांकन क्रम का अगला चरण लागू होता है।
सत्यापन और संचालन
- डिफ़ॉल्ट-फॉलबैक दर, किल-स्विच उपयोग, क्लीनअप तिथि के बाद के फ्लैग्स, और क्लाइंट कैश और सर्वर स्नैपशॉट के बीच असहमति को मापें।
- जब कोई प्राधिकरण-संवेदनशील फ्लैग क्लाइंट-सुरक्षित चिह्नित हो तो अलर्ट करें।
- परीक्षणों के साथ साबित करें कि किल-स्विच सौ प्रतिशत रोलआउट को हरा देता है और अज्ञात फ्लैग्स डिफ़ॉल्ट-सुरक्षित रहते हैं।
इस पैकेज में निष्पादन-समान उदाहरण फिक्स्चर और स्वीकृति अनुबंध हैं। पैकेज संरचना और मेटाडेटा जांचने के लिए संग्रह रूट से python tools/validate.py चलाएं; फिर लक्षित रिपॉजिटरी में परिदृश्यों को लागू और निष्पादित करें।
अपनाने की धारणाएं
example.yamlमें नाम और संख्यात्मक मान एक अपनाने की प्रोफ़ाइल हैं, सार्वभौमिक डिफ़ॉल्ट नहीं।- अपनाने वाली टीम को अपने सिस्टम के लिए अभिनेता, डेटा वर्ग, त्रुटि शब्दावली, और स्वामित्व को मैप करना होगा।
संदर्भ
- फ्लैग स्कीमा, मूल्यांकन क्रम, टारगेटिंग ऑडिट, और क्लीनअप तिथियां इस पैकेज में दर्ज परियोजना निर्णय हैं; ये सार्वजनिक मानक नहीं हैं।