Thuta Learning
Cloud & Deployment
IntermediateDevOps & Toolsbeginner

Cloud Computing နှင့် Service Models (IaaS/PaaS/SaaS)

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Cloud Computing နှင့် Service Models (IaaS/PaaS/SaaS) concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram ကို ဖတ်ပြီး architecture ထဲမှာ request/data ဘယ်လိုစီးဆင်းသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် project အတွက် ဘယ်လို ဆုံးဖြတ်သင့်သလဲ ရှင်းပြနိုင်ရန်

နားလည်ထားရမယ့် အချက်

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 လုပ်နေတာပါ။

ModelControl vs Convenience
IaaSControl အများဆုံး — OS နဲ့ runtime ကို ကိုယ်တိုင်ကိုင်တွယ်ရ၊ ဥပမာအသုံးချမှု - custom server setup၊ specialized workload။
PaaSမျှတသော — code ကို deploy ပြီး server/scaling ကို platform ကိုင်တွယ်၊ ဥပမာအသုံးချမှု - web application အများစု။
SaaSConvenience အများဆုံး — ပြီးစီးထားတဲ့ 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။
text
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

အတူတူ စမ်းရေးကြည့်မယ်

javascript
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)}`);
}
You should see
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 ComputingCloud & Deployment

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • PaaS ပေါ်မှာ ပုံမှန်အလုပ်ဖြစ်နိုင်တဲ့ web app ရိုးရိုးလေးအတွက် IaaS ကို ရွေးမိပြီး အကျိုးမရှိတဲ့ server maintenance work ကို ထမ်းရွက်နေရတာ။
  • SaaS tool တွေက decision ဘာမှ မလိုဘူးလို့ ထင်မှတ်တာ — data ownership၊ export option၊ vendor lock-in တွေက အရေးပါနေဆဲပါ။
  • Localhost မှာ အလုပ်လုပ်တာနဲ့ Production မှာ အလိုအလျောက်အလုပ်လုပ်မယ်လို့ မယူဆပါနှင့် — environment, network, database, security ကွာခြားချက်တွေ ရှိနိုင်ပါတယ်။

လေ့ကျင့်ခန်း

preferences array ထဲ 'i-just-need-email' လို စတုတ္ထ preference string တစ်ခု ထည့်ပြီး ရှိပြီးသား case သုံးခုကို မပျက်စီးစေပဲ 'SaaS' ကို မှန်ကန်စွာ ပြန်ပေးနိုင်ဖို့ recommendModel() ကို condition တစ်ခုထပ် extend လုပ်ပါ။

You'll know it worked when: servers-and-os -> IaaS just-my-code -> PaaS nothing-just-use-the-app -> SaaS (preference string အလိုက် model အသင့်တော်ဆုံးကို toy function က ရွေးချယ်ပေးတာပါ)

Cloud Computing နှင့် Service Models (IaaS/PaaS/SaaS) | Thuta Learning