Thuta Learning
Cloud Providers & Platforms
ProjectsDevOps & Toolsintermediate

Project: Platform ရွေးချယ်ရေး ဓာတ်ခွဲခန်း

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

  • Project: Platform ရွေးချယ်ရေး ဓာတ်ခွဲခန်း concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram/table ကို ဖတ်ပြီး platform/provider category တွေ ဘယ်လို ကွာခြားသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် project အတွက် ဘယ် platform category ကို ဘယ်လို ရွေးချယ်သင့်သလဲ ရှင်းပြနိုင်ရန်

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

ဤ project သည် Advanced chapter တစ်ခုလုံးက တည်ဆောက်ခဲ့သော platform decision guide, major-cloud comparison, modern-platform comparison, နှင့် BaaS comparison အားလုံးအတွက် ပထမဆုံး checkpoint ဖြစ်သည်။ provider တစ်ခုတည်းအကြောင်း အချက်အလက်အသစ် ထပ်ထည့်မည့်အစား၊ သင်နှိုင်းယှဉ်ပြီးသား အချက်များကို လက်တွေ့ကျသော ကန့်သတ်ချက်များအောက်တွင် ပေါင်းစပ်အသုံးချရန် တောင်းဆိုထားသည်။

  • Platform decision guide - category ရွေးချယ်ရေးအတွက် need-flag framework
  • Major-cloud comparison - AWS vs Google Cloud vs Azure ၏ tradeoff
  • Modern-platform comparison - Vercel/Netlify/Railway/Render/Cloudflare tier
  • BaaS comparison - Supabase vs Firebase ပုံစံ tradeoff
  • Multi-cloud and vendor lock-in - vendor တစ်ခုတည်းပေါ် မှီခိုမှု၏ ရလဒ်
Workloadသက်ဆိုင်ရာ Framework
Marketing sitemodern-platform comparison ၏ static-hosting/CDN tier
SaaS productBaaS comparison + major-cloud comparison
Background-worker backendplatform decision guide ၏ long-running-process filter
AI app (spiky usage)decision guide ၏ cost-shape ဆင်ခြင်မှု + vendor lock-in lesson

ပန်းတိုင်မှာ workload တစ်ခုစီအတွက် platform CATEGORY တစ်ခုသာ ဖြစ်ပြီး၊ specific vendor mandate မဟုတ်ပါ။ product name တစ်ခုကို အလွတ်ကျက်နေခြင်းမဟုတ်ဘဲ decision guide က သင်ကြားပေးသော ဆင်ခြင်တုံတရားကို လေ့ကျင့်နေခြင်းသာ ဖြစ်သည်။ မှန်ကန်သော အဖြေတစ်ခုသည် category ကို အမည်တပ်ပြီး၊ မည်သည့် need-flag များက ထိုရွေးချယ်မှုကို ဖြစ်ပေါ်စေသည်ကို ဖော်ပြရမည်။

အမည်တင်ရုံမက ဆင်ခြင်တုံတရားပါ ဖော်ပြပါ

မှန်ကန်သော category ကို အမည်တပ်ရုံနှင့် မည်သည့် need-flag က ဖြစ်ပေါ်စေသည်ကို မဖော်ပြပါက skill ကို မပြသနိုင်ပါ — တစ်ကြောင်းတည်းသော justification ကသာ တကယ့် deliverable ဖြစ်သည်။

text
WORKLOAD TO PLATFORM CATEGORY MAP
---------------------------------
1. Marketing / portfolio site
   -> Static hosting / CDN platform (Jamstack)

2. Full-stack SaaS (accounts + database)
   -> BaaS-backed or full-stack PaaS platform

3. Long-running Node.js backend + background workers
   -> Container/VM-based PaaS (persistent compute)

4. AI app calling external API (spiky, unpredictable usage)
   -> Serverless functions / scale-to-zero platform

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Marketing site

server-side logic နှင့် user data လုံးဝမရှိကြောင်း အတည်ပြုပါ — ဒါက static hosting နှင့် CDN ကို တိုက်ရိုက်ညွှန်ပြသည်။

SaaS product

account နှင့် database ပေါင်းစပ်ပါဝင်ကြောင်း သတိပြုပါ — ဒါက BaaS comparison lesson ထဲက BaaS-or-full-stack-PaaS ပုံစံပင်။

Background-worker backend

long-running-process အဖြေက 'ဟုတ်သည်' ဖြစ်ပြီး ကျန်အားလုံးကို override လုပ်ကာ static hosting နှင့် serverless function ကို ချက်ချင်း ပယ်ချသည်။

AI app

traffic သည် external API ခေါ်ဆိုမှုပတ်ဝန်းကျင်တွင် ခန့်မှန်းမရဘဲ ဖြစ်နေပြီး serverless သို့မဟုတ် scale-to-zero compute ကို ညွှန်ပြသည်။

Run လုပ်ပြီး နှိုင်းယှဉ်ပါ

selectPlatformCategory ကို workload လေးခုလုံးအပေါ် run လုပ်ပြီး ရလဒ်ကို သင့်ဆင်ခြင်တုံတရားနှင့် နှိုင်းယှဉ်ကာ AI app ၏ ရွေးချယ်မှုကို vendor-lock-in lesson နှင့် စစ်ဆေးပါ။

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

javascript
function selectPlatformCategory(workload) {
  if (workload.needsLongRunningProcess) {
    return {
      workload: workload.name,
      category: "Container/VM-based PaaS (persistent compute)",
      justification:
        "Background workers and long-lived connections need a process that keeps running, which rules out request/response serverless functions and static hosting alike."
    };
  }

  if (workload.isStatic && !workload.needsDatabase && !workload.needsAuth) {
    return {
      workload: workload.name,
      category: "Static hosting / CDN platform (Jamstack)",
      justification:
        "No server-side logic or user data to store, so pre-built assets served from the edge are the cheapest and fastest fit."
    };
  }

  if (workload.trafficPattern === "unpredictable") {
    return {
      workload: workload.name,
      category: "Serverless functions / scale-to-zero platform",
      justification:
        "Usage spikes unpredictably around calls to an external API, so paying only for active invocations beats reserving capacity for a steady load that never arrives."
    };
  }

  return {
    workload: workload.name,
    category: "BaaS-backed or full-stack PaaS platform",
    justification:
      "Steady traffic plus accounts and a database is the core full-stack shape a BaaS or a managed PaaS handles well without hand-rolled infrastructure."
  };
}

const workloads = [
  {
    name: "Marketing / portfolio site",
    isStatic: true,
    needsDatabase: false,
    needsAuth: false,
    needsLongRunningProcess: false,
    trafficPattern: "steady"
  },
  {
    name: "Full-stack SaaS product (accounts + database)",
    isStatic: false,
    needsDatabase: true,
    needsAuth: true,
    needsLongRunningProcess: false,
    trafficPattern: "steady"
  },
  {
    name: "Long-running Node.js backend with background workers",
    isStatic: false,
    needsDatabase: true,
    needsAuth: false,
    needsLongRunningProcess: true,
    trafficPattern: "steady"
  },
  {
    name: "AI-powered app calling an external AI API (spiky usage)",
    isStatic: false,
    needsDatabase: false,
    needsAuth: true,
    needsLongRunningProcess: false,
    trafficPattern: "unpredictable"
  }
];

workloads.map(selectPlatformCategory).forEach((result) => {
  console.log(`${result.workload}\n  -> ${result.category}\n  (${result.justification})\n`);
});
You should see
selectPlatformCategory ကို workload လေးခုအပေါ် run လုပ်လျှင်- marketing site သည် 'Static hosting / CDN platform (Jamstack)' သို့၊ SaaS product သည် 'BaaS-backed or full-stack PaaS platform' သို့၊ background-worker backend သည် 'Container/VM-based PaaS (persistent compute)' သို့၊ AI app သည် 'Serverless functions / scale-to-zero platform' သို့ သက်ဆိုင်ကြောင်း justification တစ်ကြောင်းစီနှင့်အတူ print ထုတ်ပါလိမ့်မည်။

၅ မိနစ် စမ်းကြည့်

workload ပဉ္စမတစ်ခုကို ကိုယ်တိုင်ထပ်ထည့်ပါ — ဥပမာ ညတိုင်း schedule အတိုင်း run လုပ်သော data-pipeline job တစ်ခု — ရှိပြီးသား လေးခုက မလုံလောက်ပါက selectPlatformCategory ၏ need-flag များကို တိုးချဲ့ပါ။ function ကလုပ်သကဲ့သို့ပင် သင့်ရဲ့ category ရွေးချယ်မှုကို တစ်ကြောင်းတည်းဖြင့် justify ပါ။

သတိလေးတစ်ချက်

workload ၏ need-flag များကို အမှန်တကယ် စာရင်းမပြုစုမီ vendor အတိအကျကို ရွေးချယ်ခြင်း — ဒါက ဤ project က လေ့ကျင့်ပေးလိုသော ဆင်ခြင်တုံတရားအဆင့်ကို ကျော်သွားစေသည်။

traffic pattern ကိုသာ တစ်ခုတည်းသော အချက်အဖြစ် သဘောထားပြီး long-running process လိုအပ်ခြင်းလို hard filter ကို လျစ်လျူရှုခြင်း — ဒါက ကျန်အားလုံးထက် ပိုအရေးကြီးနိုင်သည်။

Google Cloud - IaaS vs PaaS vs SaaSCloud Providers & Platforms

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

  • workload ၏ need-flag များကို အမှန်တကယ် စာရင်းမပြုစုမီ vendor အတိအကျကို ရွေးချယ်ခြင်း — ဒါက ဤ project က လေ့ကျင့်ပေးလိုသော ဆင်ခြင်တုံတရားအဆင့်ကို ကျော်သွားစေသည်။
  • traffic pattern ကိုသာ တစ်ခုတည်းသော အချက်အဖြစ် သဘောထားပြီး long-running process လိုအပ်ခြင်းလို hard filter ကို လျစ်လျူရှုခြင်း — ဒါက ကျန်အားလုံးထက် ပိုအရေးကြီးနိုင်သည်။
  • ဒီ course က provider/platform landscape ကို comparison-level မှာသာ သင်ပေးပါတယ် — AWS, Docker, CI/CD, Firebase, deployment fundamentals ကို နက်နက်ရှိုင်းရှိုင်း လေ့လာချင်ရင် AWS Fundamentals, Docker, CI/CD, Firebase, Cloud & Deployment tutorial တွေဆီ ဆက်သွားပါ။

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

workload ပဉ္စမတစ်ခုကို ကိုယ်တိုင်ထပ်ထည့်ပါ — ဥပမာ ညတိုင်း schedule အတိုင်း run လုပ်သော data-pipeline job တစ်ခု — ရှိပြီးသား လေးခုက မလုံလောက်ပါက selectPlatformCategory ၏ need-flag များကို တိုးချဲ့ပါ။ function ကလုပ်သကဲ့သို့ပင် သင့်ရဲ့ category ရွေးချယ်မှုကို တစ်ကြောင်းတည်းဖြင့် justify ပါ။

You'll know it worked when: selectPlatformCategory ကို workload လေးခုအပေါ် run လုပ်လျှင်- marketing site သည် 'Static hosting / CDN platform (Jamstack)' သို့၊ SaaS product သည် 'BaaS-backed or full-stack PaaS platform' သို့၊ background-worker backend သည် 'Container/VM-based PaaS (persistent compute)' သို့၊ AI app သည် 'Serverless functions / scale-to-zero platform' သို့ သက်ဆိုင်ကြောင်း justification တစ်ကြောင်းစီနှင့်အတူ print ထုတ်ပါလိမ့်မည်။