SDLC-এ Deployment টার্মটি এমন এক প্রক্রিয়া যেখানে অ্যাপ্লিকেশনের কোড ব্যবহারকারীর জন্য রান করানো হয়। Deployment-এর জন্য Docker ও Virtual Machine (VM) উভয়ই ব্যবহার করা হয়। তবে Docker ও VM-এর মধ্যে পার্থক্যগুলো কী?
Docker: একটি ওপেন সোর্স প্ল্যাটফর্ম যা ডেভেলপারদের তাদের সফটওয়্যারকে Container নামে পরিচিত একটি standard unit-এ প্যাকেজ করতে দেয়। Container সাধারণত অ্যাপ্লিকেশনের কোড, নির্দিষ্ট environment, এবং প্রয়োজনীয় লাইব্রেরি নিয়ে গঠিত হয়, যার নিজস্ব File System, Dependency Structure এবং Networking Capabilities থাকে। কনটেইনারগুলো Host OS-এর রিসোর্স সরাসরি ব্যবহার করে এবং একাধিক কনটেইনার একই OS-এর রিসোর্স শেয়ার করতে পারে।
VM (Virtual Machine): সাধারণত একটি কম্পিউটার প্রসেসর, RAM, Hard drive, Network, OS এবং বিভিন্ন সফটওয়্যার নিয়ে গঠিত হয়। Virtual Machine একটি সফটওয়্যার যা একটি হার্ডওয়্যারের মতো আচরণ করে, অর্থাৎ এটি একটি Physical Machine-এর হার্ডওয়্যার কম্পোনেন্টগুলোকে ইমুলেট করে। প্রতিটি VM-এর নিজস্ব Kernel এবং Operating System থাকে। আমরা একটি Windows কম্পিউটারের ভেতরে Linux চালাতে পারি এর কারণে।
কনটেইনার Host OS-এর রিসোর্স শেয়ার করে, যার ফলে একই OS-এ অনেকগুলো কনটেইনার চালানো সম্ভব হয় এবং তারা কম রিসোর্স ব্যবহার করে। প্রতিটি কনটেইনারের নিজস্ব অপারেটিং সিস্টেমের প্রয়োজন হয় না, যা কনটেইনারকে Lightweight করে তোলে। অন্যদিকে, Virtual Machine-এ প্রতিটি VM-এর জন্য একটি আলাদা OS এবং Kernel চলতে হয়। এর ফলে প্রতিটি VM-কে নির্দিষ্ট পরিমাণে রিসোর্স (যেমন CPU, RAM) প্রি-অ্যালোকেট করতে হয়, যা একই সিস্টেমে VM-এর সংখ্যা সীমাবদ্ধ করে।
Top comments (0)