Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

<पी> सॉफ़्टवेयर विकास में फ़ीचर फ़्लैग एक शक्तिशाली उपकरण है, जो डेवलपर्स को नए कोड को तैनात किए बिना रनटाइम पर किसी एप्लिकेशन के व्यवहार को नियंत्रित करने की अनुमति देता है। वे टीमों को नई सुविधाओं का परीक्षण करने, ए/बी परीक्षण करने और धीरे-धीरे बदलाव लाने में सक्षम बनाते हैं।

<पी> रूबी ऑन रेल्स में, फ़ीचर फ़्लैग को विभिन्न उपकरणों का उपयोग करके प्रबंधित किया जा सकता है, जिनमें सबसे लोकप्रिय फ़्लिपर रत्न है। यह लेख फ़्लिपर और ऐपसिग्नल के कस्टम मेट्रिक्स का उपयोग करके सॉलिडस स्टोरफ्रंट में फ़ीचर फ़्लैग के प्रभाव को लागू करने और मापने का पता लगाएगा।

रेल में फ़ीचर फ़्लैग क्या हैं, फिर से?

<पी> यदि आप विषय के परिचय की तलाश में हैं, तो फ्लिपर के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग जोड़ें पोस्ट देखें।

<पी> संक्षेप में, हालाँकि, फ़ीचर फ़्लैग यह प्रभावित करने का एक तरीका है कि आपका एप्लिकेशन रनटाइम पर कैसे व्यवहार करता है , नया कोड तैनात किए बिना। सबसे सरल प्रकार के फ़ीचर फ़्लैग पर्यावरण चर हैं। प्रत्येक रूबी ऑन रेल्स एप्लिकेशन उन्हें बॉक्स से बाहर उपयोग करता है। एक उदाहरण ENV['WEB_CONCURRENCY'] का उपयोग करके एप्लिकेशन सर्वर समवर्ती का कॉन्फ़िगरेशन है .

<पी> हालाँकि, फ़ीचर फ़्लैग को प्रबंधित करने के अन्य तरीके भी हैं, जैसे ActiveRecord या Redis जैसी दृढ़ता परत का उपयोग करना। ऐसा करने का एक व्यापक तरीका फ़्लिपर जेम द्वारा प्रस्तुत किया गया है।

<पी> निम्नलिखित स्निपेट उदाहरण देता है कि कैसे performance_improvement फ़ीचर फ़्लैग का मूल्यांकन किसी दिए गए उपयोगकर्ता के लिए किया जाता है:

 <पी> इसके बाद, हम फीचर फ़्लैग के साथ प्रयोग शुरू करने के लिए एक सॉलिडस स्टोरफ्रंट स्थापित करेंगे।

हमारा उदाहरण ऐप:एक सॉलिडस स्टोरफ्रंट

<पी> कुछ हद तक यथार्थवादी परिदृश्य में फ़ीचर फ़्लैग के प्रभाव को मापने के लिए, आइए जल्दी से एक सॉलिडस स्टोर को बूटस्ट्रैप करें:

 <पी> यह जनरेटर प्रक्रिया में आपका मार्गदर्शन करेगा और आपसे कुछ सेटअप प्रश्न पूछेगा।

  1. स्टार्टर चुनें फ़्रंटएंड प्रकार के लिए पूछे जाने पर फ़्रंटएंड।
  2. भुगतान विधि सेट करना छोड़ें।
  3. अपने सॉलिडस एप्लिकेशन को / पर माउंट करना चुनें , चूंकि हम इसे एक स्टैंडअलोन ऐप के रूप में उपयोग कर रहे हैं।
<पी> बाद में, bin/dev चलाएँ अपने टर्मिनल से और आपको जाने के लिए तैयार होना चाहिए। जब आप http://localhost:3000 पर जाते हैं , आपको यह स्क्रीन दिखाई देगी:

<पी> ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

फ़्लिपर के साथ फ़ीचर फ़्लैग लागू करें

<पी> आइए अब फीचर फ़्लैग के लिए दो अनुकरणीय उपयोग के मामले लागू करें:

  • प्रदर्शन में सुधार।
  • रूपांतरण दर अनुकूलन का एक प्रयास।
<पी> हालाँकि, सबसे पहले, हमें flipper जोड़ना होगा रत्न अपने active_record के साथ भंडारण अनुकूलक:

 <पी> यह फ़्लिपर "गेट्स" को देखने के लिए आवश्यक डेटाबेस तालिकाएँ स्थापित करेगा, यानी, फीचर फ़्लैग की जाँच करते समय मूल्यांकन करने के लिए ठोस सशर्तताएँ।

प्रदर्शन सुधार का परीक्षण

<पी> इस परिदृश्य का आकलन करने के लिए, हम sleep 1 जोड़कर स्टोरफ्रंट में एक धीमे अनुरोध का अनुकरण करेंगे। अअनुकूलित मामले के लिए कॉल करें:

 <पी> अब, हम अनुरोधों के यादृच्छिक सेट में अनुकूलन को लागू करने के लिए "समय का प्रतिशत" रणनीति का उपयोग करेंगे। रेल्स कंसोल खोलें और निम्नलिखित कुंजी खोलें:

 <पी> ओहा लोड परीक्षण उपकरण का उपयोग करके, हम पुष्टि कर सकते हैं कि वास्तव में आधे अनुरोधों में अन्य की तुलना में एक सेकंड अधिक समय लगता है:

 

रूपांतरण दर अनुकूलन का परीक्षण

<पी> उपयोगकर्ता-सामना वाली सुविधाओं से निपटते समय, उदाहरण के लिए, यूआई में परिवर्तन, झंडे को रोल आउट करने के लिए अक्सर "अभिनेताओं का प्रतिशत" रणनीति का उपयोग करने की सलाह दी जाती है। इस तरह, प्रत्येक उपयोगकर्ता को लगातार समान अनुभव प्रदान किया जाता है।

<पी> तो शुरू करने के लिए, हम अपने ई-कॉमर्स एप्लिकेशन के लिए दो उपयोगकर्ता बनाएंगे। रेल्स कंसोल चालू करें और निम्नलिखित आदेश जारी करें:

 <पी> यह दो नमूना उपयोगकर्ता बनाता है और सुनिश्चित करता है कि फ़ीचर फ़्लैग लगातार है उनमें से एक के लिए सक्षम।

<पी> रूपांतरण दरों को बढ़ाने का प्रयास करने वाली एक सुविधा का अनुकरण करने के लिए, हम चेकआउट बटन को स्पंदित करेंगे:

 <पी> यदि हम दोनों उपयोगकर्ताओं के साथ लॉग इन करते हैं और ब्राउज़र विंडो को एक साथ व्यवस्थित करते हैं, तो हम देख सकते हैं कि वास्तव में प्रभाव एक (बाएं) उपयोगकर्ता के लिए सक्रिय है:

फ़ीचर फ़्लैग के प्रभाव को मापने के लिए AppSignal कस्टम मेट्रिक्स का उपयोग करें

<पी> यदि इसके प्रभाव का मूल्यांकन करने का कोई तरीका नहीं है तो सर्वोत्तम फ़ीचर फ़्लैग प्रणाली बेकार है। हमारे उदाहरण परिदृश्य में, हम बस यह जानना चाहते हैं:

  • क्या प्रदर्शन में सुधार से विलंबता में उल्लेखनीय कमी आई है?
  • क्या हमारे स्पंदित चेकआउट बटन के कारण रूपांतरण दर में उल्लेखनीय वृद्धि हुई है?
<पी> हम इन अनुकूलनों के लाभ को मापने के लिए ऐपसिग्नल के कस्टम मेट्रिक्स का उपयोग करेंगे।

<पी> सबसे पहले, अपने ऐपसिग्नल संगठन में एक नया एप्लिकेशन बनाएं और निर्देशों का पालन करके इसे अपने ऐप से कनेक्ट करें:

 

मापन मीट्रिक के साथ विलंबता को मापना

<पी> हमने सत्यापित किया है कि oha के साथ हमारा सुधार कितना प्रभावी है उपरोक्त सीएलआई, लेकिन वैध निर्णय लेने के लिए हम सर्वर-साइड टेलीमेट्री स्थापित करेंगे जो ऐपसिग्नल को विलंबता की रिपोर्ट करता है। एक माप मीट्रिक बिल्कुल इसकी अनुमति देता है:हम मिलीसेकेंड में प्रतिक्रिया समय भेजेंगे, और एक मीट्रिक टैग जोड़ेंगे जो यह दर्शाता है कि क्या हमारा प्रदर्शन अनुकूलन किसी विशिष्ट अनुरोध के लिए सक्रिय था।

<पी> यहां एक छोटी सी उलझन है:क्योंकि हम "समय का प्रतिशत" मीट्रिक का उपयोग कर रहे हैं, हमें ध्वज की स्थिति को एक उदाहरण चर में कैप्चर करना होगा ताकि निष्पादन और रिपोर्टिंग के लिए समान मान का उपयोग किया जा सके:

 <पी> अब ऊपर से स्थानीय लोड परीक्षण दोहराते हैं:

 <पी> हम इस मीट्रिक को थोड़ा सा चार्ट बनाने और मूल्यांकन करने पर गौर करेंगे। इससे पहले, आइए हमारे दूसरे फ़ीचर फ़्लैग की ओर मुड़ें।

गणना मीट्रिक के साथ रूपांतरणों का मिलान

<पी> हम रूपांतरणों की गणना के लिए एक काउंटर मीट्रिक का उपयोग करेंगे। यदि आप केवल किसी घटना का लेखा-जोखा रखना चाहते हैं तो यह एक बढ़िया विकल्प है।

<पी> ऐसा करने के लिए, हमें CartsController खोलना होगा , और, प्रदर्शन उद्देश्यों के लिए, एक increment_counter जोड़ें यदि चेकआउट बटन क्लिक किया गया है तो कॉल करें:

 <पी> आइए अब संबंधित ब्राउज़र विंडो को मैन्युअल रूप से खोलकर और "चेकआउट" बटन पर 3 बार क्लिक करके, और अन्य मामले में केवल एक बार इसका परीक्षण करें। इस तरह, हम देख सकते हैं कि अनुकूलन ध्वज सक्रिय है या नहीं।

AppSignal में कस्टम डैशबोर्ड सेट करें

<पी> हमारा अंतिम चरण डेटा-सूचित व्यावसायिक निर्णय लेने के लिए सूचनात्मक ग्राफिक्स बनाना है। इसे प्राप्त करने के लिए हम AppSignal के डैशबोर्ड का उपयोग करेंगे। आइए इसे चरण दर चरण जानें:

  1. बाएं साइडबार में, "डैशबोर्ड जोड़ें" पर क्लिक करें और इसे "फ़ीचर फ़्लैग मूल्यांकन" नाम दें।
<पी> ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

  1. "ग्राफ़ जोड़ें" और products_response_time पर क्लिक करें मीट्रिक. केवल औसत प्रदर्शित करने के लिए "माध्य" चुनें और performance_improvement_enabled लागू करें टैग.
<पी> ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

  1. चेकआउट गणनाओं के लिए एक चार्ट जोड़ने के लिए "नया ग्राफ़ जोड़ें" पर क्लिक करें। फिर से, optimization_active लागू करें टैग.
<पी> ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

<पी> अब आपका कस्टम डैशबोर्ड तैयार है. बाईं ओर लाइन ग्राफ़ में, आप यह दावा कर सकते हैं कि आपका प्रदर्शन सुधार प्रभावी था। दाईं ओर, देखें कि अनुकूलित मामले में चेकआउट की उच्च संख्या कैसे दर्ज की गई।

<पी> ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

<पी> और बस इतना ही!

समापन

<पी> हमने देखा है कि कैसे फीचर फ़्लैग रूबी ऑन रेल्स एप्लिकेशन में नई सुविधाओं को प्रबंधित और तैनात करने का एक लचीला और कुशल तरीका प्रदान करते हैं। फ़्लिपर जेम और ऐपसिग्नल के कस्टम मेट्रिक्स जैसे टूल का उपयोग करके, डेवलपर्स न केवल फीचर रोलआउट को नियंत्रित कर सकते हैं, बल्कि प्रदर्शन और उपयोगकर्ता व्यवहार पर उनके प्रभाव को भी माप सकते हैं।

<पी> यह दृष्टिकोण सुनिश्चित करता है कि नई सुविधाओं को पूरी तरह से तैनात करने से पहले पूरी तरह से परीक्षण और अनुकूलित किया जाता है, जिससे अंततः अधिक स्थिर और उपयोगकर्ता-अनुकूल अनुप्रयोग प्राप्त होता है। अंत में, वैकल्पिक तरीकों की प्रभावशीलता का आकलन करते समय यह अधिक सूचित व्यावसायिक निर्णय ले सकता है।

<पी> हैप्पी कोडिंग!

<पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! ऐपसिग्नल के साथ रूबी ऑन रेल्स में फ़ीचर फ़्लैग प्रभाव को मापना - एक व्यावहारिक मार्गदर्शिका

जूलियन रूबिस्क

<पी> हमारे अतिथि लेखक जूलियन वियना में स्थित एक फ्रीलांस रूबी ऑन रेल्स सलाहकार हैं, जो रिएक्टिव रेल्स में विशेषज्ञता रखते हैं। स्टिमुलसरिफ्लेक्स कोर टीम का हिस्सा, वह 2020 से अत्याधुनिक HTML-ओवर-द-वायर तकनीक विकसित करने में सबसे आगे रहे हैं।

<पी> जूलियन रुबिश

द्वारा सभी लेख
  1. टिंकर में बटन विजेट कैसे अपडेट करें? टिंकर में बटन विजेट कैसे अपडेट करें?

    हम टिंकर में एक बटन विजेट को विभिन्न तरीकों से अपडेट कर सकते हैं, उदाहरण के लिए, हम इसका आकार बदल सकते हैं, इसकी पृष्ठभूमि का रंग बदल सकते हैं, या इसकी सीमा हटा सकते हैं, आदि। निम्नलिखित उदाहरण में, हम तीन बटन विजेट और प्रत्येक बटन बनाएंगे, क्लिक करने पर, उनकी सुविधाओं को अपडेट करने के लिए एक अलग फ़

  1. OpenCV का उपयोग करके किसी छवि पर समापन ऑपरेशन करना OpenCV का उपयोग करके किसी छवि पर समापन ऑपरेशन करना

    इस कार्यक्रम में, हम cv2.morphologyEx () फ़ंक्शन का उपयोग करके समापन ऑपरेशन करेंगे। क्लोजिंग अग्रभूमि में छोटे छिद्रों को हटाता है, पृष्ठभूमि के छोटे छिद्रों को अग्रभूमि में बदल देता है। इस तकनीक का उपयोग किसी छवि में विशिष्ट आकृतियों को खोजने के लिए भी किया जा सकता है। इस कार्य के लिए हम जिस फ़ंक्श

  1. एक श्रृंखला 1/1 का योग खोजने के लिए पायथन प्रोग्राम! + 2/2! + 3/3! + 4/4! +…….+ एन/एन! एक श्रृंखला 1/1 का योग खोजने के लिए पायथन प्रोग्राम! + 2/2! + 3/3! + 4/4! +…….+ एन/एन!

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन −एक पूर्णांक इनपुट n को देखते हुए, हमें एक श्रृंखला 1/1 का योग ज्ञात करना होगा! + 2/2! + 3/3! + 4/4! +…….+ एन/एन! यहां हम लूप के लिए लागू कर रहे हैं, इसलिए, हमें समय जटिलता के रूप में O(n) मिलता