
আপনি যদি ডেভেলপমেন্টে কাজ করেন, তাহলে আপনি জানেন যে উইন্ডোজে লিনাক্স এনভায়রনমেন্ট সেট আপ করা সবসময়ই কিছুটা ঝামেলার ছিল অথবা এমন সব এক্সটার্নাল টুলের উপর নির্ভরশীল ছিল যেগুলো কখনও কখনও আকারে অনেক বড় হয়ে যায়। তবে, মাইক্রোসফট WSL কন্টেইনার্স -এর মাধ্যমে একটি যুগান্তকারী পরিবর্তন এনেছে। এই ফিচারটি আমাদেরকে ডকার ডেস্কটপের ঝক্কি-ঝামেলা বা এর জটিল এন্টারপ্রাইজ লাইসেন্স ছাড়াই সরাসরি লিনাক্স ইমেজ এবং কন্টেইনার ম্যানেজ করার সুযোগ দেয়।
এই টুলটি কোনো সাধারণ আপডেট নয়, বরং উইন্ডোজ যেভাবে ভার্চুয়ালাইজেশন পরিচালনা করে, তাতে এটি একটি যুগান্তকারী পরিবর্তন। উইন্ডোজ সাবসিস্টেম ফর লিনাক্স-এর মধ্যে সরাসরি কন্টেইনার চালানোর ক্ষমতাকে একীভূত করার মাধ্যমে এর লক্ষ্য হলো একটি অনেক বেশি সাবলীল কর্মপ্রবাহ তৈরি করা, যা অপ্রয়োজনীয় স্তরগুলো দূর করে এবং ডেভেলপারদের অপারেটিং সিস্টেম কনফিগারেশন নিয়ে মাথা না ঘামিয়ে কোড লেখার উপর মনোযোগ দিতে সাহায্য করে।
WSL কন্টেইনার বলতে ঠিক কী বোঝায়?
সহজ কথায়, এটি WSL-এর একটি নতুন সুবিধা যা আপনাকে কোনো বাহ্যিক ডেমন ছাড়াই লিনাক্স কন্টেইনার তৈরি ও চালু করার সুযোগ দেয়। এর মূলে রয়েছে wslc.exe , একটি কমান্ড-লাইন ইন্টারফেস যা সহজবোধ্য করে ডিজাইন করা হয়েছে, বিশেষ করে যদি আপনি আগে থেকেই ডকারের সাথে পরিচিত হন, কারণ এর কমান্ডগুলো খুবই সাদৃশ্যপূর্ণ। প্রকৃতপক্ষে, কোনো বিভ্রান্তি এড়াতে মাইক্রোসফট ` container.exe` নামে একটি অ্যালিয়াসও যুক্ত করেছে ।
তবে বিষয়টি শুধু কনসোলকে কেন্দ্র করেই নয়। তারা একটি NuGet প্যাকেজের মাধ্যমে উপলব্ধ একটি WSL কন্টেইনার API- ও প্রকাশ করেছে । যারা নেটিভ উইন্ডোজ অ্যাপ্লিকেশন (C#, C++, বা C ব্যবহার করে) তৈরি করেন এবং চান যে তাদের প্রোগ্রাম অভ্যন্তরীণভাবে লিনাক্স কন্টেইনার পরিচালনা করুক, ইনপুট/আউটপুট (stdin/stdout), নেটওয়ার্ক মাউন্ট, বা এমনকি PyTorch-এর সাহায্যে AI টাস্কের জন্য সরাসরি GPU অ্যাক্সেসের মতো কাজগুলো সামলাক, তাদের জন্য এটি অমূল্য।
ডকার ডেস্কটপের সাথে মূল পার্থক্য
অনেকেই ভাববেন যে এটি ডকার ডেস্কটপের বিকল্প কিনা। এর সংক্ষিপ্ত উত্তর হলো, অনেক ক্ষেত্রেই হ্যাঁ। যেখানে ডকার সাধারণত সবকিছুর জন্য একটিমাত্র, শেয়ার্ড লিনাক্স ভার্চুয়াল মেশিন ব্যবহার করে, সেখানে WSL কন্টেইনার প্রতিটি কন্টেইনারের জন্য স্বাধীন হাইপার-ভি মাইক্রো-ভিএম চালু করে । এর মানে হলো, প্রতিটি প্রসেসের নিজস্ব মেমরি এবং স্টোরেজ বাজেট থাকে, যা একটি কন্টেইনারকে অন্যটির ওপর 'নজরদারি' করা থেকে বিরত রাখে এবং নিরাপত্তা উন্নত করে।
আরেকটি গুরুত্বপূর্ণ বিষয় হলো খরচ। বড় কোম্পানিগুলোকে ডকার ডেস্কটপের জন্য অর্থ প্রদান করতে হয়, অন্যদিকে ডাব্লিউএসএল কন্টেইনারগুলো উইন্ডোজ ১১-এর সাথেই কোনো অতিরিক্ত খরচ ছাড়াই অন্তর্ভুক্ত থাকে। তবে, একটি গুরুত্বপূর্ণ বিষয় হলো: আপনার উইন্ডোজ ১১ প্রো, এন্টারপ্রাইজ বা এডুকেশন সংস্করণ প্রয়োজন , কারণ এর হোম সংস্করণটি হাইপার-ভি আইসোলেশন সমর্থন করে না, যা এই সবকিছু কাজ করার জন্য অপরিহার্য।
ধাপে ধাপে এটি কীভাবে চালু করা যায়
আপনি যদি পরীক্ষা-নিরীক্ষা শুরু করতে চান, তবে প্রথমেই নিশ্চিত করতে হবে যে আপনার কাছে WSL ভার্সন 2.9.3 বা তার পরবর্তী সংস্করণ রয়েছে। যেহেতু এটি এখনও প্রিভিউ পর্যায়ে আছে, তাই আপনাকে অ্যাডমিনিস্ট্রেটর হিসেবে একটি টার্মিনাল খুলে `wsl --update --pre-release` কমান্ডটি চালাতে হবে। আপডেট হয়ে গেলে, আপনি `wsl --install-feature containers` কমান্ডটি চালিয়ে ফিচারটি চালু করতে পারবেন ।
সবকিছু ঠিক আছে কিনা তা পরীক্ষা করতে, শুধু টাইপ করুন wslc versionআপনি যদি কোনো জটিলতা ছাড়াই আপনার প্রথম কন্টেইনারটি চালু করতে চান, তাহলে এটি দিয়ে চেষ্টা করুন। wslc run --rm hello-worldআপনি দেখবেন ছবিটি স্বয়ংক্রিয়ভাবে ডাউনলোড হয়ে যাবে এবং শুভেচ্ছা বার্তাটি প্রদর্শিত হবে, যা সিস্টেমটি চালু হওয়ার বিষয়টি নিশ্চিত করবে। এখান থেকে, আপনি এই ধরনের কমান্ড ব্যবহার করতে পারেন। wslc কন্টেইনার ps জীবিত কী আছে তা দেখতে অথবা wslc ছবি ls আপনার স্থানীয় ছবিগুলো পর্যালোচনা করতে।
আপনার নিজের ছবি তৈরি করা এবং কর্মপ্রবাহকে অপ্টিমাইজ করা
আপনি যদি এটিকে পরবর্তী স্তরে নিয়ে যেতে চান, তবে WSL এক্সটেনশন সহ ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করাই হলো আদর্শ সমাধান। আপনার নিজের ইমেজ তৈরি করার জন্য, আপনার একটি কন্টেইনারফাইল (Containerfile ) নামক ফাইলের প্রয়োজন হবে (যা ডকারফাইলের (Dockerfile) মতোই) এবং আপনার অ্যাপের কাঠামো তৈরির জন্য ভালো প্রোগ্রামিং বইয়ের সাহায্য নিতে হবে । উদাহরণস্বরূপ, আপনি যদি একটি জ্যাঙ্গো (Django) অ্যাপ তৈরি করেন, তাহলে আপনাকে পাইথন (Python) ইমেজটি সংজ্ঞায়িত করতে হবে, রিকোয়ারমেন্টগুলো কপি করতে হবে এবং পোর্ট ৮০০০ উন্মুক্ত করতে হবে।
সংকলন প্রক্রিয়াটি সহজ: আপনি ব্যবহার করেন wslc build -t your-app-name . এবং তারপর আপনি এটি দিয়ে চালু করুন wslc run -d -p 8000:8000 --name mi-app nombre-de-tu-appসবচেয়ে শক্তিশালী বিষয়টি হলো যে আপনি এটিকে একীভূত করতে পারেন MSBuild অথবা CMakeকন্টেইনার তৈরি করাকে আপনার প্রোজেক্টের বিল্ড প্রসেসের একটি অংশ করে তোলে।
পারফরম্যান্স, নেটওয়ার্কিং এবং স্টোরেজ
মাইক্রোসফট শুধু শুরুই করেনি। তারা ভার্চুওফসকে (virtiofs) ডিফল্ট ফাইল সিস্টেম হিসেবে প্রয়োগ করেছে, যা উইন্ডোজ এবং লিনাক্সের মধ্যে ডেটা ট্রান্সফারের গতি উল্লেখযোগ্যভাবে বাড়িয়ে দেয় এবং ধীরগতির মাউন্টের বিরক্তিকর প্রতিবন্ধকতা দূর করে। এছাড়াও, কনসোমে (consomme) নামে একটি পরীক্ষামূলক নেটওয়ার্ক মোড রয়েছে , যা কর্পোরেট পরিবেশে কর্মরতদের জন্য একটি আশীর্বাদস্বরূপ, কারণ এটি আরও বুদ্ধিমত্তার সাথে ট্র্যাফিক রাউটিং করে এন্টারপ্রাইজ ভিপিএন-এর সাথে সাধারণ দ্বন্দ্বগুলোর সমাধান করে।
রিসোর্স ব্যবস্থাপনার ক্ষেত্রে, সিস্টেমটি হোস্টের জন্য মেমরি মুক্ত করতে আরও সক্রিয়। যেহেতু এগুলি লাইটওয়েট ভার্চুয়াল মেশিন, তাই যখন আপনি একটি কন্টেইনার বন্ধ করেন, স্মৃতি দ্রুত পুনরুদ্ধার হয় মনোলিথিক মডেলের তুলনায়। ডিস্ক পরিষ্কার রাখতে, ব্যবহার করতে ভুলবেন না। wslc container prune y wslc image prune যা আর ব্যবহার করেন না তা মুছে ফেলুন।
এই প্রযুক্তিটি উইন্ডোজ ১১ কোরের সাথে সরাসরি কন্টেইনারাইজেশন একীভূত করার মাধ্যমে একটি উল্লেখযোগ্য অগ্রগতি সাধন করেছে, যা ডেভেলপারদের থার্ড-পার্টি সফটওয়্যার বাদ দিতে এবং হাইপার-ভি আইসোলেশন ও ভার্চুওএফএস সিস্টেমের মাধ্যমে পারফরম্যান্স অপ্টিমাইজ করতে সাহায্য করে। wslc.exe CLI এবং VS Code কম্প্যাটিবিলিটির আগমনের ফলে একটি শক্তিশালী, ফ্রি এবং কার্যকর পরিবেশ তৈরি হয়েছে যা লিনাক্স ওয়ার্কলোড চালানোকে সহজ করে তোলে, যদিও এর সম্পূর্ণ সক্ষমতা কাজে লাগানোর জন্য উইন্ডোজের একটি প্রফেশনাল সংস্করণ প্রয়োজন।






