Containers & Virtual Machines

မင်္ဂလာပါ စာဖတ်သူတို့ရေ၊ ဒီတစ်ခါတော့ နည်းပညာလောကမှာ အသုံးများတဲ့ Containers နဲ့ Virtual Machines (VMs) အကြောင်းကို နှိုင်းယှဉ်ပြီး ပြောပြချင်ပါတယ်။ ဒီနှစ်ခုက ဆော့ဖ်ဝဲလ်တွေကို တည်ဆောက်တယ်၊ စမ်းသပ်တယ်၊ အသုံးပြုတယ်ဆိုတဲ့ နေရာမှာ အရေးပါတဲ့ နည်းပညာတွေပါ။ ဒါပေမဲ့ သူတို့ရဲ့ ချဉ်းကပ်ပုံ၊ အလုပ်လုပ်ပုံတွေ ကွာခြားတာကြောင့် ဘယ်အချိန်မှာ ဘယ်ဟာကို သုံးသင့်လဲဆိုတာ သိထားဖို့ အရေးကြီးပါတယ်။ ဒါကို ကျွန်တော်တို့ တစ်ဆင့်ချင်း ဖြည်းဖြည်းချင်း လေ့လာကြည့်ရအောင်။

Virtual Machines (VMs) ဆိုတာ ဘာလဲ?

ပထမဆုံး VMs ကနေ စပြောရအောင်။ Virtual Machine ဆိုတာ တကယ့် ကွန်ပျူတာစက်တစ်လုံးကို အတုယူထားတဲ့ ဆော့ဖ်ဝဲလ်တစ်ခုလို့ မြင်လိုက်ပါ။ ဥပမာ အနေနဲ့ သင့်မှာ ကိုယ်ပိုင် လက်တော့တစ်လုံးရှိတယ်ဆိုပါစို့။ အဲဒီလက်တော့ထဲမှာ VMware ဒါမှမဟုတ် VirtualBox လို ဆော့ဖ်ဝဲတစ်ခုထည့်ပြီး Windows တစ်ခု၊ Linux တစ်ခု၊ ဒါမှမဟုတ် တခြား Operating System (OS) တစ်ခုကို အပိုထပ်ဖွင့်လိုက်တာမျိုး ဖြစ်ပါတယ်။ ဒီလိုမျိုးမှာ သင့်ရဲ့ တကယ့် လက်တော့ဟာ “host” ဖြစ်ပြီး အထဲမှာ ဖွင့်ထားတဲ့ OS တွေက “guest” တွေပါ။

VM တစ်ခုဖွင့်တဲ့အခါ သူက တကယ့် ကွန်ပျူတာတစ်လုံးလို အလုပ်လုပ်ဖို့ လိုအပ်တဲ့ အရာအားလုံးကို ပါရှိပါတယ်။ ဥပမာ၊ သူ့မှာ သီးသန့် Operating System တစ်ခု၊ သူသုံးမယ့် CPU၊ RAM၊ Storage စတဲ့ အရာတွေ အကုန်ပါတယ်။ ဒါကို အောက်ခံမှာ ထောက်ကူပေးတာကတော့ “Hypervisor” လို့ခေါ်တဲ့ ဆော့ဖ်ဝဲတစ်ခုပါ။ Hypervisor က host ရဲ့ အရင်းအမြစ်တွေကို ခွဲဝေပြီး guest VMs တွေကို အလုပ်လုပ်နိုင်အောင် စီမံပေးတယ်လေ။

Containers ဆိုတာ ဘာလဲ?

အခု Containers ဘက်ကို ကြည့်ရအောင်။ Containers က VMs နဲ့ နည်းနည်းကွာပါတယ်။ သူက ပေါ့ပါးတယ်၊ မြန်တယ်၊ ပြီးတော့ တကယ့် OS တစ်ခုလုံးကို မယူပါဘူး။ ဒါကို ဥပမာနဲ့ ရှင်းရှင်းလင်းလင်း ပြောပြပါမယ်။ သင်ဟာ အိမ်တစ်အိမ်ကို ပြောင်းရွှေ့ပြီး ပစ္စည်းတွေ သယ်မယ်ဆိုပါစို့။ VMs ကတော့ အိမ်တစ်အိမ်လုံးကို အုတ်တစ်ချပ်ချပ်နဲ့ အစအဆုံး တည်ဆောက်ပြီး အထဲမှာ သင့်ပစ္စည်းတွေ ထည့်တာမျိုးပါ။ Containers ကတော့ အိမ်တစ်အိမ်လုံး မလိုဘူး၊ သင့်ပစ္စည်းတွေ ထည့်ဖို့ သေတ္တာတစ်လုံးပဲ ယူလာပြီး ရှိပြီးသား အိမ်ထဲမှာ ထားလိုက်တာမျိုးပဲ။ ဒီမှာ “ရှိပြီးသား အိမ်” ဆိုတာက host ရဲ့ OS ကို ဆိုလိုတာပါ။

Containers တွေက သူတို့ရဲ့ ဆော့ဖ်ဝဲလ် အလုပ်လုပ်ဖို့လိုတဲ့ ကုဒ်တွေ၊ libraries တွေ၊ dependencies တွေကိုပဲ သိမ်းထားပြီး host OS ကို မှီခိုပါတယ်။ ဒါကြောင့် Docker လို Container နည်းပညာတွေမှာ “lightweight” လို့ ပြောကြတာပါ။

ဘယ်လိုကွာသလဲ?

အခု ဒီနှစ်ခုကို နှိုင်းယှဉ်ကြည့်ရအောင်။ ပထမဆုံး ကွာတာက အရွယ်အစားနဲ့ အရင်းအမြစ် သုံးစွဲမှုပါ။ VMs က တစ်ခုချင်းမှာ OS တစ်ခုလုံး ပါဝင်တာမို့ အတော်လေး ကြီးမားပါတယ်။ ဥပမာ၊ သင် Ubuntu ကို VM တစ်ခုအနေနဲ့ ဖွင့်မယ်ဆိုရင် အနည်းဆုံး နေရာ 10GB လောက်နဲ့ RAM 2GB လောက် လိုအပ်နိုင်တယ်။ ဒါပေမဲ့ Container တစ်ခုကတော့ အဲဒီလောက် မလိုပါဘူး၊ သူက လိုအပ်တဲ့ အပိုင်းလေးတွေပဲ ယူတာမို့ တစ်ခါတလေ ရာနဲ့ချီတဲ့ MB လောက်ပဲ ရှိတတ်ပါတယ်။ ဒါကြောင့် တူညီတဲ့ စက်တစ်လုံးမှာ VMs အနည်းငယ်ပဲ ဖွင့်နိုင်ပေမယ့် Containers ဆိုရင် ဒါဇင်နဲ့ချီပြီး ဖွင့်လို့ရပါတယ်။

နောက်တစ်ခုက အမြန်နှုန်းပါ။ VMs က စဖွင့်တဲ့အခါ OS တစ်ခုလုံးကို အစကနေ တင်ရတာမို့ အချိန်ပိုကြာပါတယ်။ ဥပမာ၊ Windows VM တစ်ခုကို ဖွင့်ရင် မိနစ်အနည်းငယ် စောင့်ရတတ်တယ်။ Containers ကတော့ အဲဒီလို မဟုတ်ဘူး၊ သူက host OS ကို အသုံးပြုပြီးသား ဖြစ်နေတာမို့ စက္ကန့်ပိုင်းအတွင်း အလုပ်စလုပ်နိုင်ပါတယ်။

ဒါ့အပြင် သီးသန့်ဖြစ်မှုလည်း ကွာပါတယ်။ VMs က တကယ့် ကွန်ပျူတာတစ်လုံးလို သီးသန့်ဖြစ်တာမို့ လုံခြုံရေးပိုင်းမှာ အားသာချက်ရှိပါတယ်။ ဒါပေမယ့် Containers ကတော့ host OS ကို အများနဲ့ မျှသုံးရတာမို့ လုံခြုံရေးပိုင်းမှာ နည်းနည်းလျှော့ရတာမျိုး ရှိနိုင်ပါတယ်။

ဘယ်ဟာကို ဘယ်အချိန်မှာ သုံးသင့်လဲ?

ဒီမေးခွန်းကလည်း အရေးကြီးပါတယ်။ VMs က သင်တစ်ခုနဲ့တစ်ခု လုံးဝခွဲထားချင်တဲ့ အလုပ်တွေအတွက် သင့်တော်ပါတယ်။ ဥပမာ၊ သင်ဟာ ကုမ္ပဏီတစ်ခုမှာ ဆာဗာတစ်လုံးပေါ်မှာ Windows နဲ့ Linux ဆာဗာနှစ်ခုကို တပြိုင်နက် အလုပ်လုပ်စေချင်တယ်ဆိုရင် VMs က အကောင်းဆုံးပါ။ ဒါပေမယ့် သင်ဟာ ဆော့ဖ်ဝဲလ်တစ်ခုကို အမြန်ဖွင့်ပြီး စမ်းသပ်ချင်တယ်၊ ဒါမှမဟုတ် အက်ပ်တစ်ခုကို နေရာအများကြီးမယူဘဲ အများကြီး ဖွင့်ချင်တယ်ဆိုရင် Containers က ပိုကောင်းတဲ့ ရွေးချယ်မှုပါ။ ဒီနေရာမှာ Docker လို နည်းပညာတွေက နာမည်ကြီးလာတာပါ။


ဒီလောက်ဆိုရင် Containers နဲ့ VMs ကို ဘယ်လိုနှိုင်းယှဉ်ရမလဲဆိုတာ ရှင်းသွားမယ်ထင်ပါတယ်။ တစ်ခုက အားကြီးပြီး သီးသန့်ဖြစ်တယ်၊ နောက်တစ်ခုက ပေါ့ပါးပြီး မြန်ဆန်တယ်။ ဘယ်ဟာကို ရွေးမလဲဆိုတာ သင့်ရဲ့ လိုအပ်ချက်ပေါ်မှာ မူတည်ပါတယ်။ စိတ်ဝင်စားစရာ ကောင်းတယ် မဟုတ်လား? နောက်တစ်ခါ ဒီလို စိတ်ဝင်စားဖွယ် အကြောင်းအရာတွေနဲ့ ဆက်ပြီး တွေ့ကြမယ်နော်။


Scroll to Top