পরিচয়
লারাভেল হল মাপযোগ্য, উচ্চ-পারফরম্যান্স ওয়েব অ্যাপ্লিকেশন তৈরির জন্য একটি জনপ্রিয় PHP ফ্রেমওয়ার্ক৷
এই নিবন্ধে, আমরা শিখব কিভাবে সার্ভারহীন রেডিস ইনস্ট্যান্সে লারাভেল সেশন এবং ক্যাশে ডেটা সংরক্ষণ করে লারাভেল অ্যাপ্লিকেশন স্কেল করতে সার্ভারহীন রেডিস ব্যবহার করতে হয়।
পূর্বশর্ত
আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি থাকতে হবে:
- Upstash অ্যাকাউন্ট:আপনার একটি না থাকলে, আপনি বিনামূল্যে সাইন আপ করতে পারেন, কোনো ক্রেডিট কার্ডের প্রয়োজন নেই।
- আপনি যদি লারাভেল ইনস্টল না করে থাকেন, তাহলে আপনি এখানে এটি কীভাবে করবেন তার ধাপগুলি অনুসরণ করতে পারেন:1-ক্লিকে লারাভেল ইনস্টল করুন
আর্কিটেকচার ওভারভিউ
একটি একক সার্ভারে লারাভেল চালানোর পরিবর্তে, আসুন নিম্নলিখিত পরিস্থিতি বিবেচনা করি:
- দুটি ওয়েব সার্ভারে চলমান একটি লারাভেল অ্যাপ্লিকেশন৷ ৷
- একটি একক লোড ব্যালেন্সার দুটি ওয়েব সার্ভারে অনুরোধ রাউটিং করার জন্য দায়ী৷
- একটি MySQL ডাটাবেস সার্ভার, যা অ্যাপ্লিকেশনের ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
- Upstash সার্ভারলেস রেডিস ক্লাস্টার ডেটা ক্যাশিং এবং ব্যবহারকারীর সেশন সংরক্ষণের জন্য দায়ী৷
চিত্র:
সার্ভারলেস রেডিস কি?
সার্ভারলেস রেডিস একটি পরিষেবা পণ্য হিসাবে একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস যেখানে প্রতি কমান্ডের উপর ভিত্তি করে মূল্য নির্ধারণ করা হয়, তাই আপনি আসলে যা ব্যবহার করেন তা কেবলমাত্র চার্জ করা হয়৷
এইভাবে আপনাকে আপনার সার্ভারগুলিকে অতিরিক্ত প্রভিশন করতে হবে না, এবং আপনি প্রয়োজন অনুসারে আপনার অ্যাপ্লিকেশন স্কেল করতে পারেন৷
কেন সার্ভারহীন রেডিস?
ডিফল্টরূপে, লারাভেল ব্যবহারকারীর সেশনগুলি ওয়েব সার্ভারের ডিস্কে ফাইলগুলিতে সংরক্ষণ করবে। এইভাবে যদি লোড ব্যালেন্সার ব্যবহারকারীর অনুরোধ অন্য সার্ভারে ফরোয়ার্ড করে, তাহলে ব্যবহারকারীর সেশনটি হারিয়ে যাবে।
এই কারণেই ব্যবহারকারীর সেশন এবং অ্যাপ্লিকেশন ক্যাশে সংরক্ষণ করার জন্য একটি কেন্দ্রীভূত স্থান থাকা গুরুত্বপূর্ণ, যাতে সেগুলি অনুরোধের মধ্যে এবং একাধিক সার্ভার জুড়ে ভাগ করা যায় এবং প্রতিবার লোড ব্যালেন্সার অনুরোধটি অন্য সার্ভারে ফরোয়ার্ড করার সময় হারিয়ে না যায়।
অবশ্যই, আপনি ব্যবহারকারীর সেশন এবং ক্যাশে ডেটা সঞ্চয় করতে আপনার ডাটাবেসও ব্যবহার করতে পারেন, তবে আরও ভাল কর্মক্ষমতার জন্য, আরও ভাল পারফরম্যান্সের জন্য রেডিস ব্যবহার করার পরামর্শ দেওয়া হয়। আপনি যদি বিভিন্ন বিকল্পের পারফরম্যান্স সুবিধা সম্পর্কে আরও জানতে চান, এখানে এই দুর্দান্ত নিবন্ধটি দেখুন:পারফরম্যান্সের জন্য সেরা লারাভেল ক্যাশে ড্রাইভার কোনটি?.
অনুভূমিক স্কেলিং বনাম উল্লম্ব স্কেলিং
অনুভূমিক এবং উল্লম্ব স্কেলিং এর মধ্যে পার্থক্য সম্পর্কে মাত্র কয়েকটি শব্দ:
- যখন আপনার একটি একক সার্ভার থাকে, আপনি এটিতে আরও সংস্থান যোগ করে উল্লম্বভাবে স্কেল করতে পারেন। উদাহরণস্বরূপ, আপনি স্কেল-আপে আরও CPU কোর, RAM, বা ডিস্ক স্পেস যোগ করতে পারেন .
- অন্য দিকে অনুভূমিক স্কেলিং, যখন আপনি আরও সার্ভার যোগ করেন যেগুলি স্কেল-আউট-এ অনুরোধ পরিবেশনের জন্য দায়ী। .
এখানে অনুভূমিক স্কেলিং বনাম উল্লম্ব স্কেলিং এর একটি সহজ উদাহরণ:
একটি অ্যাপ্লিকেশনকে অনুভূমিকভাবে স্কেল করার সময়, আপনার ব্যবহারকারীর সেশন এবং ক্যাশে ডেটা একটি মাপযোগ্য উপায়ে পরিচালনা করা গুরুত্বপূর্ণ৷
একটি সার্ভারহীন রেডিস ক্লাস্টার তৈরি করা হচ্ছে
Upstash-এর সাহায্যে, আপনি এই পদক্ষেপগুলি অনুসরণ করে 30 সেকেন্ডের মধ্যে একটি সার্ভারহীন রেডিস ক্লাস্টার তৈরি করতে পারেন:
- আপনার Upstash অ্যাকাউন্টে লগ ইন করুন।
- ডেটাবেস তৈরি করুন-এ ক্লিক করুন বোতাম।
- আপনার রেডিস ক্লাস্টারের নাম লিখুন এবং একটি অঞ্চল বেছে নিন।
- তৈরি করুন-এ ক্লিক করুন বোতাম।
এটাই! আপনার কাছে এখন একটি সার্ভারহীন রেডিস ক্লাস্টার ব্যবহারের জন্য প্রস্তুত রয়েছে৷
পাসওয়ার্ড এবং পোর্ট সহ আপনার রেডিস ক্লাস্টারের শেষ পয়েন্টটি নোট করা নিশ্চিত করুন৷
Serverless Redis দিয়ে Laravel কনফিগার করা হচ্ছে
এখন যেহেতু আপনার কাছে একটি সার্ভারহীন রেডিস ক্লাস্টার রয়েছে, আপনি লারাভেলকে কনফিগার করতে পারেন যাতে আপনি এটিকে অন্য যেকোন রেডিস উদাহরণের মতো ব্যবহার করতে পারেন।
Predis প্যাকেজ ইনস্টল করুন
অতীতে, আপনি আপনার রেডিস ক্লাস্টারে সংযোগ করতে পিএইচপি রেডিস এক্সটেনশন ব্যবহার করবেন। যাইহোক, এখন আপনি এর পরিবর্তে Predis প্যাকেজ ব্যবহার করতে পারেন।
Predis প্যাকেজ ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:
composer require predis/predis
এরপর, আপনার লারাভেল প্রকল্পের .env
-এ যান ফাইল করুন এবং নিম্নলিখিত লাইনগুলি আপডেট করুন:
REDIS_HOST=your_upstash_redis_endpoint
REDIS_PASSWORD=your_upstash_redis_password
REDIS_PORT=your_upstash_redis_port
Redis বিবরণ পরিবর্তন করার সময়, নিশ্চিত করুন যে ক্যাশে ড্রাইভার এবং সেশন ড্রাইভারকে redis
এ পরিবর্তন করুন। :
CACHE_DRIVER=redis
SESSION_DRIVER=redis
অবশেষে, নিম্নলিখিত কমান্ডটি চালিয়ে আপনার কনফিগার ক্যাশে সাফ করুন:
php artisan config:clear
এইভাবে আপনার লারাভেল অ্যাপ্লিকেশনটি সার্ভারবিহীন রেডিস ক্লাস্টার ব্যবহার করবে তার ক্যাশে এবং সেশন ডেটা সংরক্ষণ করতে৷
উপসংহার
সার্ভারলেস রেডিসের সাথে লারাভেল ব্যবহার করা আপনার অ্যাপ্লিকেশন স্কেল করার একটি দুর্দান্ত উপায়। এমনকি আপনি কুবারনেটস ক্লাস্টারে লারাভেল চালালেও, আপনি এখনও আপনার ব্যবহারকারীর সেশন এবং ক্যাশে ডেটা একটি মাপযোগ্য উপায়ে সংরক্ষণ করতে একটি সার্ভারবিহীন রেডিস ক্লাস্টার ব্যবহার করতে পারেন।
Upstash সম্পর্কে আরও তথ্যের জন্য, ডকুমেন্টেশন চেক করুন।
আপনার লারাভেল অ্যাপ্লিকেশন কীভাবে স্কেল করবেন সে সম্পর্কে আরও তথ্যের জন্য নিম্নলিখিত নিবন্ধটি দেখুন:
- পরিচালিত ডেটাবেস এবং অবজেক্ট স্টোরেজ ব্যবহার করে কীভাবে একটি স্কেলেবল লারাভেল 6 অ্যাপ্লিকেশন সেট আপ করবেন