Hypervisor vs Container



အခုတခေါက် တင်ပေးသွားမယ့် post ကတော့ ကျနော်တို့ network ပိုင်းသာမက System ပိုင်း ရော development ပိုင်း ကိုပါအကြီးအကျယ် ပြောင်းလဲသွားစေတဲ့ Hypervisor နဲ့ container တွေအကြောင်းကိုတင်ပေးမှာ ဖြစ်ပါတယ်။ကျနော် ဒီတခေါက်တော့ Server ပိုင်းနဲ့ System ပိုင်းကိုပိုပြီး အလေးပေးတင်ပေးသွားမှာ ဖြစ်ပါတယ်။ ပြီးတော့ Basic က အာ့ဆိုကျနော်တို့ စလိုက်ရအောင်ဗျာ။
Hypervisor ဆိုတာဘာလဲ? ဘယ်လိုအလုပ်လုပ်သလဲ ?
Hypervisor ကတော့ ကျနော်တို့အခုလက်ရှိ ကျနော်တို့ Development ဘက်မှာရော၊ System administration ဘက်မှာရော ပိုပြီး CPU Usage ကျစေဖို့ memory အများကြီးမသုံးမိစေဖို့နဲ့ ကျနော်တို့ Multiple OS တွေကို တပြိုင်တက်လည်းသုံးချင်တယ်၊ Dual boot, triple boot တင်ဖို့အခက်အခဲဖြစ်နေတယ်ဆိုတဲ့ အချိန်မျိုးတွေမှာ ကျနော်တို့ physical Operation System မဟုတ်ပဲ virtual OS တွေ Network card နဲ့ HDD တွေကို မိမိလိုချင်သလို ဆွဲယူအသုံးပြုနိုင်တဲ့ Feature တခုဖြစ်ပါတယ်။
တစ်နည်းအားဖြင့်တော့ Hypervisor က Physical OS မဟုတ်တဲ့ OS တွေကို Virtual Machine အနေနဲ့ CPU နည်းနည်း RAM နည်းနည်းနဲ့ Dual boot တို့ Triple boot တိုလည်းတင်စရာမလိုပဲ တပြိုင်နက်တည်း မိမိ PC က OS ဖွင့်တာနဲ့ physical OS ရော Virtual OS ရောကို တချိန်တည်းမှာ တပြိုင်တည်းအသုံးပြုနိုင်တဲ့ Feature တခုပေါ့နော်။
ဒီနေရာမှာ hypervisor အကြောင်းနည်းနည်းပြောချင်တယ်၊ တချို့တွေသိထားပြီးသားဖြစ်မှာပါ။
Hypervisor တခုမှာဆိုရင် ကျနော်တို့ Guest OS မှာ Hypervisor တခုခု ဥပမာ VMWare, Hyper-V, VirtualBoxတခုခု install လုပ်လိုက်ပြီးရင်ကျနော်တို့ Virtual Machine တွေဆောက်ပြီးသက်ဆိုင်ရာ OS ရဲ့ Boot iso File ကိုထည့်ပြီး မိမိကြိုက်သလို CPU Core, NIC card တမျိုးမျိုးနဲ့ (Wireless or Ethernet), ကျနော်တို့ Virtual HDD နဲ့ Virtual RAM ကို မိမိကြိုက်သလို Size ရွေးပေးပြီး OS ကို install လုပ်ပြီးသုံးလို့ရပါပြီ။ 😌😌😌
သုံးတဲ့ အခါ မိမိရွေးထားတဲ့ specification အတိုင်းတကယ့် physical OS သုံးသလိုမျိုး ကို အသုံးပြုလို့ရပါပြီ။ ကျနော်တို့ Traditional နည်းလမ်းဖြင့် App တခုကို Hypervisor မပါပဲ hosting လုပ်မယ်ဆို ဥပမာ POS app တခုပေါ့နော်၊ အာ့အခါကျနော်တို့ App run လိုက်တာနဲ့ CPU usage တွေမြင့်လာမယ်၊ heat တက်လာမယ်၊ RAM usage တွေလည်းတက်လာတဲ့အတွက် ကြာလာတဲ့အခါ စက်ဟမ်းလာမယ်ပေါ့နော်။ ကျနော်တို့ Hypervisor သုံးပြီး VM တွေပေါ်မှာတင်ပြီး Run မယ်ဆိုရင် တခုခု error တက်လာရင်တောင် မိမိPC ရဲ့ Guest OS ကိုမထိခိုက်ပါဘူး။ အဓိကအားဖြင့်တော့ real world မှာ physical server တစ်လုံးရှိမယ်၊ ပြီးတော့ VM တခုစီမှာ App တခုစီနဲ့ VM 3ခု run ထားတာမျိုးတွေလုပ်လေ့လုပ်ထရှိကြပါတယ်။
အခုနောက်ထပ်ကျနော်တို့ container အကြောင်းလေးဆက်သွားရအောင်။ 🙂🙂🙂
Container ဆိုတာဘာလဲ? ဘယ်လိုအလုပ်လုပ်သလဲ ??? 🤔🤔🤔
Container အကြောင်းရှင်းပြတဲ့အခါ Docker အကြောင်းပါတခါတည်းတွဲပြီး ရှင်းပြချင်ပါတယ်။
Container ဆိုတာကတော့ ကျနော်တို့ VM လိုပဲ CPU Usage နည်းမယ်၊ performance ကောင်းမယ်၊ ပြီးတော့ VM ထက်လည်းပိုပြီးတော့ light weight ဖြစ်တယ်ပေါ့။
Container ရဲ့ architecture အရကြည့်မယ်ဆို Hypervisor မှာလိုမျိုး VM တွေ OS တွေအသီးသီးမရှိတော့ပဲ ကျနော်တို့ App တခု host လုပ်တော့မယ်ဆို Docker engine ကိုအသုံးပြုပြီး Container တခုကို App တခုစီနဲ့ အသုံးပြုလို့ရပါတယ်။
Docker နဲ့ container ကဘာနဲ့တူသလဲဆိုတော့ Giant ship ကြီးတွေ၊ ပင်လယ်ကူး သင်္ဘောကြီးတွေတင်ဆောင်လာတဲ့ container ကြီးတွေနဲ့ဆင်တူပါတယ်။ Container တခုမှာ Hypervisor မပါပဲ Virtual OS run လို့ရသလို App တွေကိုလည်း hosting လုပ်လို့ရပါတယ်။ Docker ကတော့ဘာနဲ့တူသလဲဆိုရင် စောစောက သင်္ဘောပေါ်က container ကြီးတွေကိုကရိန်းကြီးနဲ့ လိုသလို နေရာရွှေ့တာတို့ ဖျက်ပစ်တာတို့ item တွေထည့်တာမျိုးတွေပြုလုပ်တာနဲ့ဆင်တူပါတယ်။ Docker ဟာအာ့ဒီ့ ကရိန်းကြီးပေါ့ဗျာ။
Architecture အရကြည့်မယ်ဆို Physical server ကြီးပေါ်မှာ Guest OS တခုရှိမယ်၊ ဒီ Guest OS ပေါ်မှာမှ Docker engine ကို install လုပ်ထားပြီးတော့ docker engine ကနေမှတစ်ဆင့် container တွေ create လုပ်ပြီး cloud ပေါ်သိမ်းတာဖြစ်စေ၊ မိမိ server ရဲ့ HDD ထဲမှာဖြစ်စေ သိမ်းလို့ရပါတယ်။ နောက်ပြီး container ဟာ Virtual Machine နဲ့ compare လုပ်လိုက်ရင် VM ထက် size သေးပြီး portable ဖြစ်ပြီး speed ရော integration ပါသာတာတွေ့ရပါမယ်။
နောက်တခုက container တွေမှာ virtualization feature ပါပါလာတာတွေ့ရတော့ Hypervisor ထက်သာတာကိုတွေ့ရပြီး နောက်ပိုင်း data center တော်တော်များများက Docker engine နဲ့ container တွေကို server automation နဲ့ cloud feature ဖြစ်တဲ့ Devops function နဲ့ပါတွဲပြီး အသုံးပြုလာတာကိုတွေ့ရပါတယ်။
ဒီလောက်ဆိုရင်တော့ Hypervisor နဲ့ Container အကြောင်းကိုနားလည်မယ်လို့ထင်ပါတယ်။ 😌😌😌
ကျေးဇူးတင်လျက် 😊😊😊
Networking and information technology

Comments

Popular posts from this blog

Migrating Java Project from local to cloud using Heroku

SDN (Software Define Networking)