সবাই আজকাল "সার্ভারলেস" (Serverless) নিয়ে অনেক কথা বলে। কিন্তু বেশিরভাগ ক্ষেত্রে দেখা যায় সার্ভার ম্যানেজমেন্টের বদলে আমরা "কোল্ড স্টার্ট" ম্যানেজমেন্ট করছি। আমার কাছে Cloudflare Workers প্রথমবারের মতো মনে হয়েছে যে এর সুবিধাগুলো সত্যিই কাজের। কন্টেইনার স্পিন-আপ করার ঝক্কি নেই, সরাসরি V8 আইসোলেটে রান করে। এর স্পিড এতটাই বেশি যে মাঝেমধ্যে ৫ মিলি-সেকেন্ডের নিচেই আউটপুট চলে আসে।

KV স্টোরেজ: যা ভেবেছিলাম আর যা হলো

আমি শুরুতে ভেবেছিলাম ক্লাউডফ্লেয়ারের KV স্টোরেজ হয়তো গ্লোবালি ডিস্ট্রিবিউটেড রেডিসের (Redis) মতো হবে। কিন্তু এটি আসলে তেমন নয়। একবার আমি প্রায় দুই ঘণ্টা ধরে ডিবাগ করেছি কেন আমার একটি কনফিগারেশন চেঞ্জ হওয়ার পরও আগের ভ্যালু দেখাচ্ছিল। পরে বুঝলাম এর "ইভেনচুয়াল কনসিস্টেন্সি" (Eventual Consistency) ৬০ সেকেন্ড পর্যন্ত সময় নিতে পারে। যদি আপনি সিঙ্ক্রোনাইজড কোনো কিছু করতে চান, তবে KV আপনার জন্য নয়। Cloudflare Workers এ রিয়েল-টাইম ডেটা হ্যান্ডেল করা একটু ট্রিকি।

আপনি যদি রিয়েল-টাইম কনসিস্টেন্সি চান, তবে ডিউরেবল অবজেক্টস (Durable Objects) ব্যবহার করতে হবে, তবে এর এপিআই বেশ জটিল এবং এটি প্রিমিয়াম সার্ভিসের অন্তর্ভুক্ত।

এজ রিডাইরেক্ট এবং শিল্ড প্যাটার্ন

আমার জন্য সবচেয়ে বোরিং কিন্তু কার্যকরী ইউজ কেস হলো এজ রিডাইরেক্ট (Edge Redirects)। ভারি কোনো অরিজিন সার্ভারে রিকোয়েস্ট পাঠানোর বদলে সরাসরি এজ থেকেই ৩০১ (301) সেন্ড করা যায়। এটি যেমন ফাস্ট, তেমনি টাকাও সাশ্রয় করে।

এছাড়া Cloudflare Workers কে আমি এপিআই গেটওয়ে হিসেবে ব্যবহার করি। রেট লিটিং বা ব্যাড অ্যাক্টরদের অরিজিন সার্ভারে পৌঁছানোর আগেই ব্লক করার জন্য এটি সেরা সলিউশন। গত মাসে আমার এপিআই যখন বট দিয়ে ক্রল করার চেষ্টা করা হয়েছিল, এই ওয়ার্কার তখন আমার ইগ্রেস ফি (Egress Fees) অনেক বাঁচিয়ে দিয়েছিল।

নোডজেএস কম্প্যাটিবিলিটি (Node.js Compatibility)

অনেকদিন ধরে এটি একটি বড় ডিল-ব্রেকার ছিল। যদি কোনো লাইব্রেরি Buffer বা path স্পেসিফিক ভাবে ব্যবহার করে, তবে সেটি রান করতো না। বর্তমানে ক্লাউডফ্লেয়ার nodejs_compat ফ্ল্যাগ দিয়ে অনেক ইম্প্রুভ করেছে, তবে আমার মতে এটি এখনো ১০০% রিলায়েবল নয়। র‍্যান্ডম এনপিএম প্যাকেজ ব্যবহার করলে মাঝেমধ্যেই আজব সব এরর পাওয়া যায় যা ডিবাগ করা বেশ যন্ত্রণার।

অবজারভেবিলিটি: যেখানে আমার বড় অভিযোগ

Cloudflare Workers এর অবজারভেবিলিটি নিয়ে আমার বড় অভিযোগ আছে। wrangler tail কমান্ডটি ততক্ষণই ভালো যতক্ষণ ট্রাফিক কম। হাই-ট্রাফিক সাইটে এটি জাস্ট জেসনের (JSON) একটি ব্লার হয়ে থাকে। কোন রিকোয়েস্ট কেন ফেইল করলো তা ট্র্যাকিং করা বেশ চ্যালেঞ্জিং। আমি এখন অরিজিন সার্ভারে ট্রেস আইডি পাস করি যাতে কিছুটা হলেও বোঝা যায় কী ঘটছে।

আমার মনে হয় Cloudflare Workers একটি শক্তিশালী প্ল্যাটফর্ম হলেও এর কিছু সীমাবদ্ধতা আমাদের সবসময় মাথায় রাখা উচিত। এটি কি আপনার সব সমস্যার সমাধান? সম্ভবত না, তবে সঠিক ইউজ কেসে এটি জাদুর মতো কাজ করে।

ক্লাউডফ্লেয়ার ওয়ার্কার্স (Cloudflare Workers) ব্যবহারের সুবিধা, সীমাবদ্ধতা, KV স্টোরেজের চ্যালেঞ্জ এবং এপিআই গেটওয়ে হিসেবে এর কার্যকারিতা নিয়ে বিস্তারিত জানুন এই ব্লগে।

Asaduzzaman Pavel

About the Author

Asaduzzaman Pavel is a Software Engineer who actually enjoys the friction of a well-architected system. He has over 15 years of experience building high-performance backends and infrastructure that can actually handle the real-world chaos of scale.

Currently looking for new opportunities to build something amazing.