
ভার্চুয়ালাইজেশন এবং কন্টেইনারাইজেশনের মধ্যে প্রধান পার্থক্য কী এবং প্রতিটি প্রযুক্তি কীসের জন্য ব্যবহৃত হয়?
ভার্চুয়ালাইজেশন (ভিএম)। একটি ভার্চুয়াল মেশিন হল ফিজিক্যাল হার্ডওয়্যারের একটি বিমূর্ততা - একটি সার্ভারকে অনেকগুলিতে পরিণত করা। একটি হাইপারভাইজার হোস্ট এবং ভিএম-এর মধ্যে বসে, সিপিইউ, মেমরি এবং স্টোরেজ পুলিং করে। প্রতিটি VM-এ একটি একটি গেস্ট OS এর সম্পূর্ণ কপি, এছাড়াও অ্যাপ্লিকেশন এবং সমস্ত লাইব্রেরি অন্তর্ভুক্ত থাকে। হাইপারভাইজার (VMM) বিচ্ছিন্নতা প্রয়োগ করে এবং এর সীমানা CPU ভার্চুয়ালাইজেশন এক্সটেনশন (Intel VT-x / AMD-V) দ্বারা হার্ডওয়্যার-সহায়তা।
হাইপারভাইজার দুটি ধরণের আসে:
- টাইপ 1 (বেয়ার-মেটাল): সরাসরি হার্ডওয়্যারে চলে; পরিষ্কার উদাহরণ হল VMware ESXi/vSphere, Microsoft Hyper-V, এবং Xen। KVM একটি হাইব্রিড কেস: একটি লিনাক্স কার্নেল মডিউল যা কার্নেলটিকে টাইপ 1 হাইপারভাইজারে পরিণত করে যখন হোস্ট এখনও সাধারণ প্রক্রিয়াগুলি চালায়।
- টাইপ 2 (হোস্ট করা): একটি প্রচলিত OS (ভার্চুয়ালবক্স, ভিএমওয়্যার ওয়ার্কস্টেশন); ব্যক্তিগত মেশিনের জন্য উপযুক্ত।
কন্টেইনারাইজেশন। একটি কন্টেইনার প্যাকেজ কোড এবং এর সমস্ত নির্ভরতা (রানটাইম, লাইব্রেরি, সেটিংস) এবং হার্ডওয়্যারের পরিবর্তে অপারেটিং সিস্টেমকে ভার্চুয়ালাইজ করে। কন্টেইনারগুলি হোস্ট OS কার্নেল ভাগ করে এবং ব্যবহারকারী স্পেসে বিচ্ছিন্ন প্রক্রিয়া হিসাবে চালায়। লিনাক্সে এটি নেমস্পেস (বিচ্ছিন্নতা) এবং cgroups (রিসোর্স অ্যাকাউন্টিং এবং সীমা) ব্যবহার করে, ক্ষমতা, seccomp, MAC (SELinux/AppArmor), ব্যবহারকারীর নামস্থান এবং রুটলেস মোড দ্বারা আরও শক্ত করা হয়। কার্নেল শেয়ারিং OS-পরিবারের সামঞ্জস্য বোঝায়: লিনাক্স কন্টেইনারগুলির একটি লিনাক্স কার্নেল প্রয়োজন, তাই Windows/macOS-এ ডকার ডেস্কটপ শান্তভাবে একটি হালকা লিনাক্স ভিএম চালায়। ডকার জনপ্রিয় পাত্রে, কিন্তু বিন্যাস OCI দ্বারা প্রমিত; অন্যান্য রানটাইমও বিদ্যমান — কনটেইনারড, সিআরআই-ও, পডম্যান।
মূল পার্থক্য:
- আকার: কন্টেইনার চিত্রগুলি সাধারণত কয়েক এমবি থেকে শত শত এমবি পর্যন্ত হয়; VM হল GBs (বিস্তৃতির উদাহরণমূলক আদেশ, নির্দিষ্ট সংখ্যা নয়)।
- স্টার্টআপ: পাত্রে সেকেন্ড/মিলিসেকেন্ডে শুরু হয়; VM গুলিকে অবশ্যই একটি সম্পূর্ণ OS বুট করতে হবে৷
- ওভারহেড: কন্টেইনারগুলির প্রতি অ্যাপের জন্য আলাদা ওএসের প্রয়োজন নেই — উচ্চ ঘনত্ব, কম লাইসেন্সিং খরচ৷
- বিচ্ছিন্নতা/নিরাপত্তা: ভিএম আরও শক্তিশালী, হার্ডওয়্যার-ভিত্তিক বিচ্ছিন্নতা অফার করে; পাত্রে দুর্বল, সফ্টওয়্যার-ভিত্তিক বিচ্ছিন্নতা অফার করে (শেয়ার করা কার্নেল থেকে কন্টেইনার-এসকেপ ঝুঁকি)। একটি মধ্যম স্থল হল স্যান্ডবক্স করা রানটাইম (gVisor, Kata Containers, Firecracker) যেটি VM-স্তরের বিচ্ছিন্নতার সাথে যোগাযোগ করে।
প্রত্যেকটি কিসের জন্য ব্যবহৃত হয়:
- VMs: একটি সার্ভারে বিভিন্ন ওএস চালানো, রিসোর্স-ইনটেনসিভ বা একচেটিয়া কাজের চাপ এবং শক্তিশালী বিচ্ছিন্নতা (মাল্টি-টেনেন্সি, লিগ্যাসি অ্যাপ)।
- ধারক: ক্লাউড-নেটিভ ডেভেলপমেন্ট, মাইক্রোসার্ভিসেস, সিআই/সিডি, বহনযোগ্যতা এবং দ্রুত অনুভূমিক স্কেলিং (কুবারনেটস দ্বারা সাজানো)।
অনুশীলনে দুটিই পরিপূরক: কন্টেইনারগুলি প্রায়শই VM-এর ভিতরে চালিত হয় যাতে শক্তিশালী বিচ্ছিন্নতার সাথে চটপটে বিতরণকে একত্রিত করা হয়।
