रेल में फ़ीचर फ़्लैग क्या हैं, फिर से?
<पी> यदि आप विषय के परिचय की तलाश में हैं, तो फ्लिपर के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग जोड़ें पोस्ट देखें। <पी> संक्षेप में, हालाँकि, फ़ीचर फ़्लैग यह प्रभावित करने का एक तरीका है कि आपका एप्लिकेशन रनटाइम पर कैसे व्यवहार करता है , नया कोड तैनात किए बिना। सबसे सरल प्रकार के फ़ीचर फ़्लैग पर्यावरण चर हैं। प्रत्येक रूबी ऑन रेल्स एप्लिकेशन उन्हें बॉक्स से बाहर उपयोग करता है। एक उदाहरणENV['WEB_CONCURRENCY'] का उपयोग करके एप्लिकेशन सर्वर समवर्ती का कॉन्फ़िगरेशन है . <पी> हालाँकि, फ़ीचर फ़्लैग को प्रबंधित करने के अन्य तरीके भी हैं, जैसे ActiveRecord या Redis जैसी दृढ़ता परत का उपयोग करना। ऐसा करने का एक व्यापक तरीका फ़्लिपर जेम द्वारा प्रस्तुत किया गया है। <पी> निम्नलिखित स्निपेट उदाहरण देता है कि कैसे performance_improvement फ़ीचर फ़्लैग का मूल्यांकन किसी दिए गए उपयोगकर्ता के लिए किया जाता है: <पी> इसके बाद, हम फीचर फ़्लैग के साथ प्रयोग शुरू करने के लिए एक सॉलिडस स्टोरफ्रंट स्थापित करेंगे। हमारा उदाहरण ऐप:एक सॉलिडस स्टोरफ्रंट
<पी> कुछ हद तक यथार्थवादी परिदृश्य में फ़ीचर फ़्लैग के प्रभाव को मापने के लिए, आइए जल्दी से एक सॉलिडस स्टोर को बूटस्ट्रैप करें: <पी> यह जनरेटर प्रक्रिया में आपका मार्गदर्शन करेगा और आपसे कुछ सेटअप प्रश्न पूछेगा।- स्टार्टर चुनें फ़्रंटएंड प्रकार के लिए पूछे जाने पर फ़्रंटएंड।
- भुगतान विधि सेट करना छोड़ें।
- अपने सॉलिडस एप्लिकेशन को
/पर माउंट करना चुनें , चूंकि हम इसे एक स्टैंडअलोन ऐप के रूप में उपयोग कर रहे हैं।
bin/dev चलाएँ अपने टर्मिनल से और आपको जाने के लिए तैयार होना चाहिए। जब आप http://localhost:3000 पर जाते हैं , आपको यह स्क्रीन दिखाई देगी: <पी>
फ़्लिपर के साथ फ़ीचर फ़्लैग लागू करें
<पी> आइए अब फीचर फ़्लैग के लिए दो अनुकरणीय उपयोग के मामले लागू करें:- प्रदर्शन में सुधार।
- रूपांतरण दर अनुकूलन का एक प्रयास।
flipper जोड़ना होगा रत्न अपने active_record के साथ भंडारण अनुकूलक: <पी> यह फ़्लिपर "गेट्स" को देखने के लिए आवश्यक डेटाबेस तालिकाएँ स्थापित करेगा, यानी, फीचर फ़्लैग की जाँच करते समय मूल्यांकन करने के लिए ठोस सशर्तताएँ। प्रदर्शन सुधार का परीक्षण
<पी> इस परिदृश्य का आकलन करने के लिए, हमsleep 1 जोड़कर स्टोरफ्रंट में एक धीमे अनुरोध का अनुकरण करेंगे। अअनुकूलित मामले के लिए कॉल करें: <पी> अब, हम अनुरोधों के यादृच्छिक सेट में अनुकूलन को लागू करने के लिए "समय का प्रतिशत" रणनीति का उपयोग करेंगे। रेल्स कंसोल खोलें और निम्नलिखित कुंजी खोलें: <पी> ओहा लोड परीक्षण उपकरण का उपयोग करके, हम पुष्टि कर सकते हैं कि वास्तव में आधे अनुरोधों में अन्य की तुलना में एक सेकंड अधिक समय लगता है: रूपांतरण दर अनुकूलन का परीक्षण
<पी> उपयोगकर्ता-सामना वाली सुविधाओं से निपटते समय, उदाहरण के लिए, यूआई में परिवर्तन, झंडे को रोल आउट करने के लिए अक्सर "अभिनेताओं का प्रतिशत" रणनीति का उपयोग करने की सलाह दी जाती है। इस तरह, प्रत्येक उपयोगकर्ता को लगातार समान अनुभव प्रदान किया जाता है। <पी> तो शुरू करने के लिए, हम अपने ई-कॉमर्स एप्लिकेशन के लिए दो उपयोगकर्ता बनाएंगे। रेल्स कंसोल चालू करें और निम्नलिखित आदेश जारी करें: <पी> यह दो नमूना उपयोगकर्ता बनाता है और सुनिश्चित करता है कि फ़ीचर फ़्लैग लगातार है उनमें से एक के लिए सक्षम। <पी> रूपांतरण दरों को बढ़ाने का प्रयास करने वाली एक सुविधा का अनुकरण करने के लिए, हम चेकआउट बटन को स्पंदित करेंगे: <पी> यदि हम दोनों उपयोगकर्ताओं के साथ लॉग इन करते हैं और ब्राउज़र विंडो को एक साथ व्यवस्थित करते हैं, तो हम देख सकते हैं कि वास्तव में प्रभाव एक (बाएं) उपयोगकर्ता के लिए सक्रिय है:फ़ीचर फ़्लैग के प्रभाव को मापने के लिए AppSignal कस्टम मेट्रिक्स का उपयोग करें
<पी> यदि इसके प्रभाव का मूल्यांकन करने का कोई तरीका नहीं है तो सर्वोत्तम फ़ीचर फ़्लैग प्रणाली बेकार है। हमारे उदाहरण परिदृश्य में, हम बस यह जानना चाहते हैं:- क्या प्रदर्शन में सुधार से विलंबता में उल्लेखनीय कमी आई है?
- क्या हमारे स्पंदित चेकआउट बटन के कारण रूपांतरण दर में उल्लेखनीय वृद्धि हुई है?
मापन मीट्रिक के साथ विलंबता को मापना
<पी> हमने सत्यापित किया है किoha के साथ हमारा सुधार कितना प्रभावी है उपरोक्त सीएलआई, लेकिन वैध निर्णय लेने के लिए हम सर्वर-साइड टेलीमेट्री स्थापित करेंगे जो ऐपसिग्नल को विलंबता की रिपोर्ट करता है। एक माप मीट्रिक बिल्कुल इसकी अनुमति देता है:हम मिलीसेकेंड में प्रतिक्रिया समय भेजेंगे, और एक मीट्रिक टैग जोड़ेंगे जो यह दर्शाता है कि क्या हमारा प्रदर्शन अनुकूलन किसी विशिष्ट अनुरोध के लिए सक्रिय था। <पी> यहां एक छोटी सी उलझन है:क्योंकि हम "समय का प्रतिशत" मीट्रिक का उपयोग कर रहे हैं, हमें ध्वज की स्थिति को एक उदाहरण चर में कैप्चर करना होगा ताकि निष्पादन और रिपोर्टिंग के लिए समान मान का उपयोग किया जा सके: <पी> अब ऊपर से स्थानीय लोड परीक्षण दोहराते हैं: <पी> हम इस मीट्रिक को थोड़ा सा चार्ट बनाने और मूल्यांकन करने पर गौर करेंगे। इससे पहले, आइए हमारे दूसरे फ़ीचर फ़्लैग की ओर मुड़ें। गणना मीट्रिक के साथ रूपांतरणों का मिलान
<पी> हम रूपांतरणों की गणना के लिए एक काउंटर मीट्रिक का उपयोग करेंगे। यदि आप केवल किसी घटना का लेखा-जोखा रखना चाहते हैं तो यह एक बढ़िया विकल्प है। <पी> ऐसा करने के लिए, हमेंCartsController खोलना होगा , और, प्रदर्शन उद्देश्यों के लिए, एक increment_counter जोड़ें यदि चेकआउट बटन क्लिक किया गया है तो कॉल करें: <पी> आइए अब संबंधित ब्राउज़र विंडो को मैन्युअल रूप से खोलकर और "चेकआउट" बटन पर 3 बार क्लिक करके, और अन्य मामले में केवल एक बार इसका परीक्षण करें। इस तरह, हम देख सकते हैं कि अनुकूलन ध्वज सक्रिय है या नहीं। AppSignal में कस्टम डैशबोर्ड सेट करें
<पी> हमारा अंतिम चरण डेटा-सूचित व्यावसायिक निर्णय लेने के लिए सूचनात्मक ग्राफिक्स बनाना है। इसे प्राप्त करने के लिए हम AppSignal के डैशबोर्ड का उपयोग करेंगे। आइए इसे चरण दर चरण जानें:- बाएं साइडबार में, "डैशबोर्ड जोड़ें" पर क्लिक करें और इसे "फ़ीचर फ़्लैग मूल्यांकन" नाम दें।
- "ग्राफ़ जोड़ें" और
products_response_timeपर क्लिक करें मीट्रिक. केवल औसत प्रदर्शित करने के लिए "माध्य" चुनें औरperformance_improvement_enabledलागू करें टैग.
- चेकआउट गणनाओं के लिए एक चार्ट जोड़ने के लिए "नया ग्राफ़ जोड़ें" पर क्लिक करें। फिर से,
optimization_activeलागू करें टैग.
<पी> अब आपका कस्टम डैशबोर्ड तैयार है. बाईं ओर लाइन ग्राफ़ में, आप यह दावा कर सकते हैं कि आपका प्रदर्शन सुधार प्रभावी था। दाईं ओर, देखें कि अनुकूलित मामले में चेकआउट की उच्च संख्या कैसे दर्ज की गई। <पी>
<पी> और बस इतना ही! समापन
<पी> हमने देखा है कि कैसे फीचर फ़्लैग रूबी ऑन रेल्स एप्लिकेशन में नई सुविधाओं को प्रबंधित और तैनात करने का एक लचीला और कुशल तरीका प्रदान करते हैं। फ़्लिपर जेम और ऐपसिग्नल के कस्टम मेट्रिक्स जैसे टूल का उपयोग करके, डेवलपर्स न केवल फीचर रोलआउट को नियंत्रित कर सकते हैं, बल्कि प्रदर्शन और उपयोगकर्ता व्यवहार पर उनके प्रभाव को भी माप सकते हैं। <पी> यह दृष्टिकोण सुनिश्चित करता है कि नई सुविधाओं को पूरी तरह से तैनात करने से पहले पूरी तरह से परीक्षण और अनुकूलित किया जाता है, जिससे अंततः अधिक स्थिर और उपयोगकर्ता-अनुकूल अनुप्रयोग प्राप्त होता है। अंत में, वैकल्पिक तरीकों की प्रभावशीलता का आकलन करते समय यह अधिक सूचित व्यावसायिक निर्णय ले सकता है। <पी> हैप्पी कोडिंग! <पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! पी>