နားလည်ထားရမယ့် အချက်
Cloud provider ကြီးတိုင်းဟာ ကမ္ဘာတစ်ဝှမ်း data center တွေကို geographic area အလိုက် စုစည်းထားပါတယ်။ ဒီ area တစ်ခုစီကို region လို့ခေါ်ပါတယ်။
Region တစ်ခုချင်းစီအထဲမှာ availability zone လို့ခေါ်တဲ့ isolated location များစွာရှိပါတယ်— power supply, network, building တွေက တစ်ခုနဲ့တစ်ခု သီးခြားစီဖြစ်နေပါတယ်။
- Data location & compliance — user data ကို geographic boundary အတွင်း သိမ်းရန် law တောင်းဆိုနိုင်သည်
- Latency — user နှင့် data center အကွာအဝေး နည်းလေ response မြန်လေ
- Resilience — zone များစွာအတွင်း spread ထားလျှင် zone တစ်ခု down သွားလည်း ဆက်ရပ်တည်နိုင်သည်
Provider အလိုက် ကွာခြားချက်
Exact naming convention နဲ့ region count တွေ provider အလိုက် ကွာခြားနိုင်ပေမယ့် Provider → Region → Zone hierarchy concept ကတော့ တူညီပါတယ်။
- Region
- Cloud provider တစ်ခု operate လုပ်နေတဲ့ geographic area တစ်ခု — data location, latency, compliance ဆုံးဖြတ်ချက်များအတွက် base unit ဖြစ်သည်။
- Availability Zone
- Region တစ်ခုအတွင်းရှိ isolated location တစ်ခု — power, network, building သီးခြားစီရှိပြီး failure တစ်ခုကို တစ်ခုနှင့်တစ်ခု contain ထားပေးသည်။
PROVIDER -> REGION -> ZONE HIERARCHY
------------------------------------
PROVIDER -> REGION -> ZONE HIERARCHY
--------------------------------------
CLOUD PROVIDER
|
+---- REGION A (example: "east" area)
| |
| +-- Zone A1
| +-- Zone A2
| +-- Zone A3
|
+---- REGION B (example: "west" area)
|
+-- Zone B1
+-- Zone B2
Zones inside one region are isolated from each other:
separate power, network, and physical building.လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Region/zone theory ကို app တစ်ခုရဲ့ ခြေခံအခြေအနေနှစ်ခုနဲ့ ချိတ်ဆက်ကြည့်ရအောင်: user base geography နဲ့ redundancy requirement။
| User Base | Redundancy → Suggested Topology |
|---|---|
| Local | Low → single-region/single-zone |
| Local | High → single-region/multi-zone |
| Global | Any → multi-region (latency-driven) |
ဒါက starting point တစ်ခုသာဖြစ်ပြီး absolute rule မဟုတ်ပါ — production app တွေဟာ traffic ကြီးထွားလာသလို topology ကို ပြောင်းလဲလေ့ရှိပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
function recommendTopology(app) {
if (app.userBase === "global") {
return "multi-region (spread across regions close to each user cluster)";
}
if (app.redundancyRequirement === "high") {
return "single-region/multi-zone (one region, spread across multiple zones)";
}
return "single-region/single-zone (simplest starting point)";
}
const localLowRedundancy = { userBase: "local", redundancyRequirement: "low" };
const localHighRedundancy = { userBase: "local", redundancyRequirement: "high" };
const globalApp = { userBase: "global", redundancyRequirement: "low" };
console.log("Local audience, low redundancy need:", recommendTopology(localLowRedundancy));
console.log("Local audience, high redundancy need:", recommendTopology(localHighRedundancy));
console.log("Global audience:", recommendTopology(globalApp));Local audience, low redundancy need: single-region/single-zone (simplest starting point)
Local audience, high redundancy need: single-region/multi-zone (one region, spread across multiple zones)
Global audience: multi-region (spread across regions close to each user cluster)၅ မိနစ် စမ်းကြည့်
Redundancy 'high' ဖြစ်ပြီး userBase 'global' ဖြစ်တဲ့ case ကို ထည့်ပြီး run ကြည့်ပါ — output က ဘာဖြစ်လာမလဲ ခန့်မှန်းကြည့်ပြီးမှ run ပါ။
သတိလေးတစ်ချက်
Region တစ်ခုတည်းအတွင်းမှာပဲ Zone အများကြီးထားရင် region-level outage ကို ကာကွယ်ပေးမယ်ထင်ခြင်း
User base အနည်းငယ်သာရှိသေးတဲ့ app ကို အစကတည်းက multi-region လုပ်ပြီး complexity မလိုအပ်ဘဲ တိုးခြင်း
Wikipedia: Availability zone — Cloud Providers & Platforms