Wednesday, July 02, 2008

Software Development ေ၀ါဟာရမ်ား - Virtualization

ကြန္ျပဴတာေလာကမွာ စကားလံုးေတြက အဓိပၸါယ္ႂကြယ္၀ၿပီး နားလည္သေယာင္ ႐ွိပါတယ္။ ေဆးပညာ စာအုပ္ေတြမွာလို ခက္ခက္ခဲခဲ လက္တင္စကားလံုးေတြ၊ ဂရိစကားလံုးေတြ မဟုတ္ဘဲ ႐ိုး႐ွင္းတဲ့ အဂၤလိပ္စာ ျဖစ္တဲ့ အတြက္ စကားလံုးေတြရဲ႕ ဘာသာျပန္ကို သိႏိုင္ေပမယ့္ အဓိပၸါယ္နဲ႔ အသံုးခ်ပံုကို သိမလြယ္ပါဘူး။

ဥပမာ Virtualization ဆုိတာကို `အစစ္ေယာင္ျပဳလုပ္ျခင္း´ ဆိုရင္ တခ်ိ႕ေနရာေတြမွာ ဘာသာျပန္ႏိုင္ေပမယ့္ အေတာ္မ်ားမ်ားမွာေတာ့ တျခား အဓိပၸါယ္ သက္ေရာက္ပါတယ္။ Virtualization ဆုိတာကို ေျပာရမယ္ဆိုရင္ ကြန္ျပဴတာ အရင္းအျမစ္ေတြ (Resource) ကို ျခားနာစြာ စိတ္ကူး သိျမင္ခံယူျခင္း (Abstraction) ျဖစ္ပါတယ္။ Wikipedia က Virtualization ကို ဒီလို ဆိုပါတယ္။

Virtualization hides the physical characteristics of computing resources from their users, be they applications, or end users.
ေယဘုယ်အားျဖင့္ Virtualization အုပ္စု ႏွစ္မ်ိဳး ႐ွိပါတယ္။
  • Physical Resource တစ္ခုထဲကို Virtual Resource အမ်ားႀကီး လုပ္ျခင္းနဲ႔
  • Physical Resource အမ်ားႀကီးကို Virtual Resource တစ္ခုတည္း လုပ္ျခင္းတို႔ ျဖစ္ပါတယ္။
Resource လို႔ ဆိုရာမွာ ကိုင္တြယ္လို႔ ရတဲ့ Server ေတြ၊ Storage Device ေတြျဖစ္ႏိုင္သလို ကိုင္တြယ္လို႔ မရတဲ့ Operating System ေတြ၊ Application ေတြလည္း ျဖစ္ႏိုင္ပါတယ္။ Network ေတြနဲ႔ အင္တာနက္ႀကီး တစ္ခုလံုးဟာလည္း Resource ေတြပါပဲ။

Virtualization ကို အသံုးခ်ေနတာေတြကေတာ့
  1. Server Virtualization
  2. Client / Desktop / Application Virtualization
  3. Network Virtualization
  4. Storage Virtualization
  5. Service / Application Infrastructure Virtualization တို႔ ျဖစ္ပါတယ္။
1. Server Virtualization
Server Virtualization ဆိုတာ တကယ္႐ွိတဲ့ Server တစ္လံုးတည္းကို Virtual Server ေတြ ခြဲသံုးျခင္းပါ။ ဒီလို သံုးလို႔ ရေအာင္ Hypervisor က လုပ္ေပးပါတယ္။ Hypervisor ဆုိတာ Virtual Server (Guest) နဲ႔ Hardware (Host) ၾကားက Software layer တစ္ဆင့္ျဖစ္ပါတယ္။ အခုေနာက္ပိုင္းမွာ Hypervisor က Hardware လည္း ျဖစ္ႏိုင္ပါတယ္။ Hypervisor ႏွစ္မ်ိဳး႐ွိပါတယ္။
  • တစ္မ်ိဳးက Guest ေတြက ပင္ရင္း Hardware ေပၚမွာ တိုက္႐ိုက္ Run တာျဖစ္ၿပီး (ဥပမာ Citrix Xenserver)
  • ေနာက္တစ္မ်ိဳးက Guest ေတြက Third Level ကေန Run တာပါ။ (ဥပမာ Apple ကြန္ျပဴတာမွာ Windows သံုးခ်င္ရင္ Parallel Desktop နဲ႔ သံုးသလိုမ်ိဳးပါ။ Hardware နဲ႔ တကယ္ ထိေတြ႔ေနတာက Mac OS ပါ။)
Server Virtualization ေၾကာင့္ ေကာင္းတဲ့ အခ်က္ေတြကေတာ့
  • ကိုယ့္မွာ ႐ွိတဲ့ Hardware ေတြကို အျပည့္အ၀ အသံုးခ်လို႔ရတယ္။ ေ၀မွ်သံုးစြဲလို႔ ရတယ္။ အဲဒီအတြက္ စားရိတ္ေတြ၊ စြမ္းအင္ (မီတာခ)ေတြ သက္သာမယ္။
  • Isolation (ထီးတည္းျခားထားျခင္း) ေၾကာင့္ Security ပိုေကာင္းပါတယ္။
  • Software Developer ေတြက မတူညီတဲ့ Environment ေတြ သူ႔စက္ တစ္လံုးတည္းမွာ Install လုပ္လို႔ ရလာတယ္။
မေကာင္းတာေတြကေတာ့
  • ဆာဗာ အလံုးအေရအတြက္ နည္းသြားလို႔ Administration က ပိုမလြယ္သြားႏိုင္ပါဘူး။ ဒီလို Virtualize လုပ္ဖို႔အတြက္ ပိုကၽြမ္းက်င္တဲ့ သူေတြ လိုလာပါမယ္။
  • Software လိုင္စင္ေတြကလည္း Virtualization ေသာ ဘာေသာ မသိပါဘူး။ ႏွစ္ခါ Install လုပ္ရင္ ႏွစ္ခါစာ ေပးရပါမယ္။
  • CPU တို႔ RAM တို႔ကို မွ်ေ၀သံုးစြဲရတဲ့ အတြက္ Performance က်သြားမွာပါ။
2. Application / Desktop Virtualization
ဆာဗာေတြမွာတင္ မဟုတ္ Desktop နဲ႔ Application ေတြမွာပါ Virtualize လုပ္လို႔ ရပါတယ္။ Application နဲ႕ Desktop ကို Virtualize လုပ္တဲ့ အခါ Local နဲ႔ Hosted ဆိုၿပီး ႏွစ္မ်ိဳး ထပ္ခြဲျပန္တယ္။
  • Hosted Application Virtualization ကေတာ့ Google Documents လုိမ်ိဳးျဖစ္ၿပီး
  • Local Application Virtualization ကေတာ့ သံုးခ်င္တဲ့ အခါက်မွ Streaming လုပ္ၿပီး သံုးတာမ်ိဳးပါ။ ဒီလို Streaming လုပ္ဖို႔ ကုိယ့္စီမွာေတာ့ Starter Application ေသးေသးတစ္ခု ႐ွိထားရပါတယ္။ ဥပမာ VMware Player လိုမ်ိဳးပါ။
Application ေတြ Virtualize လုပ္တဲ့ အတြက္ ေကာင္းတာေတြကေတာ့
  • ျပင္တာတို႕ ထပ္တိုးတာတို႔ကို ဗဟိုကေန ထိန္းခ်ဳပ္လို႔ ရပါတယ္။
  • ႀကိဳက္တဲ့ ေနရာကေန Access လုပ္လို႔ (သံုးလို႔) ရလာပါတယ္။ ဥပမာ Google Documents ကို အိမ္မွ၊ ႐ံုးမွ သံုးသလိုပါ။
မေကာင္းတဲ့ အခ်က္ေတြကေတာ့
  • (Local) Virtual Application ေတြ သံုးရင္ CPU တို႔ RAM တို႔ အစ႐ွိတဲ့ Resource ေတြ ပိုစားပါတယ္။
  • Application တိုင္းကို Virtualize လုပ္လို႔ မရႏိုင္ပါဘူး။
Desktop Virtualization ကေတာ့ Server-centric Computing Model ကေန ဆင္းသက္လာတဲ့ Thin-client Model မ်ိဳးျဖစ္ပါတယ္။
  • Hosted Desktop Virtualization ကေတာ့ Microsoft Terminal Service လိုမ်ိဳးပါ။ အခုေနာက္ပိုင္းမွာ Web OS ေတြ စမ္းသပ္လာပါၿပီ။
  • Local Desktop Virtualization ကေတာ့ အထက္မွာ ေျပာဖူးတဲ့ Parallel Desktop လိုမ်ိဳးပါ။
3. Network Virtualization
Application ေတြ Server ေတြကိုသာမက Network ႀကီးတစ္ခုလံုးကိုလည္း Virtualize လုပ္ပါတယ္။ Wikipedia က ဒီလိုဆိုပါတယ္။
In computing, network virtualization is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network.
Network Virtualization မွာPlatform Virtualization နဲ႔ Resource Virtualization ဆိုၿပီး ႐ွိပါေသးတယ္။ VPN (Virtual Private Network) ကေတာ့ System Administrator ေတြၾကား ေခတ္အစားဆံုးျဖစ္ၿပီး မသိမျဖစ္လို ျဖစ္လာပါတယ္။ အင္တာနက္ ကြန္ယက္ထဲက ကိုယ့္ရဲ႕ Resource ေလးေတြကိုပဲ Virtualize လုပ္ထားတဲ့ အတြက္ Isolate ျဖစ္ၿပီး Security ပိုေကာင္းလာပါတယ္။ Network ေတြကို ေပါင္းၿပီး (Consolidate) လုပ္ၿပီး Network ႀကီးတစ္ခုအျဖစ္ ဖန္တီးထားႏိုင္တဲ့ အတြက္ Manage လုပ္ရတာ ပိုလြယ္လာပါတယ္။

4. Storage Virtualization
Storage Virtualization ကေတာ့ တစ္မ်ိဳးပါ။
Storage virtualization refers to the process of abstracting logical storage from physical storage.
Hard Disk Array ေတြနဲ႔ RAID ေတြ လုပ္ျခင္းဟာ Virtualize လုပ္ျခင္း အေျခခံပါပဲ။ Data Migration တုိ႔ Caching တို႔ကလည္း Storage Virtualization ထဲမွာ  ပါပါတယ္။ Storage Virtualization ေၾကာင့္ Data ေတြကို သံုးေနခ်ိန္မွာ System ကို Interrupt မျဖစ္ေစဘဲ Migrate လုပ္ႏိုင္တယ္။ Storage ကို ထပ္ခ်ဲ႕ႏိုင္တယ္။ Storage Device ေတြကို Over Utilize မျဖစ္ေအာင္ Under Utilize မျဖစ္ေအာင္ ေကာင္းစြာ အသံုးခ်ႏိုင္တယ္။ Storage Virtualization မွာ အေရးႀကီးဆံုးကေတာ့ Metadata (Mapping) ေတြပါပဲ။ Mapping ေတြက Physical Storage နဲ႔ Logical Storage ကို တြဲေပးပါတယ္။  ဥပမာ Windows က FAT (File Allocation Table) လိုမ်ိဳးပါ။

5. Service / Application Infrastructure Virtualization
ဒီေနရာမွာေတာ့ Service ေတြ Application ေတြကို Infrastructure ကေန Virtualize လုပ္ထားတာပါ။ အဲဒီအတြက္ Service Appplication ေတြ Develop လုပ္တဲ့ သူေတြက Infrastructure အေၾကာင္း သိစရာမလိုဘဲ Develop လုပ္ႏိုင္လာပါတယ္။ ဒီလို Infrastructure ေတြျဖစ္တဲ့ O/S ေတြ Hardware ေတြနဲ႔ Application ေတြကို ျခားနားေပးတဲ့ Layer ေတြကို Application Fabrics ေတြလို႔လည္း ေျပာပါတယ္။ Application Developer က အဲဒီ Layer အတြက္ပဲ စဥ္းစားၿပီး Develop လုပ္႐ံုပဲ။ အဲဒီ Layer က Infrastructure နဲ႔ ဆက္သြယ္ အလုပ္လုပ္သြားမယ္။ အဲဒီ Layer ေတြကလည္း မတူညီတဲ့ Infrastructure ေတြမွာ အလုပ္လုပ္ႏိုင္ေအာင္ စြမ္းေဆာင္ရည္ ႐ွိရမယ္။

အထက္ပါ အခ်က္ေတြ ေလ့လာၿပီးရင္ေတာ့ Virtualization ဆိုတာကို အဓိပၸါယ္ သိႏိုင္ပါၿပီၤ။ အတိုဆံုး ေျပာရမယ္ဆိုရင္
Virtualization is abstracting resource.
ျမန္မာလို ဆိုရင္ေတာ့
ကြန္ျပဴတာ အရင္းအျမစ္မ်ားကို ျခားနာစြာ ခံယူ အသံုးခ်ႏိုင္ေအာင္ ျပဳလုပ္ျခင္းျဖစ္သည္။

9 comments:

သဥၨာ - Thinzar - 7/3/08, 11:47 AM

Virtualization ဆိုရင္ VMWare နဲ့ VPN ေလာက္ဘဲ သိခဲ့တာ။ အခုမွ ဒီေလာက္ အမ်ားၾကီး ရွိတယ္ဆိုတာ သိလိုက္ရတယ္။ Google Docs က Hosted Application Virtualization တစ္မ်ိဳးကိုး။ Service / Application Infrastructure Virtualization ဆိုတာ စိတ္၀င္စားစရာဘဲ။ တကယ္ကို ေကာင္းတဲ့ ပို့စ္ေလး တစ္ပုဒ္ပါဘဲ။ :)

Andy Myint - 7/6/08, 10:53 PM
IT Post ကို စိတ္၀င္စားမယ့္သူ႔ ႐ွိပါ့မလား ထင္ေနတာ.. အားေပးတဲ့ သူ႐ွိလို႔ ေတာ္ေသးတယ္။ ေက်းဇူပါ ညီမသဥၨာ။
သဥၨာ - Thinzar - 7/8/08, 6:53 PM

comment ထပ္ေရးဦးမယ္။ ကိုAndy ေရးတဲ့ IT ပို့စ္ေတြက အရမ္း စိတ္၀င္စားဖို့ ေကာင္းတယ္။ အရင္တစ္ခါ SQL post ကိုလည္း အရမ္းၾကိဳက္တယ္။ စိတ္ရွည္လက္ရွည္နဲ့ ရွင္းျပေလ့ရွိတာေၾကာင့္ ဖတ္ျပီးရင္ မွတ္မိေနတယ္။

Anonymous - 8/8/08, 11:20 PM

Hello! I wanna read more about IT. Thanks.

Andy Myint - 8/10/08, 6:12 PM
အားေပးတဲ့သူ မ်ားရင္ ေရးမယ္ေလ... အဲ..ေနာက္တာ။ အခ်ိန္ရရင္ ရသလို အာ႐ုံရရင္ ရသလို ေရးသြားပါမယ္ စာဖတ္သူ။
စံပယ္ပန္း - 6/28/11, 1:27 PM

အစ္ကိုခင္ဗ်ား

အိုင္တီပို႔စ္မ်ားမ်ားတင္ေပးပါဦးခင္ဗ်ား..။ အစ္ကို႔ရဲ႔ ဒီအိုင္တီပို႔စ္ေတြကို myanmarengineer.org မွာၿပန္တင္ခ်င္ပါတယ္ခင္ဗ်ာ..။ Credit ကို အစ္ကိုဆိုဒ္လိပ္စာထည္႔ေပးပါမယ္..။ တင္လို႔ရမရ အစ္ကိုအေၾကာင္းၿပန္ေပးပါခင္ဗ်ာ..။ အစ္ကိုခြင္႔ၿပဳတယ္ဆိုမွ တင္မွာပါ..။


ခင္မင္စြာၿဖင္႔

မစံပယ္

Andy Myint - 6/28/11, 2:07 PM
Yes, I'd be glad to. Please feel free to use it.
Anonymous - 5/22/14, 3:53 PM

ေက်းဇူးတင္ပါတယ္

Stringlive - 4/6/15, 10:22 PM

Asp.Net Programming Wiki Facebook Page မွာ ဒီပုိ႔စ္ေလးကုိ Credit ေပးျပီး ျပန္လည္ေ၀မွ် ထားပါတယ္။

Post a Comment

Many thanks for dropping a comment…

Film