লোওয়ের ওয়েবসাইট সবচেয়ে দ্রুত কর্মক্ষমতা সম্পন্ন ই-কমার্স ওয়েবসাইটগুলির মধ্যে একটি

একটি স্বয়ংক্রিয় পারফরম্যান্স টেস্টিং এবং মনিটরিং সিস্টেম তৈরি করে, লোয়ের সাইট স্পিড টিম পরীক্ষা কর্মক্ষমতা বাজেটের বিরুদ্ধে অনুরোধগুলি পুল করে, এবং কর্মক্ষমতা রিগ্রেশনগুলিকে উৎপাদনে যেতে বাধা দেয়।

অভিমন্যু রায়বাহাদুর
Abhimanyu Raibahadur
আশীষ চৌধুরী
Ashish Choudhury
ধিলিপ ভেঙ্কটেশ উভারজন
Dhilip venkatesh Uvarajan
দিনাকর চন্দলু
Dinakar Chandolu
সাফওয়ান সামলা
Safwan Samla

Lowe's হল প্রায় $90B গৃহ উন্নয়নের খুচরা বিক্রেতা যেটি প্রায় 2,200টি স্টোর পরিচালনা করে এবং 300,000 এরও বেশি সহযোগী নিয়োগ করে৷ একটি স্বয়ংক্রিয় পরীক্ষা এবং পর্যবেক্ষণ সিস্টেম তৈরি করে যা কার্যক্ষমতার রিগ্রেশনগুলিকে উত্পাদনে স্থাপন করা থেকে বাধা দেয়, লোয়ের সাইট স্পিড টিম শীর্ষস্থানীয় খুচরা সাইটগুলির মধ্যে র‌্যাঙ্কিং করে তার ওয়েবসাইটের কর্মক্ষমতা উন্নত করতে সক্ষম হয়েছিল।

সমস্যা

সাইট স্পিড টিমের লক্ষ্য হল পেজ লোড পারফরম্যান্সের পরিপ্রেক্ষিতে লোয়ের সাইটটিকে দ্রুততম ই-কমার্স সাইটগুলির মধ্যে একটি করে তোলা৷ তারা তাদের স্বয়ংক্রিয় পরীক্ষা এবং পর্যবেক্ষণ সিস্টেম তৈরি করার আগে, লোয়ের ওয়েবসাইট বিকাশকারীরা প্রাক-প্রোডাকশন পরিবেশে স্বয়ংক্রিয়ভাবে কর্মক্ষমতা পরিমাপ করতে অক্ষম ছিল। বিদ্যমান সরঞ্জামগুলি শুধুমাত্র উত্পাদন পরিবেশে পরীক্ষা পরিচালনা করে। ফলস্বরূপ, নিম্নমানের বিল্ডগুলি উত্পাদনে স্খলিত হয়, একটি দুর্বল ব্যবহারকারীর অভিজ্ঞতা তৈরি করে। এই নিম্নমানের বিল্ডগুলি সাইট স্পিড টিম দ্বারা সনাক্ত না হওয়া পর্যন্ত এবং লেখক দ্বারা প্রত্যাবর্তন না করা পর্যন্ত উত্পাদনে থাকবে৷

সমাধান

সাইট স্পিড টিম প্রি-প্রোডাকশন পরিবেশের জন্য একটি স্বয়ংক্রিয় কর্মক্ষমতা পরীক্ষা এবং পর্যবেক্ষণ সিস্টেম তৈরি করতে ওপেন সোর্স টুল ব্যবহার করেছে। সিস্টেমটি প্রতিটি পুল রিকোয়েস্টের (PR) কার্যকারিতা পরিমাপ করে এবং যদি এটি সাইট স্পিড টিমের পারফরম্যান্স বাজেট এবং মেট্রিক মানদণ্ড পূরণ না করে তবে শিপিং থেকে উৎপাদন পর্যন্ত পিআরকে গেট দেয়৷ সিস্টেমটি SEO এবং ADA সম্মতিও পরিমাপ করে।

প্রভাব

16 সপ্তাহের মধ্যে 1 টিমের একটি নমুনা থেকে 102টি বিল্ড স্থাপন করা হয়েছে, স্বয়ংক্রিয় কর্মক্ষমতা পরীক্ষা এবং পর্যবেক্ষণ ব্যবস্থা সাবপার পারফরম্যান্স সহ 32টি বিল্ডকে উৎপাদনে যেতে বাধা দিয়েছে।

যেখানে সাইট স্পিড টিমকে তিন থেকে পাঁচ দিন সময় লাগতো ডেভেলপারদের জানাতে যে তারা উৎপাদনে পারফরম্যান্স রিগ্রেশন পাঠিয়েছে, সিস্টেমটি এখন প্রি-প্রোডাকশন পরিবেশে পুল রিকোয়েস্ট জমা দেওয়ার পাঁচ মিনিট পর ডেভেলপারদের পারফরম্যান্সের সমস্যা সম্পর্কে স্বয়ংক্রিয়ভাবে অবহিত করে।

কোডের গুণমান সময়ের সাথে উন্নত হচ্ছে, যেমনটি পরিমাপ করা হয়েছে যে কর্মক্ষমতা রিগ্রেশনের জন্য কম পুল অনুরোধ পতাকাঙ্কিত হচ্ছে। সাইট স্পিড টিম ক্রমাগত সাইটের গুণমান উন্নত করতে ক্রমশ গভর্ন্যান্স বাজেট কঠোর করছে।

সাধারণভাবে, সমস্যাযুক্ত কোডের স্পষ্ট মালিকানা ইঞ্জিনিয়ারিং সংস্কৃতিকে স্থানান্তরিত করেছে। প্রতিক্রিয়াশীল সংশোধনের জন্য ক্ষুব্ধ হওয়ার পরিবর্তে কারণ এটি কখনই স্পষ্ট ছিল না যে কে আসলে সমস্যাগুলি প্রবর্তন করেছে, দলটি সমস্যাযুক্ত কোডের মালিকানা উদ্দেশ্যমূলকভাবে দায়ী করার সাথে সক্রিয় অপ্টিমাইজেশন করতে পারে।

বাস্তবায়ন

সাইট স্পিড গভর্নেন্স (SSG) অ্যাপের কেন্দ্রস্থল হল Lighthouse CI । SSG অ্যাপটি প্রতিটি পুল অনুরোধের পৃষ্ঠা কার্যক্ষমতা যাচাই ও নিরীক্ষণ করতে Lighthouse ব্যবহার করে।

এসএসজি অ্যাপের একটি প্রসেস ডায়াগ্রাম, ডায়াগ্রামে দেখানো ধাপগুলি নিবন্ধে পরে বর্ণিত হয়েছে।

সাইট স্পিড টিমের নির্ধারিত পারফরম্যান্স বাজেট এবং মেট্রিক লক্ষ্য পূরণ না হলে SSG অ্যাপটি একটি বিল্ড ব্যর্থ করে দেয়। এটি শুধুমাত্র লোড কর্মক্ষমতাই নয়, এসইও, পিডব্লিউএ এবং অ্যাক্সেসযোগ্যতাও প্রয়োগ করে। এটি লেখক, পর্যালোচক এবং SRE টিমের কাছে অবিলম্বে স্ট্যাটাস রিপোর্ট করতে পারে। ব্যতিক্রমের প্রয়োজন হলে চেকগুলিকে বাইপাস করার জন্যও এটি কনফিগার করা যেতে পারে।

অটোমেটেড স্পিড গভর্নেন্স (ASG) প্রক্রিয়া প্রবাহ

স্পিনাকার

স্টার্ট পয়েন্ট। একজন বিকাশকারী তাদের কোডকে একটি প্রাক-প্রোডাকশন পরিবেশে মার্জ করে।

  1. CDN সম্পদের সাথে প্রাক-উৎপাদন পরিবেশ স্থাপন করুন।
  2. সফল স্থাপনার জন্য চেক করুন.
  3. ASG অ্যাপ্লিকেশন তৈরি করা শুরু করতে একটি ডকার কন্টেইনার চালান বা একটি বিজ্ঞপ্তি পাঠান (স্থাপন ব্যর্থতার ক্ষেত্রে)।

জেনকিন্স এবং বাতিঘর

  1. জেনকিন্সের সাথে ASG অ্যাপ্লিকেশন তৈরি করুন।
  2. একটি কাস্টম ডকার কন্টেইনার চালান যাতে Chrome এবং Lighthouse ইনস্টল আছে। SSG অ্যাপ থেকে lighthouserc.json টানুন এবং lhci autorun --collect-url=https://example.com চালান।

জেনকিন্স এবং এসএসজি অ্যাপ

  1. lhci থেকে assertion-results.json বের করুন এবং budgets.json এ পূর্বনির্ধারিত বাজেটের সাথে তুলনা করুন। আউটপুটটিকে একটি পাঠ্য ফাইল হিসাবে সংরক্ষণ করুন এবং ভবিষ্যতের তুলনার জন্য এটি Nexus- এ আপলোড করুন৷
  2. সর্বশেষ সফল বিল্ডের সাথে বর্তমান assertion-results.json তুলনা করুন (নেক্সাস থেকে ডাউনলোড করা) এবং এটিকে একটি টেক্সট ফাইল হিসাবে সংরক্ষণ করুন।
  3. সাফল্য বা ব্যর্থতার তথ্য দিয়ে একটি HTML ইমেল তৈরি করুন।
  4. জেনকিন্সের সাথে প্রাসঙ্গিক বিতরণ তালিকায় ইমেলটি পাঠান।