နားလည်ထားရမယ့် အချက်
Cloud service အားလုံးဟာ abstraction spectrum တစ်ခုပေါ်မှာ ရှိနေကြပါတယ်။
တစ်ဖက်စွန်းမှာ IaaS ရှိပြီး raw compute, storage, network ကို ပေးပါတယ်။ Server virtual machine ကို ကိုယ်တိုင် configure လုပ်ရသလိုမျိုးပါ — Control အများဆုံးရပေမယ့် responsibility လည်း အများဆုံးပါ။
အလယ်ကတော့ PaaS ပါ။ Provider က OS, runtime, patching, scaling ကို စီမံပေးပြီး code ကို push လိုက်ရုံနဲ့ app run နေတဲ့ platform လိုမျိုးပါ။
နောက်ဆုံး SaaS ပါ — ပြီးပြည့်စုံပြီးသား product တစ်ခုကို login ဝင်ပြီး အသုံးပြုရုံပါ။ Configure ဒါမှမဟုတ် code ရေးစရာ မလိုတော့ပါ။
| Model | Control & Responsibility |
|---|---|
| IaaS | အများဆုံး — OS/runtime/scaling ကိုယ်တိုင်စီမံ |
| PaaS | အလယ်အလတ် — app logic ကိုသာ ရေးရန် |
| SaaS | အနည်းဆုံး — product ကို အသုံးပြုရုံသာ |
အဆင့်ခွဲခြားမှု မဟုတ်ပါ
IaaS/PaaS/SaaS ဟာ ‘ဘယ်ဟာက ပိုကောင်းတယ်’ ဆိုတဲ့ အဆင့်ခွဲခြားမှု မဟုတ်ပါ — control နဲ့ convenience ကြား ရွေးချယ်ရမယ့် dial တစ်ခုသာ ဖြစ်ပါတယ်။
- IaaS
- Infrastructure as a Service — raw compute, storage, network resource ကို ပေးပြီး OS, runtime, application အားလုံးကို သင့်ဘက်က စီမံရသည့် model။
- PaaS
- Platform as a Service — provider က OS နှင့် runtime ကို စီမံပေးပြီး code ကို run ပေးသည့် managed application platform။
- SaaS
- Software as a Service — infrastructure/platform/application logic အားလုံးကို provider က ပိုင်ဆိုင်သည့် ပြီးပြည့်စုံသော ready-made product။
THE ABSTRACTION SPECTRUM
------------------------
THE ABSTRACTION SPECTRUM
--------------------------
MORE CONTROL MORE ABSTRACTION
| |
v v
[ IaaS ] -------> [ PaaS ] -------> [ SaaS ]
raw compute managed platform finished
storage, network push code, it runs product
you manage OS provider manages login and
+ runtime OS + runtime use it
MORE RESPONSIBILITY LESS RESPONSIBILITYလက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
IaaS/PaaS/SaaS ကို theory အနေနဲ့ မှတ်မိရုံထက် service တစ်ခုစီရဲ့ characteristic ကနေ classify လုပ်နိုင်ရင် ပိုနားလည်ပါတယ်။
အောက်က function ဟာ OS/runtime/application logic managed ပေးလား၊ ready-to-use product လား ဆိုတဲ့ boolean လေးလုံးကို ကြည့်ပြီး အမျိုးအစား ပြန်ဖြေပေးပါလိမ့်မယ်။
Raw virtual machine
ဘာမှ managed မလုပ်ဘူး → IaaS
Git-push app platform
OS/runtime managed ပေမယ့် logic ကိုယ်တိုင်ရေးရ → PaaS
Ready-made office tool
အားလုံး managed၊ login ဝင်ရုံသာ → SaaS
နောက်တစ်ဆင့်အနေနဲ့ သင်ကိုယ်တိုင်သုံးနေတဲ့ tool သုံးခုကို ရွေးပြီး characteristic ကိုယ်တိုင်ဖြည့်ကြည့်ပါ။
အတူတူ စမ်းရေးကြည့်မယ်
function classifyService(svc) {
if (svc.isReadyToUseProduct) return "SaaS";
if (svc.managesOS && svc.managesRuntime && !svc.managesApplicationLogic) return "PaaS";
if (!svc.managesOS && !svc.managesRuntime && !svc.managesApplicationLogic) return "IaaS";
return "Mixed / Unclear";
}
const rawVirtualMachine = {
managesOS: false,
managesRuntime: false,
managesApplicationLogic: false,
isReadyToUseProduct: false
};
const gitPushAppPlatform = {
managesOS: true,
managesRuntime: true,
managesApplicationLogic: false,
isReadyToUseProduct: false
};
const hostedOfficeSuite = {
managesOS: true,
managesRuntime: true,
managesApplicationLogic: true,
isReadyToUseProduct: true
};
console.log("Raw virtual machine:", classifyService(rawVirtualMachine));
console.log("Git-push app platform:", classifyService(gitPushAppPlatform));
console.log("Hosted office suite:", classifyService(hostedOfficeSuite));Raw virtual machine: IaaS
Git-push app platform: PaaS
Hosted office suite: SaaS၅ မိနစ် စမ်းကြည့်
သင်ကိုယ်တိုင်သုံးနေတဲ့ tool သုံးခုကို ရွေးပြီး boolean လေးလုံးကို ဖြည့်ကြည့်ပါ။ classify function ရဲ့ output ကို ခန့်မှန်းချက်နဲ့ နှိုင်းယှဉ်ကြည့်ပါ။
သတိလေးတစ်ချက်
PaaS ကို 'IaaS ထက် နိမ့်တယ်' လို့ အဆင့်ခွဲခြင်း — trade-off တစ်ခုသာ ဖြစ်ခြင်း
Service တစ်ခုကို static category တစ်ခုတည်းအဖြစ် ထင်ခြင်း — modern product အများစုက layer ရော ဖြစ်တတ်သည်
NIST Definition of Cloud Computing (service models) — Cloud Providers & Platforms