နားလည်ထားရမယ့် အချက်
Cloud computing ဆိုတာ server၊ storage၊ database၊ networking လို computing resource တွေကို ကိုယ်ပိုင် hardware ပေါ်မှာ မဟုတ်ပဲ တခြားသူတစ်ယောက်က network ကတစ်ဆင့် ပေးနေတာကို သုံးတာပါ။ "တစ်ယောက်ယောက်ရဲ့ computer" ဆိုတာ ရှေးရိုးပြက်လုံးတစ်ခုပါ၊ starting point အနေနဲ့တော့ ကောင်းပါတယ်။
ဒါပေမယ့် ဒါက underselling ဖြစ်ပါတယ်။ Cloud platform တွေက backup ကိုယ်တိုင်ကိုင်တွယ်တဲ့ database၊ hardware failure survive ဖို့ ဆောက်ထားတဲ့ storage၊ specialized team လိုအပ်မယ့် networking လို managed services တွေကို ပေးပါတယ်။ Machine ရုံသက်သက်မဟုတ်ပဲ expertise ကို rent လုပ်နေတာပါ။
| Model | Control vs Convenience |
|---|---|
| IaaS | Control အများဆုံး — OS နဲ့ runtime ကို ကိုယ်တိုင်ကိုင်တွယ်ရ၊ ဥပမာအသုံးချမှု - custom server setup၊ specialized workload။ |
| PaaS | မျှတသော — code ကို deploy ပြီး server/scaling ကို platform ကိုင်တွယ်၊ ဥပမာအသုံးချမှု - web application အများစု။ |
| SaaS | Convenience အများဆုံး — ပြီးစီးထားတဲ့ app ကို သုံးရုံ၊ ဘာမှ ကိုင်တွယ်စရာမလို၊ ဥပမာအသုံးချမှု - email၊ CRM၊ support tool။ |
IaaS ကနေ SaaS ဆီ ရွှေ့တာက control ကို convenience အတွက် လဲလှယ်ပေးတာပါ၊ ဘက်တစ်ဘက်မှ universal မှန်ကန်တာမဟုတ်ပါ — project တစ်ခုက ဘာကိုယ်တိုင်ကိုင်တွယ်ဖို့ လိုအပ်လဲဆိုတာအပေါ် မူတည်ပါတယ်။
- IaaS
- Virtual server၊ storage၊ networking လို raw computing building block တွေကို rent လုပ်ပြီး OS နဲ့ အပေါ်ဆုံးအရာအားလုံးကို ကိုယ်တိုင်ကိုင်တွယ်ရတဲ့ Infrastructure as a Service။
- PaaS
- Application code ကို deploy လုပ်ရုံပဲ လိုပြီး underlying server၊ OS၊ scaling ကို platform က automatic ကိုင်တွယ်ပေးတဲ့ Platform as a Service။
- SaaS
- Infrastructure ဘယ်လိုမျိုးမှ ကိုင်တွယ်စရာမလိုပဲ ပြီးစီးထားတဲ့ application ကို internet ကတစ်ဆင့် သုံးရတဲ့ Software as a Service။
IAAS TO SAAS: ABSTRACTION INCREASES
-----------------------------------
[MORE CONTROL, MORE WORK] [LESS CONTROL, LESS WORK]
IaaS --------> PaaS --------> SaaS
(servers, (deploy code, (use the app,
storage, platform nothing to
networking) handles rest) manage)လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Model ရွေးချယ်တာက operational responsibility ပေါ် ပုံမှန်မူတည်ပါတယ်။ OS ဒါမှမဟုတ် version အတိအကျပေါ် deep control လိုရင် IaaS၊ server configure မလုပ်ပဲ code ရေးချင်ရင် PaaS၊ platform မဟုတ်ပဲ capability တစ်ခုသာ လိုအပ်ရင် SaaS ကို ညွှန်ပြပါတယ်။
Organization အစစ်များစုက အားလုံးအတွက် model တစ်ခုတည်း မရွေးပဲ ရောစပ်ကြပါတယ် — core application ကို PaaS ပေါ်၊ internal operations အတွက် SaaS tool များစွာ၊ managed platform ဘယ်ဟာမှ မပေးတဲ့ configuration လိုအပ်လို့ specialized workload တစ်ခုကို IaaS ပေါ်။
- OS ဒါမှမဟုတ် software version အတိအကျပေါ် control လိုအပ်သလား -> IaaS
- Code ကို deploy ရုံလုပ်ပြီး server ကို platform ကိုင်တွယ်စေချင်သလား -> PaaS
- Build လုပ်ဖို့ platform မဟုတ်ပဲ အလုပ်လုပ်တဲ့ tool တစ်ခုသာ လိုအပ်သလား -> SaaS
အတူတူ စမ်းရေးကြည့်မယ်
function recommendModel(wantsToManage) {
if (wantsToManage === "servers-and-os") return "IaaS";
if (wantsToManage === "just-my-code") return "PaaS";
return "SaaS";
}
const preferences = ["servers-and-os", "just-my-code", "nothing-just-use-the-app"];
for (const pref of preferences) {
console.log(`${pref} -> ${recommendModel(pref)}`);
}servers-and-os -> IaaS
just-my-code -> PaaS
nothing-just-use-the-app -> SaaS
(preference string အလိုက် model အသင့်တော်ဆုံးကို toy function က ရွေးချယ်ပေးတာပါ)၅ မိနစ် စမ်းကြည့်
preferences array ထဲ 'i-just-need-email' လို စတုတ္ထ preference string တစ်ခု ထည့်ပြီး ရှိပြီးသား case သုံးခုကို မပျက်စီးစေပဲ 'SaaS' ကို မှန်ကန်စွာ ပြန်ပေးနိုင်ဖို့ recommendModel() ကို condition တစ်ခုထပ် extend လုပ်ပါ။
သတိလေးတစ်ချက်
PaaS ပေါ်မှာ ပုံမှန်အလုပ်ဖြစ်နိုင်တဲ့ web app ရိုးရိုးလေးအတွက် IaaS ကို ရွေးမိပြီး အကျိုးမရှိတဲ့ server maintenance work ကို ထမ်းရွက်နေရတာ။
SaaS tool တွေက decision ဘာမှ မလိုဘူးလို့ ထင်မှတ်တာ — data ownership၊ export option၊ vendor lock-in တွေက အရေးပါနေဆဲပါ။
NIST SP 800-145: The NIST Definition of Cloud Computing — Cloud & Deployment