Thuta Learning
Cloud Providers & Platforms
AdvancedDevOps & Toolsintermediate

Platform အမျိုးအစားမတူညီစွာ Observability

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

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

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

Cloud & Deployment ရဲ့ monitoring, logging, observability lesson သည် metrics, logs, traces နှင့် ဘာကြောင့် သုံးမျိုးလုံးလိုအပ်သလဲဆိုတဲ့ fundamental များကို ဖော်ပြပြီးဖြစ်သည်။ ထို lesson မဖော်ပြခဲ့သည်မှာ သင့်ရဲ့ default observability depth သည် ဘယ် platform အမျိုးအစားအပေါ် run နေသလဲအပေါ် လေးနက်စွာ မူတည်နေခြင်းနှင့် platform တစ်ခု ရွေးချယ်ခြင်းသည် box ထဲက ဘာမြင်ရမလဲ vs ကိုယ်တိုင် ဘာထပ်ထည့်ရမလဲကို တိတ်တိတ်ဆိတ်ဆိတ် ရွေးချယ်ခြင်းနှင့်တူသည်။

Platform TypeDefault Observability
Major CloudMetrics, distributed tracing, log aggregation အသေးစိတ် — power အများဆုံးသော်လည်း deliberate setup အလုပ်အများဆုံးလည်း လိုအပ်သည်
PaaS-styleRequest count, error rate, basic resource usage ကို ချက်ချင်း configuration မလိုဘဲ ပြသော်လည်း deep custom tracing ကို ပံ့ပိုးလေ့မရှိ
BaaSAuth events, DB query performance, storage activity ကို ရှင်းလင်းစွာ မြင်နိုင်သော်လည်း custom application logic ကို default အားဖြင့် ရှားရှားပါးပါး သာမြင်ရသည်

'ပိုပီပြင်' သည် မရှိပါ

ဘယ် platform မှ absolute အနေဖြင့် 'ပိုပီပြင်' သည်မဟုတ်ပါ — တစ်ခုချင်းစီသည် setup effort ကို depth နှင့် coverage အပေါ် မတူညီစွာ လဲလှယ်ထားပြီး မှန်ကန်သော platform ရွေးချယ်မှုသည် ဘယ် gap ကို ကိုယ်တိုင် ဖြည့်ချင်သလဲဆိုတာကို ထည့်စဉ်းစားရမည်။

text
OBSERVABILITY DEFAULTS BY PLATFORM TYPE
---------------------------------------
MAJOR CLOUD
  depth:  deep, highly configurable (metrics/tracing/logs)
  effort: high -- almost nothing works until you set it up

PaaS-STYLE (Vercel / Railway / Render kind)
  depth:  simple built-in logs + basic metrics
  effort: low -- works immediately, but has a low ceiling

BaaS
  depth:  strong for its own pieces (auth, DB, storage)
  effort: partial -- your own custom logic stays mostly dark
          unless you wire up logging inside it yourself

No platform type is "more observable" in general --
each trades setup effort against depth differently.

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

PaaS-style platform ပေါ်တွင် SaaS product သေးငယ်တစ်ခု run နေတယ်ဆိုပါစို့။ Box ထဲကတည်းက request log, basic error rate, simple metric ရရှိသည် — 'traffic ကျဆင်းသွားတယ်' (သို့) 'error spike ဖြစ်တယ်' ဆိုတာ သတိပြုမိလောက်သော်လည်း internal function call ငါးခုကို ဖြတ်သန်းနေသော request နှေးကွက်တစ်ခုကို trace လုပ်ပြီး bottleneck အတိအကျရှာရန်မလုံလောက်ပါ။

ဒီအဆင့်အထိ detail လိုအပ်ပါက dedicated tracing tool တစ်ခုကို ထပ်ထည့်ရဦးမည်ဖြစ်သည်၊ ဘာကြောင့်ဆိုတော့ platform ၏ built-in view သည် ထိုအထိ မရောက်ပါ။ ယခု team နောက်တစ်ခုကမူ backend ကို major cloud ပေါ်တွင် run သည်ဆိုပါစို့ — bottleneck-hunting လုပ်နိုင်သော tracing/metrics system ရရှိသော်လည်း တစ်စုံတစ်ယောက်က instrumentation, dashboard, alert rule များကို configure လုပ်ပြီးမှသာဖြစ်ပြီး PaaS ၏ basic log ကဲ့သို့ default အားဖြင့် ဘာမှ မရှိပါ။

BaaS ပေါ်တွင် တည်ဆောက်နေသော team တတိယတစ်ခုသည် login attempt မအောင်မြင်ခြင်းနှင့် database query နှေးကွင်းခြင်းကို platform ၏ ကိုယ်ပိုင်အပိုင်းများဖြစ်သောကြောင့် အလိုအလျောက် ကောင်းစွာ မြင်ရသော်လည်း ၎င်း၏ business logic run နေသော custom serverless function များကို code ထဲမှာ logging ကို တိုက်ရိုက် ချိတ်ဆက်ထားခြင်းမရှိပါက နီးပါးဘာမှ log မရနိုင်ပါ။

Case တိုင်းတွင် သင်ခန်းစာက တူညီသည်: platform တစ်ခုကို ကတိပြုခံမည့်မီ default အားဖြင့် ဘာပြသလဲ စစ်ဆေးပြီး ထို default နှင့် team က production issue debug လုပ်ရန် တကယ်လိုအပ်မည့်အရာကြားက ကျန်ရှိနေမည့် gap အတွက် တကယ့်အချိန်ကို budget ချထားပါ။

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

javascript
function assessObservabilityFit(platformType, needs) {
  const {
    needsCustomMetrics = false,
    needsDeepTracing = false,
    justNeedsUptimeAlerts = false,
  } = needs;

  const defaults = {
    "major-cloud": { customMetrics: true, deepTracing: true, uptimeAlerts: true, note: "capable but requires manual setup" },
    "paas": { customMetrics: false, deepTracing: false, uptimeAlerts: true, note: "works out of the box for basics only" },
    "baas": { customMetrics: false, deepTracing: false, uptimeAlerts: true, note: "strong for managed pieces, weak for your own code" },
  };

  const d = defaults[platformType];
  if (!d) return { sufficient: false, reason: "unknown platform type" };

  const needsList = [];
  if (needsCustomMetrics && !d.customMetrics) needsList.push("custom metrics tooling");
  if (needsDeepTracing && !d.deepTracing) needsList.push("dedicated tracing tool");
  if (justNeedsUptimeAlerts && !d.uptimeAlerts) needsList.push("uptime alerting");

  return {
    sufficientByDefault: needsList.length === 0,
    additionalToolingNeeded: needsList,
    note: d.note,
  };
}

console.log("Major cloud + deep tracing need:", assessObservabilityFit("major-cloud", { needsDeepTracing: true }));
console.log("PaaS + just uptime alerts:", assessObservabilityFit("paas", { justNeedsUptimeAlerts: true }));
console.log("BaaS + custom metrics need:", assessObservabilityFit("baas", { needsCustomMetrics: true }));
You should see
Major cloud + deep tracing: sufficientByDefault true (cloud native tracing ပါဝင်သော်လည်း manual setup လိုသေးသည်)
PaaS + uptime alerts only: sufficientByDefault true
BaaS + custom metrics: sufficientByDefault false, additionalToolingNeeded ['custom metrics tooling']

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

'paas' platform type ဖြင့် needsDeepTracing: true ကို ထည့်ကြည့်ပြီး ဘာ additionalToolingNeeded ရလာသလဲ ကြည့်ပါ

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

Major cloud ရဲ့ 'capable' status ကို 'default အားဖြင့် အသင့်ဖြစ်နေသည်' ဟု ရောထွေးနားလည်ခြင်း — setup မလုပ်ရသေးလျှင် အလုပ်မလုပ်ပါ

BaaS ၏ managed piece observability ကောင်းမွန်ခြင်းကို custom logic ကိုပါ ဖုံးလွှမ်းသည်ဟု ထင်ခြင်း

Wikipedia: Observability (software)Cloud Providers & Platforms

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

  • Major cloud ရဲ့ 'capable' status ကို 'default အားဖြင့် အသင့်ဖြစ်နေသည်' ဟု ရောထွေးနားလည်ခြင်း — setup မလုပ်ရသေးလျှင် အလုပ်မလုပ်ပါ
  • BaaS ၏ managed piece observability ကောင်းမွန်ခြင်းကို custom logic ကိုပါ ဖုံးလွှမ်းသည်ဟု ထင်ခြင်း
  • ဒီ course က provider/platform landscape ကို comparison-level မှာသာ သင်ပေးပါတယ် — AWS, Docker, CI/CD, Firebase, deployment fundamentals ကို နက်နက်ရှိုင်းရှိုင်း လေ့လာချင်ရင် AWS Fundamentals, Docker, CI/CD, Firebase, Cloud & Deployment tutorial တွေဆီ ဆက်သွားပါ။

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

'paas' platform type ဖြင့် needsDeepTracing: true ကို ထည့်ကြည့်ပြီး ဘာ additionalToolingNeeded ရလာသလဲ ကြည့်ပါ

You'll know it worked when: Major cloud + deep tracing: sufficientByDefault true (cloud native tracing ပါဝင်သော်လည်း manual setup လိုသေးသည်) PaaS + uptime alerts only: sufficientByDefault true BaaS + custom metrics: sufficientByDefault false, additionalToolingNeeded ['custom metrics tooling']