Load Balancing
Load Balancing(yuklarni muvozanatlash) - bu tarmoq trafigini bir nechta serverlar bo'ylab taqsimlash jarayoni. Bu hech qanday server juda ko'p talabga ega emasligini ta'minlaydi. Ishni teng taqsimlash orqali load balancing(yukni muvozanatlash) applicationning javob berish qobiliyatini yaxshilaydi. Shuningdek, u foydalanuvchilar uchun applicationlar va veb-saytlar mavjudligini oshiradi. Zamonaviy applicationlar yuk balanslagichlarisiz ishlay olmaydi. Vaqt o'tishi bilan load balancerlar(yuk balanslagichlar) xavfsizlik va applicationlarni tezlashtirish kabi qo'shimcha imkoniyatlarni qo'shdilar
Load Balancerlar
Tashkilot o'z applicationlariga bo'lgan talabni qondirar ekan, load balanceri qaysi serverlar ushbu trafikni boshqarishi mumkinligini hal qiladi. Bu yaxshi foydalanuvchi tajribasini saqlaydi.
Load balancerlari server va so'nggi nuqta qurilmasi (kompyuter, noutbuk, planshet yoki smartfon) o'rtasidagi ma'lumotlar oqimini boshqaradi. Server on-premises, ma'lumotlar markazida yoki public cloudda bo'lishi mumkin. Server jismoniy yoki virtuallashtirilgan bo'lishi mumkin. Load Balancer serverlarga ma'lumotlarni samarali ko'chirishga yordam beradi, applicationlarni yetkazib berish resurslaridan foydalanishni optimallashtiradi va serverning ortiqcha yuklanishini oldini oladi. Load Balancerlar requestlarni(so'rovlar) bajara olishlariga ishonch hosil qilish uchun serverlarning sog'lig'ini doimiy ravishda tekshiradilar(health checks). Agar kerak bo'lsa, load balancer nosog'lom serverlarni qayta tiklanmaguncha pooldan olib tashlaydi. Ba'zi load balancerlar hatto ortib borayotgan talabni qondirish uchun yangi virtuallashtirilgan dastur serverlarini yaratishni ham boshlaydi.
An'anaga ko'ra, load balancerlar hardware qurilmasidan iborat. Shunga qaramay, ular tobora ko'proq dasturiy ta'minot bilan belgilanadi. Shuning uchun load balancerlar tashkilotning raqamli strategiyasining muhim qismidir.
Load Balancerlar tarixi
Load Balancing 1990-yillarda tarmoq bo'ylab trafikni tarqatuvchi apparat qurilmalari(hardware appliance) sifatida boshlangan. Tashkilotlar serverlarda ishlaydigan applicationlarning mavjudligini yaxshilashni xohlashdi. Oxir-oqibat, Application Delivery Controllers (ADCs)lar paydo bo'lishi bilan Load balancing ko'proq mas'uliyatni o'z zimmasiga oldi. Ular xavfsizlikni ta'minlaydi, shuningdek, peak timelarda applicationlarga uzluksiz kirishni ta'minlaydi.
ADClar uchta toifaga bo'linadi: hardware qurilmalari(hardware appliance), virtual qurilmalar (asosan, eski apparatdan olingan dasturiy ta'minot) va software-native load balancerlari. Hisoblash cloudga o'tayotganda, dasturiy ta'minot ADC'lari apparatga o'xshash vazifalarni bajaradi. Ular, shuningdek, qo'shimcha funksionallik va moslashuvchanlik bilan birga keladi. Ular tashkilotga clouddagi talabdan kelib chiqqan holda dastur xizmatlarini tez va xavfsiz tarzda kengaytirish imkonini beradi. Zamonaviy ADClar tashkilotlarga tarmoqqa asoslangan xizmatlarni birlashtirishga imkon beradi. Ushbu xizmatlarga SSL/TLS offload, keshlash(caching), siqish(compression), hujumni aniqlash(intrusion detection) va web application firewallari(WAF) kiradi. Bu yetkazib berish muddatini qisqartiradi va kattaroq hajmni yaratadi.
Load Balancing va SSL
Secure Sockets Layer(SSL) bu veb-server va brauzer o'rtasida shifrlangan aloqani o'rnatish uchun standart xavfsizlik texnologiyasidir. SSL trafiki ko'pincha load balancerda shifrlangan(encrypted). Load Balancer so'rovni(request) yuborishdan oldin trafikni shifrlaganda, bu SSL termination deb ataladi. Load Balancer veb-serverlarni shifrni ochish(decrypted) uchun zarur bo'lgan qo'shimcha CPU cyclelarini sarflashdan qutqaradi. Bu dastur ish faoliyatini yaxshilaydi.
Biroq, SSL termination xavfsizlik muammosi bilan birga keladi. Load Balancerlar va veb-serverlar o'rtasidagi trafik endi shifrlanmaydi. Bu ilovani ehtimoliy hujumga duchor qilishi mumkin. Biroq, load balancer veb-serverlar bilan bir xil ma'lumotlar markazida bo'lsa, xavf kamayadi.
Yana bir yechim - SSL pass-through(SSL orqali o'tish). Load Balancer faqat shifrlangan so'rovni veb-serverga uzatadi. Keyin veb-server shifrni ochishni amalga oshiradi. Bu veb-serverda ko'proq CPU quvvatini ishlatadi. Ammo qo'shimcha xavfsizlikni talab qiladigan tashkilotlar qo'shimcha xarajatlarni foydali deb topishlari mumkin.
Load Balancing va xavfsizlik
Load Balancing muhim xavfsizlik rolini o'ynaydi, chunki hisoblash doimo cloudga o'tadi. Load Balancerning off-loading(yukni tushirish) funksiyasi tashkilotni Distributed Denial-of-Service (DDoS) hujumlaridan himoya qiladi. Bu hujum trafigini korporativ serverdan public cloud provayderiga o'tkazish orqali amalga oshiradi. DDoS hujumlari kiberjinoyatlarning katta qismini tashkil etadi, chunki ularning soni va hajmi o'sishda davom etmoqda. Perimeter firewall kabi hardware himoyasi qimmatga tushishi va jiddiy texnik xizmat ko'rsatishni talab qilishi mumkin. Cloud offloadga ega dasturiy ta'minot load balancerlari samarali va tejamkor himoyani ta'minlaydi.
Load Balancing Algoritmlari
Muayyan vaziyat uchun eng mos keladigan turli xil algoritmlardan foydalanadigan turli xil load balancing metodlari mavjud. Load Balancing Algoritmlar ikki turga bo'linadi bular Dynamic load balancing algoritmlar va Static load balancing algoritlardir.
Dynamic Load Balancing algoritmlar
Dynamic Load Balancing algoritmlari har bir serverning joriy mavjudligi(availability), workload(ish yuki) va sog'lig'ini hisobga oladi. Ular trafikni haddan tashqari yuklangan yoki yomon ishlaydigan serverlardan to'liq foydalanilmagan serverlarga o'tkazishi mumkin, bu esa taqsimotni bir tekis va samarali ushlab turishi mumkin. Biroq, dynamic load balancing sozlash qiyinroq. Server mavjudligiga bir qator turli omillar ta'sir qiladi: har bir serverning sog'lig'i va umumiy sig'imi(capacity), taqsimlanayotgan tasklar hajmi va boshqalar.
Faraz qilaylik, xaridorlarni kassa qatorlariga ajratuvchi oziq-ovqat do'koni xodimi yanada dinamik yondashuvdan foydalanadi: xodim chiziqlarni diqqat bilan kuzatadi, qaysi biri tezroq harakatlanayotganini ko'radi, har bir mijoz qancha oziq-ovqat sotib olayotganini kuzatadi va shunga qarab xaridorlarni tayinlaydi. Bu barcha mijozlar uchun yanada samaraliroq tajribani ta'minlashi mumkin, lekin u qatorni saralash xodimiga ham katta yuklaydi.
Dynamic Load Balancing algoritmlarining bir nechta turlari mavjud, jumladan, least connection, weighted least connection, resource-based va geolocation-basedm load balancinglar.
-
Least connection-> Qaysi serverlar eng kam ulanishga ega ekanligini tekshiradi va trafikni ushbu serverlarga yuboradi. Bu barcha ulanishlar taxminan teng ishlov berish quvvatini talab qiladi. Serverlar o'rtasida notekis taqsimlangan trafikda ko'p sonli doimiy ulanishlar mavjud bo'lganda bu metod eng foydalidir.
-
Weighted least connection-> Ba'zi serverlar boshqalardan ko'ra ko'proq ulanishlarni boshqarishi mumkin deb hisoblagan holda, tizim adminlarga har bir serverga turli og'irliklarni belgilash imkoniyatini beradi. Weighted least connectionlarda yuk(load) taqsimoti ikkala omilga - har bir serverga joriy va faol ulanishlar soniga va serverning nisbiy sig'imiga asoslanadi.
-
Resource-based-> Har bir serverda mavjud bo'lgan resurslarga qarab yukni(load) taqsimlaydi. Har bir serverda ishlaydigan maxsus dasturiy ta'minot ("agent" deb ataladi) serverning mavjud protsessorini va xotirasini o'lchaydi va load balancer ushbu serverga trafikni tarqatishdan oldin agentdan so'raydi.
Static Load Balancing algoritmlar
Static load balancing algoritmlari workloadni` tizimning joriy holatini hisobga olmasdan taqsimlaydi. Static load balancer qaysi serverlar sekin ishlayotganini va qaysi serverlar yetarli darajada foydalanmayotganini bilmaydi. Buning o'rniga u oldindan belgilangan reja asosida workloadni tayinlaydi. Static load balancer tezda o'rnatiladi, ammo samarasiz bo'lishi mumkin.
Yuqoridagi o'xshashlikka qaytsak, 8 ta ochiq kassa liniyasiga ega bo'lgan oziq-ovqat do'konida mijozlarni liniyalarga yo'naltirish bo'lgan xodim borligini tasavvur qiling. Tasavvur qiling-a, bu xodim oddiygina tartibda ketadi, birinchi mijozni 1-qatorga, ikkinchi mijozni 2-qatorga tayinlaydi va hokazo, chiziqlar qanchalik tez harakatlanayotganini ko'rish uchun orqaga qaramaydi. Agar 8 ta kassirning barchasi samarali ishlasa, bu tizim yaxshi ishlaydi - lekin bir yoki bir nechtasi orqada qolsa, ba'zi qatorlar boshqalarga qaraganda uzoqroq bo'lib, mijozlarning yomon tajribasiga olib kelishi mumkin. Static load balancing bir xil xavf tug'diradi: ba'zida alohida serverlar hali ham haddan tashqari yuklanishi mumkin. Round robin DNS va client-side random load balancing sttaic load balancinning ikkita keng tarqalgan shaklidir.
-
Round Robin-> Round robin load balancing eng oddiy va eng ko'p ishlatiladigan load balancing algoritmidir. Client so'rovlari(request) oddiy aylanishda dastur serverlariga tarqatiladi. Misol uchun, agar sizda uchta application serveri bo'lsa: birinchi client so'rovi ro'yxatdagi birinchi application serveriga, ikkinchi client so'rovi ikkinchi application serveriga, uchinchi client so'rovi uchinchi application serveriga, to'rtinchi client so'rovi esa birinchi application serverga yuboriladi. Round robin load balancing Domain Name System (DNS) yordamida aylanadigan serverlar ro'yxatiga trafikni taqsimlaydi. Authoritative nameserveri domen uchun turli A recordlari ro'yxatiga ega bo'ladi va har bir DNS so'roviga javoban boshqasini taqdim etadi.
-
Weighted round robin-> Weighted round robin balancing Round Robin load balancing algoritmiga o'xshaydi, har bir serverning nisbiy sig'imi(capacity) bo'yicha kiruvchi client so'rovlarini serverlari bo'ylab tarqatish qobiliyatini qo'shadi. Weighted round robin administratorga har bir serverga turli vaznlarni(weight) belgilashga ruxsat beradi. Og'irligi(weight) yuqori bo'lgan serverlar name serveridan ko'proq kiruvchi applicationlar trafigini oladi.
-
IP hash-> Kiruvchi trafikning source va destination IP manzillarini birlashtiradi va uni hashga aylantirish uchun matematik funksiyadan foydalanadi. Hash asosida ulanish ma'lum bir serverga tayinlanadi. Source IP hash load balancing algoritmi clientni ma'lum bir serverga ajratish uchun ishlatiladigan noyob hash kalitini(unique hash key) yaratish uchun client so'rovining source va destination IP manzillaridan foydalanadi. Agar seans buzilgan bo'lsa, kalit qayta tiklanishi mumkinligi sababli, client so'rovi avval foydalanilgan serverga yo'naltiriladi.
Load Balancing afzalliklari
Load Balancing network traffic cop sifatida ishlashdan ko'proq narsani amalga oshirishi mumkin. Software load balancerlar prognozli tahlil(predictive analytic) kabi afzalliklarni ta'minlaydi, ular paydo bo'lishidan oldin tirbandliklarni(traffic bottleneck) aniqlaydi. Natijada, software load balancer vositasi tashkilotga amaliy tushunchalarni beradi. Bular avtomatlashtirishning kalitidir va biznes qarorlarini qabul qilishga yordam beradi.
Yetti layeri Open System Interconnection (OSI) modelida network firewallari birdan uchinchi darajagacha (L1-Physical Wiring, L2-Data Link and L3-Network) bo'ladi. Shu bilan birga, load balancer to'rtinchidan yettigacha layerlar orasida amalga oshiriladi (L4-Transport, L5-Session, L6-Presentation and L7-Application).
-
Layer 4 Load Balancer(L4) -> OSI modelining transport layerida ishlaydi va ushbu layerda mavjud bo'lgan source va destination IP manzillari, port raqamlari va TCP, UDP yoki SCTP kabi protokollar kabi ma'lumotlar asosida load balancing qarorlarini qabul qiladi. Application-specific content tushunadigan Layer 7 load balancerlaridan farqli o'laroq, Layer 4 load balancerlari application payloadni tekshirmasdan tarmoq ma'lumotlari asosida trafik taqsimotiga e'tibor qaratadi. Layer 4 Load Balanceri tarmoq maʼlumotlariga asoslangan oddiy marshrutlash yetarli bo'lgan senariylar uchun samarali bo'lib, application-specific routing yoki kontentni tekshirishga(content inspection) hojat yo'q. Bu transport layerining atributlariga e'tibor qaratgan holda tarmoq trafigini serverlar yoki resurslar bo'ylab samarali taqsimlashda samarali.
-
Layer 7 Load Balancer(L7) -> Layer 7 (L7) Load Balanceri, shuningdek, application-layer load balanceri sifatida ham tanilgan, OSI modelida eng yuqori darajada ishlaydi va asosiy e'tiborni application-layerga qaratadi. U orqali o'tadigan xabarlar yoki so'rovlar mazmunini tushunadi, bu esa payload ichidagi specific application protocollari va ma'lumotlarga asoslangan holda yanada murakkab trafik marshrutlash va boshqarish imkonini beradi. Layer 7 load balanceri, ayniqsa, application-specific(ilovaga xos) atributlar yoki kontentga asoslangan murakkab marshrutlash qarorlarini talab qiladigan applicationlar uchun foydalidir. Bu lower-layerdagi load balancerlariga nisbatan yuqori darajadagi(higher level) granularity va trafikni boshqarishni ta'minlaydi, bu turli xil murakkab dastur arxitekturalari va senariylari uchun optimallashtirish imkonini beradi. Load balancing uchun content switchingni qo'shadi. Bu HTTP headeri, yagona resurs identifikatori(uniform resource identifier), SSL seans identifikatori(session ID) va HTML data formlari kabi atributlarga asoslangan routing qarorlarini qabul qilishga imkon beradi.
-
GSLB -> - Global Server Load Balancing L4 va L7 imkoniyatlarini turli geografik joylashuvlardagi serverlarga kengaytiradi. Global Server Load Balancing global kirishni maqsad qilgan yoki turli geografik joylarda foydalanuvchilarga xizmat ko'rsatishni maqsad qilgan tashkilotlar uchun juda muhimdir. U ishlashni optimallashtirishda, yuqori mavjudlikni(high availability) ta'minlashda va turli omillarga asoslangan trafikni eng mos serverga yo'naltirish orqali uzluksiz foydalanuvchi tajribasini ta'minlashda hal qiluvchi rol o'ynaydi.
Software Load Balancerlar vs Hardware Load Balancerlar
Load Balancerlar hardware qurilmalari sifatida ishlaydi yoki dasturiy ta'minot(software) bilan belgilanadi. Hardware Load Balancerlar - bu load balancing vazifalari uchun maxsus mo'ljallangan jismoniy qurilmalar. Ushbu qurilmalar tarmoq trafigini boshqarish uchun optimallashtirilgan maxsus hardware komponentlari bilan maqsadga muvofiq ishlab chiqilgan. Software Load Balancerlar standart serverlar yoki virtual mashinalarda ishlaydigan software application yoki servicelar sifatida amalga oshiriladi. Ular load balancing funksiyalarini bajarish uchun host tizimining CPU va xotirasidan ishlov berish quvvatidan foydalanadilar.
Software Load Balancerlar afzalliklari
-
Flexibility va Scalability-> O'zgaruvchan ehtiyojlarga moslashish uchun moslashuvchanlik(flexibility). Hosting serverlarida qo'shimcha instance qo'shish yoki apparat resurslarini yangilash orqali gorizontal ravishda scale osonroq.
-
Tejamkorlik(Cost-Effective)-> Ko'pincha hardware vositalariga qaraganda ancha tejamkor. Jismoniy mashinalarni sotib olish va ularga xizmat ko'rsatishdan ko'ra arzonroq narx. Dasturiy ta'minot har qanday standart qurilmada ishlashi mumkin, bu esa arzonroq.
-
Oson Deployment va sozlash-> tez o'rnatilishi va standart dasturiy ta'minotni o'rnatish jarayonlari yordamida sozlanishi mumkin.
-
Customizatsiya va Integratsiya -> Software-based tabiati tufayli ko'proq moslashtirish(customizatsioya) va integratsiya imkoniyatlarini taklif qiladi, bu esa boshqa dasturiy ta'minot komponentlari bilan oson integratsiyalashish imkonini beradi.
Software Load Balancerlar kamchiliklari
- Performance-> Hardware Load Balancer bilan solishtirganda, software Load balancerning asosiy kamchiliklari uning performancedir.
Hardware Load Balancerlar afzalliklari
-
Performance-> Ixtisoslashgan hardware komponentlari va ajratilgan arxitektura tufayli ko'pincha software-based yechimlarga nisbatan yuqori unumdorlik(higher performance) va o'tkazuvchanlikni(throughput) ta'minlaydi.
-
Reliability(Ishonchlilik) Stability(barqarorli) va Reliability(ishonchlilik) uchun ishlab chiqilgan bo'lib, host-based dasturiy ta'minot yechimlari(software solution) bilan bog'liq nosozliklar yoki performance bottleneck xavfini kamaytiradi.
-
Scalability-> Ko'pincha dasturiy yechimlar(software solutionlar) duch kelishi mumkin bo'lgan unumdorlikni pasaytirmasdan katta hajmdagi trafikni boshqarishi mumkin.
-
Security xususiyatlari-> Hardware appliancelari ko'pincha firewallar, SSL offloading va hujumni aniqlash(intrusion detection) tizimlari kabi o'rnatilgan xavfsizlik xususiyatlariga ega.
Hardware Load Balancerlar kamchiliklari
-
Narxi(Cost)-> Odatda maxsus hardware va ixtisoslashtirilgan komponentlar tufayli oldindan qimmatroq.
-
Cheklangan moslashuvchanlik(Limited Flexibility)-> Hardware appliancelari moslashtirish va boshqa tizimlar bilan integratsiyalashuv nuqtai nazaridan dasturiy echimlarga(software solutions) nisbatan cheklangan moslashuvchanlikka ega bo'lishi mumkin.
-
Yangilashning murakkabligi Hardware based load balancerlarni yangilash jismoniy jihozni almashtirishni o'z ichiga olishi mumkin, bu esa yangilanishlar vaqtida potentsial uzilishlar yoki operatsion murakkabliklarga olib kelishi mumkin.
DNS Load Balancing
DNS Load Balancing - bu DNS javoblarini(response) boshqarish orqali kiruvchi tarmoq trafigini bir nechta serverlar yoki endpointlar bo'ylab tarqatish uchun ishlatiladigan usul. U bir nechta IP manzillarni hal qilish uchun domen nomi bilan bog'langan DNS recordlarini o'zgartirish orqali ishlaydi, bu esa clientlarga DNS ruxsati asosida turli serverlarga ulanish imkonini beradi.
DNS Load Balancing load balancing uchun dasturiy ta'minot bilan belgilangan yondashuv bo'lib, bunda client so'rovlari Domain Name System(DNS) ichidagi domenga turli server mashinalari bo'ylab taqsimlanadi. DNS tizimi har safar yangi client so'roviga javob berishda IP-manzillar ro'yxatining boshqa versiyasini round-robin usuli yordamida yuboradi, shuning uchun overall loadni boshqarish uchun DNS so'rovlarini turli serverlarga teng ravishda taqsimlaydi. Bu, o'z navbatida, javob bermaydigan serverlarni avtomatik ravishda o'chirish orqali DNS load balancingdan himoyalanishni ta'minlaydi.
DNS Load balancing bir necha holatlarda hardware load balancingdan farq qiladi, garchi ikkalasi ham trafikni taqsimlash uchun juda samarali yechim bo'lishi mumkin. DNS darajasidagi load balancing asosiy afzalliklaridan biri bu scalability va narx(cost). DNS load balancer trafikni bir nechta turli IP manzillarga taqsimlaydi, hardware solution esa bitta IP manzildan foydalanadi va unga olib boradigan trafikni bir nechta serverlarga ajratadi. Narxlarga kelsak, hardware load balancerlari katta xarajatlarni talab qiladi, DNS load labancerlari esa kerak bo'lganda scale qilish mumkin.
Load Balancing turlari
-
SDN-> SDN(Software-Defined Networking) yordamida load balancing dasturni yetkazib berish uchun boshqaruv tekisligini ma'lumotlar tekisligidan ajratib turadi. Bu bir nechta load balancing boshqarish imkonini beradi. Shuningdek, u tarmoqqa hisoblash va saqlashning virtuallashtirilgan versiyalari kabi ishlashiga yordam beradi. Markazlashtirilgan(centralized) boshqaruv bilan network policy va parametrlarini to'g'ridan-to'g'ri yanada sezgir va samarali dastur xizmatlari uchun dasturlash mumkin. Shunday qilib, tarmoqlar yanada tezkor bo'lishi mumkin.
-
UDP-> UDP Load Balancer User Datagram Protocol(UDP) dan foydalanadi. UDP load balancer tez-tez jonli translyatsiyalar va onlayn o'yinlar uchun tezlik muhim bo'lganda va xatolarni tuzatishga ehtiyoj kam bo'lganda ishlatiladi. UDP past kechikishga(low latency) ega, chunki u ko'p vaqt talab qiladigan health checklarni ta'minlamaydi.
-
TCP-> TCP Load Balancer Transmission Control Protocol(TCP) foydalanadi. TCP Load Balanceri OSI modelining transport layerida (Layer 4) ishlaydigan load balancing mexanizmining bir turi bo'lib, kiruvchi TCP trafigini bir nechta serverlar yoki backend resurslari bo'ylab taqsimlashga qaratilgan. Application layeri load balancerlaridan (HTTP yoki HTTPS kabi higher-leveldagi protokollar bilan ishlaydi) farqli o'laroq, TCP load balancerlar TCP ulanishlari asosida trafikni application-layer tarkibini tekshirmasdan boshqaradi.
-
SLB-> Server Load Balancing(SLB) bir qator load balancing algoritmlaridan foydalangan holda network servicelarini va content deliveryni ta'minlaydi. U tarmoq orqali clientlarning aniq so'rovlariga javoblarni birinchi o'ringa qo'yadi. Server Load Balancing dasturning izchil(consistent) va high-performance ta'minlash uchun mijoz trafigini serverlarga taqsimlaydi. SLB odatda maxsus hardware yoki software-based load-balancerlari orqali amalga oshiriladi.
-
Virtual-> Virtual Load Balancing virtualizatsiya orqali software-driven infratuzilmani taqlid qilishga qaratilgan. U virtual mashinada physical load balancing appliancening dasturiy ta'minotini boshqaradi. Sodda qilib aytganda Virtual Load Balancing virtuallashtirilgan muhitda ishlashni optimallashtirish, high availabilityni ta'minlash va scalabilityni oshirish uchun virtual mashinalar, konteynerlar yoki virtuallashtirilgan serverlar kabi bir nechta virtual resurslar bo'ylab kiruvchi tarmoq trafigini taqsimlash jarayonini anglatadi. Biroq, virtual load balancerlari an'anaviy hardware appliancelarining arxitektura muammolaridan qochib qutula olmaydi, jumladan cheklangan scalability va avtomatlashtirish va central managementning yo'qligi.
-
Elastic-> Elastic Load Balancing talab vaqt o'tishi bilan o'zgarganligi sababli dasturga trafikni o'lchaydi. Application pool memberlari (application serverlar) holatini o'rganish uchun tizim sog'lig'ini tekshirishdan(health check) foydalanadi va trafikni mavjud serverlarga mos ravishda yo'naltiradi, high availability maqsadlariga o'tishni boshqaradi yoki avtomatik ravishda qo'shimcha imkoniyatlarni oshiradi.
-
Geographic-> Geographic Load Balancing maksimal samaradorlik va xavfsizlik uchun application trafigini turli joylarda joylashgan data centerlar bo'ylab qayta taqsimlaydi. Local Load Balancing bitta data centerda amalga oshirilsa-da, Geographic Load Balancing ko'p joylarda bir nechta data centerlardan foydalanadi. Geographic Load Balancing foydalanuvchilarning geografik joylashuvi asosida kiruvchi tarmoq trafigini taqsimlashni o'z ichiga oladi. Ushbu yondashuv foydalanuvchilarni geografik yaqinlik asosida eng yaqin yoki eng mos server yoki data-centerga yo'naltirish orqali kechikishni(latency) minimallashtirish va ishlashni optimallashtirishga qaratilgan. Geographic Load Balancing, ayniqsa, global foydalanuvchi bazasiga ega bo'lgan yoki turli mintaqalarda tarqalgan foydalanuvchilar uchun xizmatlarini optimallashtirishga intilayotgan korxonalar uchun foydalidir. Bu geografik yaqinlik asosida trafikni eng mos serverlarga yo'naltirish orqali uzluksiz, sezgir va ishonchli foydalanuvchi tajribasini ta'minlashda muhim rol o'ynaydi.
-
Multi-site-> Global Server Load Balancing(GSLB) deb ham ataladigan multi site load balancing butun dunyo bo'ylab bir nechta saytlar yoki joylarda joylashgan serverlar bo'ylab trafikni taqsimlaydi. Serverlar on-premises yoki public yoki private cloudda joylashtirilishi mumkin. Multi-site load balancing global foydalanishga intilayotgan korxonalar uchun juda muhim bo'lib, resurslardan foydalanishni optimallashtirish, unumdorlikni oshirish va turli geografik joylarda xizmatlar mavjudligini(service availability) saqlab qolish yo'lini taklif qiladi.
Stateful vs Stateless Load Balancing
Stateful Load Balancing
Stateful Load Balancing sessiya jadvali(session table) yordamida barcha joriy seanslarni kuzatib borishi mumkin. So'rovni bajarish uchun to'g'ri serverni tanlashdan oldin, u turli serverlarning yuki(load) kabi distributed load balancingdan foydalangan holda bir qator narsalarni ko'rib chiqishi mumkin. Stateful Load Balancing seans ma'lumotlarini(session information) saqlab, bir clientdan keyingi so'rovlar bir xil backend serveriga yo'naltirilishini ta'minlaydi. Client va server o'rtasidagi o'zaro aloqalar o'rtasidagi kontekst va seans holatini saqlaydi. Seans boshlanganidan va load distribution algorithmlari o'z manzil serverini tanlagandan so'ng, u barcha kelayotgan paketlarni sessiya tugaguniga qadar serverga yuboradi. Stateful Load Balancing algoritmlariga Least Connection, IP Hashni misol qilish mumkin.
Stateless Load Balancing
Stateful Load Balancing jarayonidan farqli o'laroq, Stateless Load Balancing ancha sodda jarayondir. Stateless Load Balancerining eng keng tarqalgan usuli bu clientning IP-manzilini kichik raqamga tushirishdir. Raqam balancer uchun qaysi server so'rovni qabul qilishini hal qilish uchun ishlatiladi. Stateless Load Balancing client so'rovlari va backend serverlari o'rtasida seans maʼlumotlari yoki kontekstni saqlamaydi. Har bir so'rov oldingi o'zaro aloqalarni hisobga olmasdan mustaqil ravishda ko'rib chiqiladi. Stateless Load Balancing algoritmlariga Round Robin, Weighted Round Robinni misol qilish mumkin.
Qo'shimcha
Foydalanilgan manbalar: avinetworks.com (opens in a new tab), cloudflare.com (opens in a new tab)
Qo'shimcha Resurslar
- NGINX Load Balancing (opens in a new tab)
- HAProxy bilan HTTP/TCP load balancing va monitoring (opens in a new tab)
Sana: 2023.12.16(2023-yil 16-dekabr)
Muallif: Otabek Ismoilov
Telegram (opens in a new tab) | Github (opens in a new tab) | LinkedIn (opens in a new tab) |
---|