যারা বিভিন্ন স্ট্যাকে একসাথে কাজ করেন, বিভিন্ন প্রজেক্ট টেস্ট করে করে দেখার অভ্যাস আছে, তারা অনেকেই আমার মত ডকার ব্যবহার করে থাকেন। বলা হয় ডকারের নেশা একবার ধরে গেলে সব কিছুই ডকারাইজ করার রোগ ধরে। তো এই রোগ লিনাক্সে বেশি হলেও ম্যাক আর উইন্ডোজের ডকার ডেস্কটপে নামানোর একটা বিশেষ প্যাড়ার কারণে এই শ্রেণীর মানুষেরা ডকার কম ধরেন। সম্প্রতি ম্যাকের সিলিকন এম১ আর এম২ সিরিজ এসে ত ডকারকে আরো বেকায়দায় ফেলে দিয়েছিলো। অনেকে নতুন ম্যাক কিনতে চেয়েও শুধু ডেভেলপমেন্টের অসুবিধার কারণে সুইচ করতে পারছিলেন না।
তে এই রহস্য উদঘাটনের জন্য আমি অনেকগুলা ম্যাক, উইন্ডোজ আর লিনাক্স পিসি জোগাড় করি। এরপর বিভিন্ন রকম বেন্চমার্ক ও ডেভেলপমেন্ট এর টেস্ট চালাই, যেন অন্তত এটা চিন্তা করতে পারি যে ম্যাকের এত হাইপের দিকে আদৌ দৌড়ানো উচিৎ হবে কিনা।
আমার এই টেস্টের একটা ছোট অংশে লারাভেলের এক্সামপল এপটা বিভিন্ন ভাবে রান করে দেখার চেষ্টা করি। শুধু একটা ম্যাকেই বিভিন্ন ভাবে এই টেস্টের বিভিন্ন কনফিগারেশন টেস্ট করে অনেক গুরুত্বপূর্ন ব্যাপার খুঁজে পাই।
ম্যাকে সরাসরি ডকার ন্যাটিভলি কাজ করেনা। একটা ভার্চুয়াল লিনাক্স সিস্টেম তৈরি হয়ে এরপর ওটাতে ডকার কনটেইনারগুলা চলে। এর পরেও ম্যাক আর উইন্ডোজের জন্য তৈরি হওয়া ডকার ডেস্কটপে VirtioFS নামে নতুন একটা ফাইল ট্রান্সফার করার সিস্টেম আসে, যার কারণে টেস্ট করতে আরো সহজ হয়।
ডিভাইসের কনফিগারেশন হলো, M1 Pro 16" 16GB Ram, 1TB SSD মডেলের ম্যাকের Monterey অপারেটিং সিস্টেমে। পুরোটা সময় পাওয়ার কেবল লাগানো ছিলো এবং অভারক্লকিং করা ছাড়াই সর্বোচ্চ পারফরম্যান্স পেয়েছি।
টেস্ট করার জন্য Hyperfine নামক একটা বেন্চমার্ক টুল দিয়ে পরপর এক হাজার করে রিকুয়েস্ট পাঠিয়ে রেসপন্স টাইম সেইভ করা হয়েছে।
সরাসরি সেটাপ
এই স্টেজে আমি পিএইচপির লারাভেল রিলেটেড সব রকম মডিউল ইন্সটল করে, কম্পোজার দিয়ে লারাভেল ৮ এর প্যাকেজ ইন্সটল দিই। এরপর আর্টিসান দিয়ে সেটাকে সার্ভ করি।
কিন্তু এই সেটাপের একটা বড় সমস্যা হলো প্রতিটা সার্ভিস আপনাকে আলাদা করে করে সেটাপ করা লাগবে। ডাটাবেইজ বলেন, সার্চ বলেন, ক্যাডি বলেন; সবই বসে বসে সেটাপ করা লাগবে। আবার বিভিন্ন প্রজেক্টে গেলে বিভিন্ন ভাবে সুইচ করতে হয়। এই সেটাপ রেখেছি শুধু বেইজ হিসাবে পারফরমেন্স কেমন পাওয়া যায় তা দেখানোর জন্য।
সেইল সেটাপ
এই স্টেজে আগের স্টেজের তৈরি এপেই আমি লারাভেল সেইল সেটাপ দিই। এবং সেইলের মাধ্যমে আর্টিসান সার্ভ করা শুরু করি।
প্যারালালস দিয়ে উবুন্টু সেটাপ
এখানে আমি প্রথমে প্যারালালস ডেস্কটপ দিয়ে উবুন্টু সেটাপ দিই এবং সেখানে পিএইচপি সরাসরি সেটাপ দিয়ে কম্পোজার দিয়ে লারাভেল এপ সার্ভ করি।
প্যারালালস দিয়ে উবুন্টু সেটাপে শেয়ার্ড নেটওয়ার্ক
উবুন্টুর ভিতর থেকে সিস্টেম একসেস করলে বাহিরের ম্যাকের ডেভেলপমেন্ট পারফরম্যান্স বোঝা যাবেনা। তাই এই অংশে শেয়ার্ড নেটওয়ার্ক ও শেয়ার্ড ফোল্ডার দুই ভাবেই করে একই রেজাল্ট পেয়েছি।
ডকারের ভার্চুয়াল ফাইলসিস্টেম সেটাপ
ডকার একটা নতুন এক্সপেরিমেন্টাল ফাইলসিস্টেম এপিআই চালু করে যাতে ফাইলগুলো পিএইচপি সার্ভারের সাথে আরো দ্রুত সিঙ্করোনাইজ হয়।
র্যান্চার ডেস্কটপ
র্যান্চার ডেস্কটপ দিয়ে কুবারনেটেস, ডকার সহ অনেক কিছু করা যায়। এর সুন্দর ইউআই আপনি লিনাক্স, ম্যাক, উইন্ডোজ সহ সব জায়গায় চালাতে পারবেন। এর সাথে মিউটাজেন দিয়ে যদিও পারফরমেন্স অতটা বেশি উপকার হয়নাই।
কোলিমা দিয়ে
Colima দিয়ে ডকার ডেস্কটপকে একদম কুপকাত করে ফেলা যায়। এটা দিয়ে Linux In Mac বা ম্যাকে লিনাক্স চালানো যায়। শুধু কোলিমা দিয়েও ডকার ডেস্কটপের থেকে ভালো পারফরমেন্স পাওয়া যায়। আর এর সাথে মিউটাজেন একত্র করলে ত মোটামুটি সব রকম সলুশন থেকে কম সময় ও ঝামেলামুক্ত ভাবে ভার্চুয়াল দিক থেকে সব থেকে ভালো সলুশন আশা করা যায়।