Skip to main content

Command Palette

Search for a command to run...

Horizontal vs Vertical Scaling

Updated
2 min read
Horizontal vs Vertical Scaling
K

I am a DevOps, Cloud Solution Architect from Myanmar who love to write blogs and create youtube content for our young generation people.

ကျွန်တော် အိပ်မရသေးတာနဲ့ စာရေးချင်စိတ်ပေါက်လာလို့ ဒီအကြောင်းလေးကို ရေးပေးချင်တယ်ဗျ။ ဒီဘက်ခေတ်မှာ DevOps တစ်ယောက်အနေနဲ့ပဲဖြစ်စေ SysAdmin ဖြစ်စေ Developer ပဲဖြစ်စေပေါ့နော် Application တခုဟာ ဘယ်လိုမျိုး Scalable ဖြစ်အောင် လုပ်မလဲဆိုတာက အရေးကြီးလာပါပြီ။ Horizon တွေ Vertical တွေ ခဏထားပါအုံးမယ်။ ပထမဆုံးအနေနဲ့ Scalability ဆိုတဲ့အကြောင်းကိုအရင် ပြောချင်ပါတယ်။

Scalability ဆိုတာ ရှင်းရှင်းပြောရရင်ပေါ့ဗျာ ကျွန်တော်တို့ Application တခုမှာ အသုံးပြုသူ ထောင်ချီ မက သောင်းချီသိန်းချီရှိတယ် ဆိုပါစို့။ ကျွန်တော်တို့အနေနဲ့ Application ကြီး Website ကြီးက Online ပေါ်မှာ အချိန်မရွေး ရှိနေဖို့ တိုတိုပြောရရင် 0 Downtime ဖြစ်စေဖို့ (99.999999999%) စသည့်လောက်ထိ ရှိနေဖို့ လိုအပ်ပါတယ်။ User များတာနဲ့အမျှ ကျွန်တော်တို့ရဲ့ Server တွေရဲ့ ခံနိုင်ရည်က အရေးကြီးလာပါတယ်။ များပြားလှသော User တွေရဲ့ Request တွေကို Handle လုပ်နိုင်ဖို့ ကျွန်တော်တို့အနေနဲ့ မိမိတို့ အသုံးပြုတဲ့ Services တွေ Server တွေကို အလွယ်တကူ တိုးနိုင် လျော့နိုင် အစရှိသည်ဖြင့်လုပ်ခြင်းဟာ Scalable လုပ်ခြင်းပဲ ဖြစ်ပါတယ်။ User များတဲ့အချိန်ဆို ဘယ် ဆာဗာတွေသုံးမယ် နည်းသွားရင် ဘယ်ဆာဗာ အစရှိသည်ဖြင့်ပေ့ါဗျာ။ ဒီလောက်ဆိုရင် Scalable ဆိုတဲ့ ဝေါဟာရကို နားလည်လောက်ပြီ ထင်ပါတယ်။ ကဲ ထားပါတော့ ကျွန်တော် ပြောချင်တဲ့ အကြောင်းကို ဆက်သွားရအောင်ဗျာ။

ပထမဆုံး ပြောချင်တာက Vertical Scaling ပါ။ ကျွန်တော်တို့ ငယ်ငယ်ကလည်း သင်္ချာတို့ ဘာတို့မှာသင်ခဲ့ဖူးပြီးသားဖြစ်ပါတယ်။ အောက်က ပုံလေးကို ကြည့်စေချင်ပါတယ်။

Vertical ဆိုရင် အထောင်ပေ့ါနော် ဆိုလိုတာကတော့ ကျွန်တော်တို့အနေနဲ့ Server (1CPU x 2GB RAM) ရှိတဲ့ ဆာဗာ တလုံးနဲ့ မိမိ Application ကို Run ထားတယ်ဆိုပါတော့။ User တွေအရမ်းများလာလို့ Server ကြီးက လေးလာတယ် Down တာမျိုးတွေဖြစ်တဲ့အခါမှာ ကျွန်တော်တို့အနေနဲ့ အလွယ်တကူ 4CPU x 8GB RAM ရှိတဲ့ Server အဖြစ် အဆင့်မြှင့်လိုက်ခြင်း အားဖြင့်လည်း ကျွန်တော်တို့ Application ကို ခံနိုင်ရည်ရှိစေပါတယ်။ လိုအပ်ရင် လိုအပ်သလို CPU တိုးတာပဲဖြစ်စေ RAM ထပ်မြှင့်လိုက်တာပဲ ဖြစ်စေ လုပ်နိုင်ပါတယ်။ ပိုက်ဆံတော့ ပိုကုန်လာတာပေ့ါနော်။ ဒီလောက်ဆို Vertical Scaling ဆိုတာ ဘာလဲ မျက်စိထဲ မြင်လောက်ပြီလို့ထင်တယ်ဗျ။ လိုအပ်ရင်လိုအပ်သလို တခုအပေါ်မှာ ထပ်ထပ်တင်သွားတယ်လို့ ယူဆလိုက်လို့လည်း ရပါတယ်။ တော်တော်များများ အလျင်စလို အရေးပေါ်အခြေအနေမှာ သုံးကြတဲ့ နည်းလမ်းဖြစ်ပါတယ်။

Vertical အကြောင်း နည်းနည်းလောက်သိပြီးသွားပြီဆိုတော့ Horizontal အကြောင်း နည်းနည်းရိပ်မိလောက်ပြီထင်ပါတယ်။ ပုံထဲမှာလိုပဲ သူက အလျားလိုက်တိုးခြင်းဖြစ်ပါတယ်။ ဆိုလိုတာက ကျွန်တော်တို့အနေနဲ့ 1CPU x 2GB RAM ရှိတဲ့ Server အသုံးပြုထားတာကို မနိုင်တော့တဲ့အခါ နောက်ထပ် 1 CPU x 2GB RAM ရှိတဲ့ Server တခု ထပ်လုပ်ပြီး Application တင် Run ပြီးတော့ Load Balancing Method တွေသုံးပြီး Scalable လုပ်ခြင်းပဲဖြစ်ပါတယ်။ မိမိတို့ အသုံးပြုတဲ့ Server တလုံးက Down သွားတယ်ဆိုရင်တောင် အခြားနောက်တလုံးက ဆက် Run နေသေးတာမို့လို့ Website ကြီး လုံးဝ Down သွားမှာမဟုတ်ပါဘူး။ Vertical မှာတော့ တလုံးထဲကိုသုံးထားတာဖြစ်လို့ Down တာနဲ့ အကုန် Down သွားမှာပဲ ဖြစ်ပါတယ်။ ပိုက်ဆံအနေအထားအရကြည့်မယ်ဆိုရင်တော့ Vertical ထက်ပိုမိုသက်သာစေပါတယ်။ အောက်က ပုံကို ကြည့်တဲ့အခါ ပိုနားလည်သွားပါလိမ့်မယ်။

ကျွန်တော်တို့အနေနဲ့ မိမိ Application တခုကို Deploy မလုပ်ခင် Infra ကို စစဥ်းစားကတည်းက Scalable System ဖြစ်စေဖို့ အထူးသဖြင့် Horizontal Scaling ကို အဓိက ထားပြီး စဥ်းစားစေချင်ပါတယ်။ Application အတွက်ပဲဖြစ်စေ Database အတွက်ပဲဖြစ်စေ Load Balancer တွေ Database Replication တွေလုပ်ခြင်းအားဖြင့် Horizontal Scaling ကို ဆောင်ရွက်နိုင်ပါတယ်။

Vertical Scaling မှာတော့ data consistency အတွက် စိုးရိမ်စရာ သိပ်မရှိပါဘူး ဘာလို့လည်းဆိုတော့ သူက တခုထဲမှာပဲ အလုပ်လုပ်နေလို့ပါ။ Horizontal မှာတော့ စိုးရိမ်စရာရှိပါတယ်။ဘာလို့လည်းဆိုတော့ Horizontal မှာ က များစွာသော Servers တွေစီကနေ Data Transaction တွေသွားတာမို့လို့ ပိုမိုရှူပ်ထွေးပြီး maintain လုပ်ဖို့တော့ ခက်ခဲစေပါတယ်။ Centralized Database System တခုထားရှိဖို့လည်း လိုအပ်တယ်လို့ ပြောချင်ပါတယ်။

စာလည်းနည်းနည်းရှည်သွားပြီ ဒီလောက်ဆိုလည်း စာဖတ်တဲ့သူတွေအဖို့ Horizontal Scaling နဲ့ Vertical Scaling အကြောင်း နားလည်သွားပြီလို့လည်းထင်ပါတယ်။ ကျွန်တော်အနေနဲ့ နောက်ပိုင်းကျရင် Horizontal Scaling မှာ မရှိမဖြစ်လိုအပ်တဲ့ Load Balancing အကြောင်းတွေ Database Replication အကြောင်းတွေရေးပေးသွားဖို့ရှိပါတယ်။ နောက်ပိုင်းကျ AWS ရဲ့ Auto Scaling အကြောင်းရော ထပ်ရေးပေးပါအုံးမယ်။

ကျွန်တော် စာရေးသားမှုနဲ့ ပတ်သတ်ပြီး ကောမန့်မှာ လည်းထင်မြင်ချက်လေးတွေ အားပေးစကားလေးတွေ လည်းပြောသွားစေချင်ပါသေးတယ်။ နားမလည်တဲ့အရာရှိရင်လည်း မှားနေတာရှိရင်လည်း ထောက်ပြပြောဆို ဆွေးနွေးနိုင်ပါတယ်။

အားလုံးကို ကျေးဇူးတင်ပါတယ်။ သဘောကျရင် Share ပေးသွားစေချင်ပါတယ်။

ကောင်းသန့်လွင်

Kalaung Tech

490 views
M
Min Thant3y ago

❤️❤️

DevOps

Part 17 of 18

In this series, you can learn about DevOps Tools, DevOps Tutorial and Deployment Things.

Up next

DevOps တစ်ယောက်ဖြစ်ဖို့ လွယ်လား?

အပိုင်း(၁)

More from this blog

Infrastructure ကိုင်ပြီး အိပ်ရေးမပျက် ချင် လျှင် ဒါမျိုး Alarms လုပ် 🔥🔥🔥

High Level ရေးထားတာပါ ဒါပေမဲ့ လွယ်ပါတယ် ​ကိုယ့်မှာ AWS Infra တွေရှိတယ်ဆို တွေ့သမျှ metric တွေကို alarms တွေလုပ်ပြီး notification ယူမနေဘဲ တကယ် effective ဖြစ်တဲ့ metric တွေကိုမှ CloudWatch ရဲ့ alarm feature တွေနဲ့ ပေါင်းပြီး ပို့စေချင်ပါတယ်။ ​ဥပမာ prod...

Jan 17, 20263 min read172
Infrastructure ကိုင်ပြီး အိပ်ရေးမပျက် ချင် လျှင်  ဒါမျိုး Alarms လုပ် 🔥🔥🔥

How to connect On Premises Network and Cloud (AWS)? (Part-2)

ကိုယ့်ရဲ့ ‌data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ဘယ်လို ချိတ်ဆက်ကြမလဲ? အပိုင်း (၂) မှာ တော့ Direct connect အကြောင်းကို ဆွေးနွေး သွားမှာ ဖြစ်ပါတယ်။ အပိုင်း (၁) Site-to-site VPN အကြောင်းကို လေ့လာချင်ရင်တော့ အောက်ပါ link မှာ ...

Dec 20, 20253 min read234
How to connect On Premises Network and Cloud (AWS)? (Part-2)

How to connect On Premises Network and Cloud (AWS)? (Part-1)

ကိုယ့်ရဲ့ ‌data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ချိတ်ဆက်နိုင်တဲ့ နည်း (၂) နည်း ရှိပါတယ်။ 1. Site-to-Site VPN (Virtual Private Network) 2. Direct connect Site-to-Site VPN - On-prem network နဲ့ AWS resources တွေ ချိတ်ဆက်တဲ့...

Dec 12, 20252 min read272
How to connect On Premises Network and Cloud (AWS)? (Part-1)

Accessibility for Designer

လွန်ခဲ့တဲ့အပတ်က ရုံးက Designer တွေနဲ့ တော်ကီပွားရင်း Accessibility နဲ့ပတ်သတ်တာတွေ သူတို့ကို ရှင်းပြဖြစ်တယ်။ ကိုယ်တိုင်ကလည်း အရင်ကတည်းက ဒီ topic ကိုစိတ်ဝင်စားလို့ လေ့လာနေတာဆိုတော့ အခွင့်အရေးရရင် ရသလို sharing လုပ်ဖြစ်တယ်။ အဓိကက Accessibility နဲ့ပတ်သတ်...

Nov 21, 20253 min read75
Accessibility for Designer

VPC Endpoint

အားလုံးဘဲ မင်္ဂလာပါ။ ဒီနေ့ sharing လုပ်ပေးချင်တာကတော့ VPC Endpoint အကြောင်းဘဲဖြစ်ပါတယ်။ VPC Endpoint ဆိုတာ VPC နဲ့ AWS services တွေ ကို public Internet ကို အသုံးမပြုဘဲနဲ့ Privately connect လုပ်ပေးတာ ဖြစ်ပါတယ်။ Internet Gateway, NAT Gateway နဲ့ Public...

Nov 18, 20252 min read101
VPC Endpoint
M

Myanmar Technical Blog

108 posts

Cloud, Linux, DevOps, Docker, Security အစရှိတဲ့ နည်းပညာများ အကြောင်းကို မြန်မာလို ပြန်လည်မျှဝေပေးမယ့် Blog ပဲဖြစ်ပါတယ်ခဗျာ...