Lowe's वेबसाइट सबसे तेज़ प्रदर्शन करने वाली ई-कॉमर्स वेबसाइटों में से एक है

अपने-आप परफ़ॉर्मेंस की जांच और निगरानी करने वाला सिस्टम बनाकर, Lowe की साइट स्पीड टीम टेस्ट करती है कि परफ़ॉर्मेंस बजट के लिए अनुरोधों को हासिल किया जाए और परफ़ॉर्मेंस रिग्रेशन को प्रोडक्शन में जाने से रोका जा सके.

Abhimanyu Raibahadur
Abhimanyu Raibahadur
Ashish Choudhury
Ashish Choudhury
Dhilip venkatesh Uvarajan
Dhilip venkatesh Uvarajan
Dinakar Chandolu
Dinakar Chandolu
Safwan Samla
Safwan Samla

lowe's, घर को बेहतर बनाने का सामान बेचने वाला 90 अरब डॉलर का खुदरा दुकानदार है. यह करीब 2,200 स्टोर चलाती है और 3,00,000 से ज़्यादा कर्मचारी रखती है. परफ़ॉर्मेंस रिग्रेशन को प्रोडक्शन में डिप्लॉय होने से रोकने के लिए, ऑटोमेटेड टेस्टिंग और मॉनिटरिंग सिस्टम बनाकर, Loe की साइट स्पीड टीम ने अपनी वेबसाइट की परफ़ॉर्मेंस को बेहतर बनाया. साथ ही, टॉप रीटेल साइटों की रैंकिंग में भी सुधार किया.

समस्या

साइट स्पीड टीम का लक्ष्य पेज लोड परफ़ॉर्मेंस के मामले में लो की साइट को सबसे तेज़ ई-कॉमर्स साइटों में से एक बनाना है. लो की वेबसाइट के डेवलपर ऑटोमेटेड टेस्टिंग और मॉनिटरिंग सिस्टम बनाने से पहले, प्री-प्रोडक्शन एनवायरमेंट में परफ़ॉर्मेंस को अपने-आप मेज़र नहीं कर पाते थे. मौजूदा टूल सिर्फ़ प्रोडक्शन एनवायरमेंट में टेस्ट किए जाते हैं. इस वजह से, खराब बिल्ड प्रोडक्शन में चले जाते हैं और उपयोगकर्ताओं को खराब अनुभव मिलता है. ये खराब बिल्ड तब तक प्रोडक्शन में बने रहेंगे, जब तक कि साइट स्पीड टीम इनका पता नहीं लगा लेती और लेखक उन्हें वापस ले आती हैं.

समस्या का हल

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

असर

16 हफ़्तों में से एक टीम के सैंपल में से 102 बिल्ड को डिप्लॉय करते हुए, अपने-आप परफ़ॉर्मेंस की जांच और निगरानी करने वाले सिस्टम ने 32 बिल्ड को प्रोडक्शन में जाने से रोका.

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

कोड की क्वालिटी में समय के साथ सुधार हो रहा है. ऐसा इसलिए, क्योंकि परफ़ॉर्मेंस रिग्रेशन के लिए कम पुल अनुरोधों को फ़्लैग किया जा रहा है. साइट की क्वालिटी को लगातार बेहतर बनाने के लिए, साइट स्पीड टीम भी धीरे-धीरे कंट्रोल के लिए बजट कम कर रही है.

आम तौर पर, गड़बड़ी वाले कोड पर साफ़ तौर पर मालिकाना हक होने से, इंजीनियरिंग संस्कृति में बदलाव आया है. प्रतिक्रिया के तौर पर किए गए सुधारों के लिए शिकायत करने के बजाय, क्योंकि टीम को यह पता नहीं था कि समस्याएं किसने पैदा की हैं, इसलिए उनकी टीम समस्या पैदा करने वाले कोड के मालिकाना हक को निष्पक्ष तरीके से ऑप्टिमाइज़ करती है.

लागू करने का तरीका

साइट स्पीड गवर्नेंस (एसएसजी) ऐप्लिकेशन का मुख्य हिस्सा Lighthouse CI है. SSG ऐप्लिकेशन, हर पुल अनुरोध के पेज की परफ़ॉर्मेंस की पुष्टि करने और उसे ऑडिट करने के लिए Lighthouse का इस्तेमाल करता है.

SSG ऐप्लिकेशन का प्रोसेस डायग्राम, डायग्राम में दिखाए गए चरणों के बारे में लेख में बाद में बताया गया है.

अगर साइट स्पीड टीम का तय किया गया परफ़ॉर्मेंस बजट और मेट्रिक टारगेट पूरा नहीं होता है, तो SSG ऐप्लिकेशन उस बिल्ड को फ़ेल कर देता है. यह न सिर्फ़ लोड की परफ़ॉर्मेंस को लागू करता है, बल्कि एसईओ, PWA, और सुलभता को भी लागू करता है. यह लेखक, समीक्षकों, और एसआरई टीमों को तुरंत स्थिति की शिकायत कर सकता है. अपवादों की ज़रूरत होने पर, इसे जांच से बचने के लिए भी कॉन्फ़िगर किया जा सकता है.

ऑटोमेटेड स्पीड गवर्नेंस (एएसजी) प्रोसेस फ़्लो

Spinnaker

शुरुआत की जगह. डेवलपर अपने कोड को प्री-प्रोडक्शन एनवायरमेंट में मर्ज कर देता है.

  1. सीडीएन ऐसेट की मदद से, प्री-प्रोडक्शन एनवायरमेंट को डिप्लॉय करें.
  2. देखें कि डिप्लॉयमेंट सही तरीके से हुआ है या नहीं.
  3. ASG ऐप्लिकेशन बनाने के लिए, Docker कंटेनर चलाएं या डिप्लॉयमेंट में गड़बड़ी होने पर सूचना भेजें.

जेनकिन्स और लाइटहाउस

  1. Jenkin की मदद से एएसजी ऐप्लिकेशन बनाएं.
  2. ऐसा कस्टम Docker कंटेनर चलाएं जिसमें Chrome और Lighthouse इंस्टॉल हों. SSG ऐप्लिकेशन से lighthouserc.json को खींचें और lhci autorun --collect-url=https://example.com चलाएं.

Jenkin और SSG ऐप्लिकेशन

  1. एलएचसी से assertion-results.json निकालें और budgets.json में पहले से तय बजट से इसकी तुलना करें. आउटपुट को टेक्स्ट फ़ाइल के रूप में सेव करें और भविष्य की तुलनाओं के लिए उसे Nexus पर अपलोड करें.
  2. मौजूदा assertion-results.json की तुलना पिछले सफल बिल्ड (Nexus से डाउनलोड किए गए) से करें और इसे टेक्स्ट फ़ाइल के रूप में सेव करें.
  3. सफलता या विफलता की जानकारी वाला एक HTML ईमेल बनाएं.
  4. Jenkin का इस्तेमाल करके, काम की डिस्ट्रिब्यूशन सूचियों को ईमेल भेजें.