কম্পিউটার টিউটোরিয়াল

Redis দিয়ে একটি রিয়েল-টাইম A/B টেস্টিং টুল বানান: ধাপে ধাপে গাইড

A/B টেস্টিং আজকের ডিজিটাল ইকোনমিতে প্রতিযোগিতা করা মার্কেটার এবং ওয়েবসাইট মালিকদের জন্য একটি অপরিহার্য সম্পদ হয়ে উঠেছে। এটি ব্যবহারকারীদের বিদ্যমান আইডিয়া টেস্ট করতে, নতুন_resource এক্সপেরিমেন্ট করতে, এবং কী কাজ করে এবং কী কাজ করে না সেটি হাইলাইট করতে দেয়।

এই ইনফরমেশন ছাড়া, ওয়েব পেজ অপ্টিমাইজ করার চেষ্টা করা একটি ফ্রাস্ট্রেটিং এবং টাইম-কনসামিং প্রসেস হতে পারে। কিন্তু দুর্ভাগ্যক্রমে, A/B টেস্টিং সফটওয়্যার এক্সপেনসিভ হতে পারে, অনেকেরকে এর সুবিধা থেকে বঞ্চিত করে।

কিন্তু Redis-এ, প্রোগ্রামার Thiago Camargo এই ব্যারিয়ারগুলো দূর করতে পারলেন একটি ওপেন A/B টেস্টিং টুল তৈরি করে যা রিয়েল-টাইমে অপারেট করতে পারে। Redis-এর পাওয়ারফুল ডেটা প্রসেসিং ফিচারগুলো ব্যবহারকারীদের তাদের পছন্দের ভেরিয়েবলসের সাথে এক্সপেরিমেন্ট করতে এবং তাদের ওয়েব পেজ অপ্টিমাইজ করার সবচেয়ে ইফেক্টিভ উপায় ডিসকভার করতে দেয়।

আসুন দেখি Thiago কীভাবে এই অ্যাপ্লিকেশনটি একসাথে বানালেন। কিন্তু আরও এগিয়ে যাওয়ার আগে, আমরা জানাতে চাই যে Redis Launchpad-এ আপনার জন্য খুঁজে বের করার জন্য ইনোভেটিভ অ্যাপ্লিকেশনগুলোর একটি وسیع রেঞ্জ রয়েছে।

তাই এই পোস্টের পর সেখানে ব্রাউজ করতে ভুলবেন না!

  1. আপনি কী বানাবেন?
  2. আপনার কী কী লাগবে?
  3. আর্কিটেকচার
  4. শুরু করা
  5. এটি কীভাবে কাজ করে

1. আপনি কী বানাবেন?

আপনি একটি পাওয়ারফুল কিন্তু সিম্পল A/B টেস্টিং টুল বানাবেন যা স্কেলেবল এবং রিয়েল-টাইমে অপারেট করে। নিচে আমরা দেখাব কীভাবে এই অ্যাপ্লিকেশনটি বটম-আপ থেকে বানাতে হয়, হাইলাইট করব যেসব কম্পোনেন্ট প্রয়োজন এবং তাদের ফাংশনালিটি।

2. আপনার কী কী লাগবে?

  • Kotlin: একটি ওপেন-सোর্স প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে ব্যবহৃত হয় যা Googleও Android অ্যাপ ডেভেলপ করতে ব্যবহার করে।
  • Gradle: মাল্টি-ল্যাঙ্গুয়েজ সফটওয়্যার ডেভেলপমেন্টের জন্য একটি বিল্ড-অটোমেশন টুল হিসেবে ব্যবহৃত হয়।
  • Lettuce: নন-ব্লকিং রিয়েক্টিভ অ্যাপ্লিকেশন বানায়
  • RedisGraph: গ্রাফে অ্যাডজেসেন্সি ম্যাট্রিক্স রিপ্রেজেন্ট করতে স্পার্স ম্যাট্রিক্স এবং লিনিয়ার অ্যালজেব্রা ব্যবহার করে গ্রাফ কুয়েরি করতে
  • RedisTimeSeries: মিলিয়ন サンপল এবং ইভেন্ট হাইপার-ইফিশিয়েন্সি দিয়ে ইনজেস্ট এবং কুয়েরি করতে দেয়
  • RedisJSON: Redis কি থেকে JSON ভ্যালু স্টোর, আপডেট, এবং ফেচ করতে দেয়

3. আর্কিটেকচার

Redis দিয়ে একটি রিয়েল-টাইম A/B টেস্টিং টুল বানান: ধাপে ধাপে গাইড
  • Swagger-এ একটি এক্সপেরিমেন্ট তৈরি করা হয় আপনার ওয়েবসাইটে টেস্ট করতে চান এমন ভেরিয়েবলসের ভিত্তিতে। এই ইউজার সেলসের ওপর বিভিন্ন কালারের ইমপ্যাক্ট টেস্ট করতে চেয়েছেন।
  • ট্রিগার ইভেন্ট নির্ধারণ করে যেসব ইউজার অটোমেটিক্যালি এক্সপেরিমেন্টে এনরোল হবে।
  • সাবস্ক্রিপশনের জন্য সাইন আপ করা ইউজাররা একটি ট্রিগার ইভেন্ট (একটি কনভার্সন) হিসেবে রেকর্ড হবে। প্রতিটি ট্রিগার ইভেন্টের কালারও রেকর্ড হবে রেজাল্ট মেজার করার জন্য।

A/B টেস্টিং কী?

স্প্লিট টেস্টিং নামে ও পরিচিত, A/B টেস্টিং একটি মেথডিক্যাল এক্সপেরিমেন্টেশন প্রসেস যেখানে একটি ভেরিয়েবলের দুই বা অধিক ভার্সন ওয়েবসাইট ভিজিটরদের দেখানো হয় যাতে কোনটি কনভার্সনে অধিক ইমপ্যাক্ট ডালে সেটি নির্ধারণ করা যায়।

এটি আপনার ব্র্যান্ড, প্রোডাক্ট, এবং সার্ভিসগুলোকে মার্কেটপ্লেসে আরও ইফেক্টিভলি পজিশন করতে কিভাবে পারেন সেটি लेकर ক্ল্যারিটি যোগ করার জন্য ডিজাইন করা।

মান লিন আপনার ওয়েবসাইটে একটি প্রোডাক্ট রয়েছে যা আপনি বেকার করতে চাচ্ছেন। একটি ভেরিয়েবল যা আপনি এক্সপেরিমেন্ট করতে পারেন সেটি হলো প্রোডাক্টের পাশের কল টু অ্যাকশন (CTA) বাটন। CTA-র A/B টেস্ট করার অনেক উপায় রয়েছে, যার মধ্যে:

  1. প্লেসমেন্ট
  2. ডিজাইন
  3. কালার
  4. সাইজ
  5. কপিরাইটিং

এই ভেরিয়েবলগুলো স্প্লিট টেস্ট করলে, আপনি ডিসকভার করবেন আপনার CTA-এর কোন ভার্সন কনভার্সন ড্রাইভ করার জন্য সবচেয়ে অপ্টিমাল হবে।

4. শুরু করা

প্রে-রেকুইজিটস

  • Docker
  • Gradle 7.2 ইনস্টল করুন
  • Maven 3.8.1
  • OpenJDK ইনস্টল করুন
  • Swagger API ডকুমেন্টেশন

স্টেপ ১: রিপোজিটরি ক্লোন করুন

স্টেপ ২. বিল্ড টাস্ক পারফর্ম করুন

স্টেপ ৩: Redis মডিউলস সেটআপ করুন

আপনি যদি Docker Desktop ব্যবহার করেন, নিশ্চিত করুন ফাইল শেয়ারিং অপশন ভলিউম মাউন্টের জন্য ইনেবলড আছে। Redis সেটআপ করার জন্য নিচের কোড ব্যবহার করুন:

স্টেপ ৪. অ্যাপ্লিকেশন চালান

Docker স্টার্ট আপ করার জন্য নিচের কোড ব্যবহার করুন:

এটি কীভাবে কাজ করে

Experiments API

এখানে আমরা দেখাব কীভাবে ট্রিগার-বেসড ওয়েইটেড এনরোলমেন্ট দিয়ে স্কেলেবল A/B টেস্টিং এক্সপেরিমেন্ট তৈরি করতে হয়।

এক্সপেরিমেন্ট কীভাবে তৈরি করবেন

এই স্টেপে, আমরা দেখাব কীভাবে একটি এক্সপেরিমেন্ট তৈরি করতে হয় যা আপনাকে বিভিন্ন ভেরিয়েবল A/B টেস্ট করতে দেয়। আমরা একজন মার্কেটারের জুতো পরে যাব যিনি বিভিন্ন স্ক্রিন কালার স্প্লিট টেস্ট করতে চান দেখতে সেগুলোর সেলসের ওপর কী ইমপ্যাক্ট।

শুরু করতে, নিচের কোডটি ব্যবহার করুন।

যে কথা নোট করার যোগ্য, আমরা টপের 'goalIds'-কে 'purchase'-এ চেঞ্জ করেছি প্রতিটি স্ক্রিন কালার থেকে কতটুকু সেলস হয়েছে সেটি মেজার করার জন্য। তার নিচে, আমরা এক্সপেরিমেন্টের 'id'-কে 'subscription1' বানিয়েছি।

ট্রিগার ইভেন্ট নির্ধারণ করতে, আমরা 'user-plan-screen-view' ইনসার্ট করেছি। এর মানে যখন একটি ইভেন্ট ট্রিগার হবে, ইউজার অটোমেটিক্যালি এক্সপেরিমেন্টে এনরোল হবে।

এরপর, আমরা ভেরিয়েন্টগুলোকে 'red' এবং 'blue' হিসেবে আইডেন্টিফাই করেছি যেহেতু এগুলোই দুটি ভেরিয়েবল যা আমরা A/B টেস্ট করব।

এক্সপেরিমেন্ট কীভাবে রিট্রিভ করবেন

Response.

Remote Config API

এখানে আমরা দেখাব কীভাবে একটি ডাইনামিক এবং স্কেলেবল রিমোট ক্লায়েন্ট কনফিগারেশন সার্ভিস তৈরি করতে হয় (Firebase Replacement)।

রিমোট কনফিগ কীভাবে আপডেট করবেন

রিমোট কনফিগ কীভাবে রিট্রিভ করবেন

Response

Event API

এই স্টেপটি ইনভলভ করে Timeseries Event Indexing।

ইভেন্ট কীভাবে পুশ করবেন

Summary API – Generic Summary Service

এখানে একটি সিম্পল এবং ফ্লেক্সিবল সারমারি সার্ভিস রয়েছে যা একাধিক টাইপের অ্যাপ্লিকেশনের সারমারি রেখে এবং মেইনটেইন করতে সক্ষম। এগুলো অন্তর্ভুক্ত: গেম স্কোরবোর্ড, প্রোডাক্ট রেটিং, ইউজার রেটিং, ইনক্রিমেন্টাল মেট্রিকস এবং আরও অনেক কিছু।

একটি সারমারি আপডেট করা

একটি সারমারি পাওয়া

Response:

Drawer API – Generic Key/Value Service

ফ্লেক্সিবল প্রপার্টি স্টোরেজ

একটি Drawer আপডেট করা

একটি Drawer পাওয়া

Response:

কিছু ব্যবহৃত Redis কুয়েরি

নিচে ব্যবহৃত অধিকাংশ কমান্ড Lettuce Redis Command Annotation ব্যবহার করে ইমপ্লিমেন্ট করা।

Graph

  • enrollEmitterOnExperiment
  • fetchParticipantsOnExperiment
  • graphQuery

TimeSeries

  • pushEvent

JSON

  • setObject
  • getObject
  • setPathValue
  • getPathValue

Core

  • HSET
  • HGET / HGETALL
  • HEXISTS
  • …

উপসংহার: সবার জন্য A/B টেস্টিং অ্যাক্সেসযোগ্য করা

A/B টেস্টিং আজকের ডিজিটাল প্লে-গ্রাউন্ডে প্রতিযোগিতা করা যেকোনো মার্কেটারের জন্য ইন্টিগ্রাল হয়ে উঠেছে। কিন্তু এই সফটওয়্যার পাওয়া এক্সপেনসিভ, অনেককে সাব-অপ্টিমাল ওয়েবসাইট দিয়ে অপারেট করতে ফোর্স করে। এবং এই সমস্যাকে আরও কমপ্লেক্স করে, আপনার নিজের স্প্লিট-টেস্টিং সফটওয়্যার বানানোর নিজস্ব প্রোগ্রামিং ডিফিকাল্টি রয়েছে।

একটি ilyen অ্যাপ্লিকেশন তৈরি করার জন্য একটি ভারসেটাইল এবং পাওয়ারফুল ডেটাবেস দরকার যা কম্পোনেন্টস এর মাঝপথে ডেটা ইফিশিয়েন্টলি ট্রান্সমিট করতে পারে। फिर भी এই অবস্থাবোধকগুলো থাকা সত্ত্বেও, Redis সব অবস্থাবোধক দূর করল।

শুধু আপনার ল্যাপটপে Redis ব্যবহার করলে, আপনি আপনার ওয়েবসাইটের যেকোনো ভেরিয়েবল A/B টেস্ট করতে পারেন এবং আপনার টার্গেট মার্কেটের কাছে নিজেকে কাছাকাছি लান। আপনি যদি এই অ্যাপ্লিকেশন কীভাবে বানানো হয়েছে সেটি সম্পর্কে আরও জানতে চান, তবে এই YouTube Video দেখতে ভুলবেন না।

এই ডিমান্ডগুলো থাকা সত্ত্বেও, Redis-এর এডভান্সড ডেটা প্রসেসিং ক্যাপাবিলিটি ডেটা ট্রান্সমিশন কম্পোনেন্টস এর মাঝপথে হাইপার-ইফিশিয়েন্ট এবং রিলায়েবল করে, একটি হাইলি রেসপন্সিভ অ্যাপ্লিকেশন তৈরি করে।

এর মানে কোনো ল্যাগ নেই, কোনো 딜ে নেই, এবং ইউজার এবং অ্যাপ্লিকেশনের মাঝপথে কোনো ফ্রিকশনের কারণ নেই। শুধু আপনার ল্যাপটপে Redis ব্যবহার করলে, আপনি আপনার ওয়েবসাইটের যেকোনো ভেরিয়েবল A/B টেস্ট করতে পারেন এবং আপনার টার্গেট মার্কেটের কাছে নিজেকে কাছাকাছি লান।

আপনি যদি এই অ্যাপ্লিকেশন কীভাবে বানানো হয়েছে সেটি সম্পর্কে আরও জানতে চান, তবে এই YouTube Video দেখতে ভুলবেন না।

আপনি যদি এই পোস্টটি إنজয় করেন, তবে Redis Launchpad-এ আপনার জন্য আরও অনেক পোস্ট রয়েছে ডিসকভার করতে। রিয়েল-টাইম ভেহিকেল ট্র্যাকিং সিস্টেম বানানোর থেকে শুরু করে পাওয়ারফুল ড্রোন সিস্টেম বানাতে ডেভেলপিং কান্ট্রিজে ক্রপ ইন্সুরারকে প্রোটেক্ট করার জন্য,Redis সারা বিশ্বের প্রোগ্রামাররা দিয়ে প্রতিদিনের জীবন উন্নত করতে লিভারেজ করা হয়েছে।

আপনি Redis দিয়ে কী করতে পারেন?

Redis দিয়ে একটি রিয়েল-টাইম A/B টেস্টিং টুল বানান: ধাপে ধাপে গাইড

অ্যাপটি কে তৈরি করলেন?

Redis দিয়ে একটি রিয়েল-টাইম A/B টেস্টিং টুল বানান: ধাপে ধাপে গাইড

Thiago Camargo

আপনি যদি এই অ্যাপ্লিকেশনটি এনজয় করেন, তবে Thiago-এর GitHub পেজ ভিজিট করুন তার সব প্রজেক্টের সাথে আপ টু ডেট থাকতে।

  1. Redis TTL ও PTTL কমান্ড দিয়ে কীর এক্সপিরেশন টাইম রিট্রিভ করুন

  2. Redis-এ EXPIRE, EXPIREAT, PEXPIRE ও PEXPIREAT দিয়ে কীতে এক্সপিরেশন সেট করুন

  3. Redis PERSIST কমান্ড দিয়ে কীর এক্সপিরেশন সরিয়ে দিন

  4. জেডিস দিয়ে রেডিস পাব/সাব ইমপ্লিমেন্টেশন: ধাপে ধাপে গাইড