Horizontālā mērogošana pievieno vairāk mašīnu darba slodzes sadalīšanai, savukārt vertikālā mērogošana palielina esošo serveru jaudu. Abas pieejas risina veiktspējas problēmas, taču būtiski atšķiras arhitektūras, izmaksu modeļu un darbības sarežģītības ziņā.
Iezīmes
Horizontālā mērogošana jau pēc konstrukcijas novērš atsevišķus kļūmes punktus, savukārt vertikālā mērogošana koncentrē risku uz vienu iekārtu.
Datu bāzes darba slodzes bieži vien ir pretrunā ar horizontālu sadalījumu, padarot vertikālo mērogošanu par praktisku noklusējuma vērtību daudzām komandām.
Automātiskās mērogošanas grupas nodrošina horizontālas mērogošanas jūtamību acumirklī, taču tām ir nepieciešamas iepriekšējas investīcijas lietojumprogrammu arhitektūrā.
Vertikālā mērogošana sasniedz stingrus ierobežojumus, kad tiek sasniegts visspēcīgākais pieejamais serveris, savukārt horizontālā mērogošana teorētiski nekad tā nenotiek.
Kas ir Horizontālā mērogošana?
Pievienojot vairāk serveru vai instanču, lai apstrādātu pieaugošo pieprasījumu un sadalītu darba slodzi.
Šī pieeja, ko sauc arī par mērogošanu, sadala datplūsmu vairākās iekārtās, izmantojot slodzes līdzsvarotājus.
Mākoņpakalpojumu sniedzēji, piemēram, AWS, Azure un GCP, ar automātiskās mērogošanas grupām horizontālo mērogošanu veic gandrīz acumirklī.
Lai šī pieeja darbotos efektīvi, lietojumprogrammām jābūt izstrādātām tā, lai tās būtu bezvalstīgas vai izmantotu koplietotu krātuvi.
Horizontālā mērogošana nodrošina iebūvētu redundanci, jo datplūsma var tikt novirzīta, ja viens serveris neizdodas
Šī metode parasti ievēro modeli “maksā, kad izaugsi”, tieši saskaņojot izmaksas ar faktisko patēriņu.
Kas ir Vertikālā mērogošana?
Esošo servera resursu, piemēram, centrālā procesora, operatīvās atmiņas vai krātuves, jaunināšana, lai uzlabotu veiktspēju.
Parasti saukta par mērogošanu, tā ietver servera nomaiņu pret jaudīgāku iekārtu vai komponentu jaunināšanu.
Vertikālā mērogošana labi darbojas monolītām lietojumprogrammām, kas nav paredzētas darbībai vairākos serveros.
Parasti pastāv augšējā robeža tam, cik jaudīga var būt viena mašīna, radot mērogojamības griestus.
Datu bāzu serveri bieži izmanto vertikālo mērogošanu, jo relāciju datubāzu izplatīšana rada ievērojamu sarežģītību.
Šī pieeja prasa dīkstāvi aparatūras jaunināšanas laikā, ja vien virtualizētās vidēs netiek izmantotas tiešraides migrācijas tehnoloģijas.
Salīdzinājuma tabula
Funkcija
Horizontālā mērogošana
Vertikālā mērogošana
Arhitektūra
Izplatīts daudzos mezglos
Viena jaudīga mašīna
Maksimālā ietilpība
Praktiski neierobežots ar pietiekami daudz mezglu
Ierobežots ar aparatūras griestiem
Dīkstāve mērogošanas laikā
Parasti nav dīkstāves
Bieži vien nepieciešama restartēšana vai migrācija
Izmaksu modelis
Maksa par katru instanci, pieaug lineāri
Liels sākotnējais vai pakāpeniskais izmaksu pieaugums
Sarežģītība
Augstāks, nepieciešama slodzes līdzsvarošana un izkliedēts dizains
Zemāks, vienkāršāk ieviešams
Kļūmju tolerance
Iebūvēta redundanci
Viena kļūmes punkta
Tipisks lietošanas gadījums
Tīmekļa lietojumprogrammas, mikropakalpojumi
Datu bāzes, mantotie monolīti
Detalizēts salīdzinājums
Kā katra pieeja ietekmē izaugsmi
Kad datplūsma strauji pieaug, horizontālā mērogošana reaģē, aktivizējot papildu serverus, lai sadalītu slodzi. Iedomājieties to kā vairāku kases celiņu atvēršanu pārtikas veikalā. Turpretī vertikālā mērogošana aizstāj jūsu kasieri ar ātrāku vai uzlabo viņa aparātu. Abas metodes nodrošina lielāku caurlaidspēju, taču darbības mehānika ievērojami atšķiras.
Lietojumprogrammu izstrādes prasības
Horizontālā mērogošana prasa, lai lietojumprogrammas tiktu veidotas, ņemot vērā izplatīšanu. Sesijas dati nevar atrasties vienā serverī, un pieprasījumi ir jāapstrādā neatkarīgi. Vertikālā mērogošana ir daudz pielaidīgāka pret mantotajām arhitektūrām. Tradicionālai trīs līmeņu lietojumprogrammai bieži vien nav nepieciešamas koda izmaiņas, lai gūtu labumu no jaudīgāka pamatā esošā servera.
Izmaksu ietekme laika gaitā
Horizontāla mērogošana sadala izdevumus starp daudziem mazākiem pirkumiem, kas var vienkāršot budžeta plānošanu, bet lielā mērogā var uzkrāt lielākas kopējās izmaksas. Vertikāla mērogošana koncentrē ieguldījumus mazākā skaitā, dārgāku iekārtu. Ārkārtīgu veiktspējas vajadzību gadījumā viens augstas klases serveris faktiski var kļūt rentablāks nekā simtiem mazu serveru organizēšana.
Neveiksmju noturība
Viena no horizontālās mērogošanas nemanāmajām priekšrocībām ir dabiskā kļūdu tolerance. Ja viens mezgls neizdodas, citi turpina apkalpot pieprasījumus. Vertikālā mērogošana rada kritisku atkarību no vienas mašīnas. Kad tā neizdodas, viss apstājas, ja vien nav ieviesta dārga rezerves sistēma.
Reālās pasaules hibrīdpieejas
Sarežģītas organizācijas reti izvēlas ekskluzīvu pieeju. Tās var vertikāli mērogot datubāzes galveno serveri, bet horizontāli mērogot bezvalstnieku tīmekļa serverus. Šī pragmatiskā sajaukšana ļauj katram komponentam izmantot mērogošanas modeli, kas atbilst tā ierobežojumiem un piekļuves modeļiem.
Priekšrocības un trūkumi
Horizontālā mērogošana
Iepriekšējumi
+Lieliska kļūdu tolerance
+Elastīga izaugsme pēc pieprasījuma
+Nav aparatūras griestu
+Saskaņo izmaksas ar lietojumu
+Nodrošina ģeogrāfisku izplatīšanu
Ievietots
−Augstāka arhitektūras sarežģītība
−Nepieciešams bezvalstnieku dizains
−Tīkla latentums starp mezgliem
−Sarežģītāka atkļūdošana
−Iespējamās datu konsekvences problēmas
Vertikālā mērogošana
Iepriekšējumi
+Vienkāršāk ieviest
+Nav galvassāpju izkliedētās sistēmas dēļ
+Darbojas ar mantotu kodu
+Zemākas tīkla pieslēguma izmaksas
+Vieglāk nodrošināt un auditēt
Ievietots
−Viena kļūmes punkta
−Aparatūras jaunināšanas ierobežojumi
−Bieži vien nepieciešams dīkstāves laiks
−Grūtāk attaisnot mainīgas slodzes gadījumā
−Ģeogrāfiskā koncentrācija
Biežas maldības
Mīts
Vertikālā mērogošana vienmēr ir lētāka, jo jūs pērkat mazāk mašīnu.
Realitāte
Lai gan rēķinu saraksts ir īsāks, uzņēmuma līmeņa serveriem ir ievērojamas prēmijas. Mērogā simtiem nelielu instanču var pārspēt un piedāvāt zemāku cenu nekā viens superdators. Reālais aprēķins ir atkarīgs no jūsu konkrētajiem darba slodzes modeļiem un tā, cik efektīvi tiek izmantots katrs resurss.
Mīts
Horizontālā mērogošana nozīmē, ka jūsu lietojumprogramma automātiski kļūst uzticamāka.
Realitāte
Izplatīšana uzlabo uzticamību tikai tad, ja tā ir pareizi izstrādāta. Slikti arhitektēta horizontāli mērogota sistēma var katastrofāli neizdoties, ja visiem mezgliem ir viena datubāzes sašaurinājuma vieta vai ja pats slodzes līdzsvarotājs kļūst par ievainojamību.
Mīts
Jums jāizvēlas viena pieeja un jāpieturas pie tās visu laiku.
Realitāte
Lielākā daļa ražošanas vides dinamiski apvieno abas stratēģijas. Bezvalstnieku komponenti mērogojas horizontāli, savukārt pastāvīgie datu krātuves var mērogoties vertikāli, līdz kļūst nepieciešama sharding. Robeža mainās, sistēmām attīstoties.
Mīts
Vertikālā mērogošana mākoņpakalpojumu laikmetā ir novecojusi.
Realitāte
Mākoņpakalpojumu sniedzēji stingri atbalsta horizontālo mērogošanu, taču vertikālā mērogošana joprojām ir būtiska. Daudzi pārvaldīto datubāzu pakalpojumi joprojām tiek mērogoti pirms mērogošanas, un noteiktas skaitļošanas darba slodzes darbojas labāk mazākā skaitā, jaudīgāku instancēs tikai komunikācijas pieskaitāmo izmaksu dēļ.
Mīts
Horizontālā mērogošana acumirklī atrisina visas veiktspējas problēmas.
Realitāte
Serveru pievienošana palīdz tikai tad, ja jūsu vājā vieta ir skaitļošanas jauda. Ja jūsu lietojumprogramma darbojas lēni neefektīvu vaicājumu, atmiņas noplūžu vai darbību bloķēšanas dēļ, vairāk serveru tikai saasina jūsu problēmas. Profilēšana un optimizācija ir jāveic pirms mērogošanas lēmumiem.
Bieži uzdotie jautājumi
Kas vienkāršā izteiksmē ir horizontālā mērogošana salīdzinājumā ar vertikālo mērogošanu?
Horizontālā mērogošana nozīmē lielāka darba apjoma veikšanu, pievienojot savam datoru pūlam vairāk datoru, piemēram, pieņemot darbā vairāk darbinieku rūpnīcā. Vertikālā mērogošana nozīmē esošā datora jaudīgāku padarīšanu, piemēram, nodrošinot darbiniekiem labākus rīkus un steroīdus. Abas metodes palielina jaudu, taču to ieviešana un uzturēšana ir ļoti atšķirīga.
Kad man vajadzētu izmantot vertikālo mērogošanu horizontālās, nevis vertikālās mērogošanas vietā?
Vertikālā mērogošana izceļas ar stāvokļa lietojumprogrammām, kas nav veidotas izplatīšanai, piemēram, tradicionālajām relāciju datubāzēm vai mantotu uzņēmumu programmatūru. Tā ir arī vēlama, ja tīkla komunikācija starp mezgliem radītu nepieņemamu latentumu vai ja jūsu komandai trūkst zināšanu, lai pārvaldītu izkliedēto sistēmu sarežģītību.
Vai horizontālajai mērogošanai ir nepieciešams īpašs lietojumprogrammas dizains?
Parasti jā. Jūsu lietojumprogrammai ir jāapstrādā pieprasījumi neatkarīgi no lokālā servera stāvokļa. Lietotāju sesijām jāatrodas koplietotās kešatmiņās, piemēram, Redis, failu augšupielādei ir nepieciešama centralizēta krātuve, piemēram, S3, un jūsu datubāzei ir jāapstrādā savienojumi no vairākiem lietojumprogrammu serveriem. Šīs nav neiespējamas prasības, taču tās ir jāplāno jau agrīnās izstrādes stadijās.
Vai varu apvienot horizontālo un vertikālo mērogošanu?
Pilnīgi noteikti, un lielākā daļa organizāciju rīkojas tieši tā. Bieži izmantots modelis, kas mērogo tīmekļa serverus horizontāli, bet datubāzes vertikāli, līdz tās absolūti ir jādalās. Šī hibrīda pieeja ļauj katram slānim izmantot visatbilstošāko mērogošanas modeli atbilstoši tā ierobežojumiem un piekļuves modeļiem.
Kura mērogošanas pieeja ir izmaksu ziņā efektīvāka?
Tas pilnībā atkarīgs no jūsu darba slodzes raksturlielumiem un izaugsmes trajektorijas. Vienmērīga, paredzama izaugsme varētu veicināt vertikālās mērogošanas vienkāršību. Ļoti mainīgas vai strauji augošas darba slodzes bieži vien izrādās lētākas, izmantojot horizontālās mērogošanas detalizēto izmaksu kontroli. Pirms apņemšanās veiciet detalizētu analīzi par faktiskajiem resursu izmantošanas modeļiem.
Kā automātiskā mērogošana darbojas ar horizontālo mērogošanu?
Automātiskā mērogošana uzrauga tādus rādītājus kā centrālā procesora noslodze, pieprasījumu rindas dziļums vai pielāgoti biznesa rādītāji. Kad tiek pārsniegti sliekšņi, tā automātiski nodrošina jaunus eksemplārus un pievieno tos jūsu slodzes līdzsvarotājam. Kad pieprasījums samazinās, tā noņem eksemplārus, lai ietaupītu naudu. Šī elastība ir horizontālās mērogošanas galvenā funkcija mākoņvidē.
Kādi ir galvenie vertikālās mērogošanas riski?
Lielākais risks ir sasniegt pieejamās aparatūras griestus. Kad esat iegādājies visspēcīgāko iespējamo serveri, jūs esat iestrēdzis. Papildus jāņem vērā arī jauninājumiem nepieciešamais dīkstāves laiks, riska koncentrācija vienā datorā un grūtības attaisnot dārgas aparatūras iegādi darba slodzēm, kas neparedzami pieaug.
Vai horizontālā mērogošana ir paredzēta tikai lieliem uzņēmumiem?
Vairs ne. Mākoņdatošana ir demokratizējusi piekļuvi horizontālai mērogošanai. Jaunuzņēmums var konfigurēt automātisko mērogošanu infrastruktūrā kā kodu tikpat viegli kā Fortune 500 uzņēmums. Īstais šķērslis ir arhitektūras zināšanas, nevis budžets vai organizācijas lielums.
Kā slodzes līdzsvarotāji iederas horizontālajā mērogošanā?
Slodzes līdzsvarotāji ir datplūsmas direktori, kas nodrošina horizontālu mērogošanu. Tie sadala ienākošos pieprasījumus visā serveru kopā, uzrauga to stāvokli un automātiski noņem bojātos mezglus. Bez tiem lietotāji tieši piekļūtu atsevišķiem serveriem, tādējādi zaudējot vairāku datoru jēgu.
Kas notiek ar maniem datiem, ja tos mērogoju horizontāli?
Tas ir kritiskais jautājums. Lietojumprogrammu datiem datubāzēs ir jāpaliek pieejamiem no visiem mezgliem, parasti izmantojot centralizētu datubāzi vai datubāzu klasteri. Lietotāju augšupielādētie faili tiek pārvietoti uz koplietojamu krātuvi. Sesijas dati tiek pārvietoti uz Redis vai līdzīgu krātuvi. Jūsu lietojumprogrammas kods kļūst bezvalstnieks, savukārt dati atrodas īpaši paredzētos, bieži vien vertikāli mērogotos datu slāņos.
Vai vertikālā mērogošana jebkad var sasniegt horizontālās mērogošanas veiktspēju?
Noteiktām darba slodzēm jā. Viena mašīna ar milzīgu centrālo procesoru, atmiņu un ātru lokālo krātuvi var pārspēt izkliedētu sistēmu uzdevumos, kuriem nepieciešama intensīva starpprocesu komunikācija vai bieža datu lokalizācija. Zinātniskā skaitļošana, video renderēšana un noteikta datubāzu analīze dažreiz dod priekšroku vertikālai mērogošanai pat lielā mērogā.
Kā izlemt, ar kuru mērogošanas stratēģiju sākt?
Sāciet ar saviem ierobežojumiem. Ja jums ir mantota lietojumprogramma un ierobežots izstrādes laiks, vertikālā mērogošana ļaus jums virzīties uz priekšu visātrāk. Ja veidojat jaunu mākoņpakalpojumos balstītu programmatūru, projektējiet horizontālo mērogošanu jau no pirmās dienas. Vissvarīgākais ir visu instrumentēt un ļaut reāliem veiktspējas datiem vadīt jūsu attīstību, nevis izteikt teorētiskas prognozes.
Spriedums
Veidojot modernas, mākoņpakalpojumos balstītas lietojumprogrammas, kurām nepieciešama elastīga izaugsme un augsta pieejamība, izvēlieties horizontālu mērogošanu. Izvēlieties vertikālu mērogošanu, strādājot ar mantotajām sistēmām, sarežģītām darba slodzēm ar stāvokli, piemēram, tradicionālajām datubāzēm, vai ja vienkāršība atsver neierobežotas mērogojamības nepieciešamību. Lielākā daļa nobriedušu arhitektūru galu galā apvieno abas pieejas.