Edukien aurkibidea[Ezkutatu][Erakutsi]
Aplikazioen erabilgarritasuna inoiz ez da gaur egun bezain serio hartu aplikazioak komunikazio hutserako erabiltzen ditugunean, pertsonala edo profesionala izan eta aplikazioak negozioa direnean.
Etengabe sarean ez dauden edo ezegonkorrak diren aplikazioek erabiltzaileak eta garrantzia galtzen dute, eta azkenean zaharkituta geratzen dira. Flash batean gertatu zen. Internetek ez du inoiz lo egiten eta eguneko 24 orduetan eta asteko 7 egunetan funtzionatzen duenez, ideia bera aplikatu behar da aplikazioetan.
Eskalagarritasuna funtsezkoa da hori egiteko eta aplikazioen erabilgarritasuna ziurtatzeko. Karga orekatzea erabilgarritasuna bermatzeko osagai garrantzitsuenetako bat da. Jende askok oraindik uste du karga orekatzea script sinple batekin lor daitekeela.
Hala ere, ez da horrela. Bakarrik mundu osoko programetarako sarbidea eskaintzen du, edozein unetan eta edozein gailutatik.
Argitalpen honetan, karga orekatzeari, bere algoritmoei eta mikrozerbitzuekin nola erlazionatzen den aztertuko dugu, besteak beste. Has gaitezen!
Zer da karga orekatzea?
Webgune edo negozio aplikazio baten eskaera hazten doan heinean, zerbitzari bakar batek ezin izango du laster karga osoa kudeatu. Erakundeek lan-karga zerbitzari ugaritan banatzen dute eskaera asetzeko. Metodo honek, "karga orekatzea" izenez ezagutzen dena, zerbitzari bakar bat gainkarga ez dadin mantentzen du, eta horrek moteltzea, eskaerak kentzea edo huts egitea eragin dezake.
Karga orekatzeak sareko trafikoa berdin banatzen du baliabideen gainkargaren ondorioz hutsegiteak ekiditeko. Aplikazioek, webguneek, datu-baseek eta bestelako baliabide informatikoek hobeto funtzionatzen dute eta eskuragarriago daude metodo hau erabiliz. Erabiltzaileen eskaerak behar bezala eta garaiz prozesatzen laguntzen du.
Erabiltzailearen ikuspuntutik, karga-orekatzeak bezero baten eta zerbitzarien bildumaren artean ikusten ez den bitartekari gisa balio du, konexio-eskaerak kentzen ez direla bermatuz. Aplikazioak, webguneak, datu-baseak eta lineako zerbitzuak ziurrenik eroriko lirateke eskaria handiegia izango balitz karga orekatu gabe.
Erabiltzaileen ehunka milaka eskaera bidal daitezke aldi berean trafiko handiko webgune bakar batera. Hainbat zerbitzari behar dira web-orriak behar bezala betetzeko eskatutako edukiarekin, hala nola, testua, irudiak, bideoa eta audio-streaminga. Karga-orekatzea normalean trafiko handiko webguneko zerbitzari-ustiategietan erabiltzen da, baita DNS zerbitzarietan, datu-baseetan eta Fitxategien Transferentzia Protokoloetan (FTP) guneetan ere.
Zerbitzari bakarra gainkargatuta badago, honek gaizki funtziona dezake edo huts egin dezake. Karga-orekatzaileek geldialdi-denbora izateko aukera murrizten dute, erabiltzaileen eskaerak zerbitzari multzo baten artean berdin banatuz. Taldeko zerbitzarietako batek huts egiten badu, trafikoa taldeko beste zerbitzarietara bideratzen da. Karga-orekatzaileak automatikoki gehitzen ditu zerbitzari berriak trafikoa banatzeko prozesuan, zerbitzari multzora gehitzen direnean.
Nola funtzionatzen du karga orekatzeak?
Honela funtzionatzen du:
- Bezero batek eskaera bat jasotzen duenean, arakatzaile edo aplikazio baten bidez adibidez, zerbitzariarekin konektatzen saiatzen da.
- Karga-orekatzaileak eskaera bat jasotzen duenean, zerbitzari-talde bateko zerbitzarietako batera bideratzen du algoritmoak (edo baserriak) ezarritako ereduetan oinarrituta.
- Zerbitzariak konexio eskaera jasotzen du eta bezeroari erantzuten dio karga-orekatzailearen bidez.
- Karga-balantzatzaileak erantzuna jasotzen duenean, bezeroaren IP helbidea bat egiten du hautatutako zerbitzariaren IP helbidearekin. Horren ostean, erantzuna paketearekin transmititzen da.
- SSL deskarga datuak Security Socket Layer enkriptatzeko protokoloa erabiliz deszifratzeko prozesua da, zerbitzariek beharrik izan ez dezaten.
- Prozesua errepikatzen da saioa amaitu arte.
Karga orekatzeko metodoak
Zerbitzari-baserri bateko zerbitzarietako zeinek hurrengo eskaera jasotzen duen hautatzeko, karga orekatzeko teknika bakoitzak irizpide multzo bat erabiltzen du. Karga orekatzeko bost ikuspegi tipiko daude:
- Round Robin: Hau da ikuspegi lehenetsia, eta dirudien bezala funtzionatzen du. Karga-balantzatzaileak txandakako ereduan banatzen ditu eskaerak, taldeko lehen zerbitzaritik hasi eta behealderaino, non berriro deitzeko zain dagoen. Metodo honek zerbitzari bakoitzak konexio kopuru bera kudeatzen duela ziurtatzen du.
- Round Robin haztatua: Ikuspegi honek zerbitzari bakoitzari pisu (edo hobespen) bat esleitzen dio, oro har, bere ahalmenarekiko proportzionala dena. Zenbat eta eskaera gehiago jaso zerbitzari batek, orduan eta pisu handiagoa. Esaterako, bi pisu-balioa duen zerbitzari batek pisu-balioa duen zerbitzari batek baino bi aldiz eskaera gehiago jasotzen ditu.
- Saio itsaskorra: Ikuspegi honek, saioaren iraunkortasuna izenez ere ezagutzen dena, zenbait bezero eta zerbitzari konektatzen ditu saioak irauten duen bitartean. Esteka ezartzeko, karga-orekatzaileak cookie bat edo erabiltzailearen IP helbidea erabiltzen du erabiltzailearen atributu bat identifikatzeko. Konexioa ezarrita, erabiltzailearen eskaerak zerbitzari berera bideratzen dira saioa amaitu arte. Horrek sareko baliabideak optimizatzen ditu, erabiltzailearen esperientzia ere hobetzen du.
- Konexio txikienak: Estrategia honek eskaera guztiek zerbitzariaren zama berdina eragiten dutela suposatzen du. Ondorioz, eskaera kopuru txikiena duen zerbitzariak hurrengo eskaera jasotzen du.
- IP Hash: Algoritmo honek hash gako esklusibo bat sortzen du bezeroaren eta zerbitzariaren iturburu eta helmugako IP helbideetan oinarrituta. Gakoa eskaera bideratzeko erabiltzen da eta zerbitzari berarekin galdutako konexioa berriro hastea ahalbidetzen du.
Hardwarea vs. Softwarearen karga-orekatzaileak
Hardwarearen karga-balantzatzailea
Hardware fisikoak, adibidez, etxetresna elektrikoak, hardwarearen karga-orekatzaileak osatzen ditu. Hauek zerbitzarietara bideratzen dute trafikoa lehendik dauden konexio kopurua, prozesadorearen erabilera eta zerbitzariaren errendimendua bezalako faktoreen arabera. Hardwarearen karga-orekatzaileek firmware jabeduna dute, bertsio berriak eta segurtasun-konponketak eskuragarri daudenean mantendu eta eguneratu beharrekoa.
Hardwarearen karga-orekatzaileek maiz errendimendu eta kontrol handiagoa eskaintzen dute, baita gaitasun sorta zabalagoa ere, hala nola Kerberos autentifikazioa eta SSL hardware azelerazioa, baina kudeaketa- eta mantentze-maila jakin batzuk behar dituzte. Hardware-karga-orekatzaileak software-karga-orekatzaileak baino malguak eta eskalagarriak ez direnez, hardware-karga-orekatzaileak gehiegi hornitzeko joera dago.
Softwarearen karga-orekatzailea
Softwarearen karga-orekatzaileak normalean errazagoak dira konfiguratzen dituzten hardwarearen parekoak baino. Gainera, errentagarriagoak eta moldagarriagoak dira, eta ondo funtzionatzen dute softwarea garatzeko inguruneekin. Software-metodoak karga-orekatzailea zure ingurunearen eskakizun zehatzetara pertsonalizatzeko aukera ematen du. Malgutasun handiagoa karga-orekatzailea konfiguratzen igarotako denbora gehigarriaren kontura etor daiteke.
Software-orekatzaileek malgutasun handiagoa eskaintzen dizute aldaketak eta eguneraketak egiteko hardware-ak baino, kutxa itxiagoa duten ikuspegia dutenak. Aurrepaketatutako makina birtualak softwarearen karga orekatzeko (VM) gisa erabil daitezke. Makina birtualek konfigurazio denbora pixka bat aurreztuko dizute, baina baliteke bere hardwarearen parekoetan funtzionalitate guztiak erabilgarri ez izatea.
Karga orekatzeko ezarpen sinplea
Spring Cloud liburutegia erabiliko dugu aplikazioak sortu beste aplikazio batzuekin karga orekatuan konektatzen direnak. Urruneko zerbitzu-eskaerak prozesatzen ditugun bitartean, erraz eraiki dezakegu karga-orekatzea nahi dugun teknika erabiliz. Demagun hurrengo kodea adibide gisa. Zerbitzariaren oinarrizko aplikazio batekin hasiko gara.
Zerbitzariak HTTP amaierako puntu bakarra izango du eta hainbat kasutan funtzionatuko du. Ondoren, Load Balancer erabiltzen duen bezero-aplikazio bat eraikiko dugu eskaerak hainbat zerbitzari-instantziatan banatzeko.
Server
Oinarrizko batekin hasiko gara Udaberriko bota gure adibide zerbitzarirako aplikazioa:
Hasteko, instantzia_ID izeneko aldagai pertsonalizagarria injektatzen dugu. Horrek funtzionatzen ari diren instantzia ugari bereizten laguntzen digu. Horren ostean, mezua eta instantzia ID bat itzultzen dituen HTTP GET amaierako puntu bakarra sortzen dugu.
ID 1 duen instantzia lehenetsiak 8080 atakan funtzionatuko du. Programaren parametro batzuk bakarrik gehitu behar ditugu bigarren instantzia bat abiarazteko:
Bezero
Ikus dezagun orain bezeroaren kodeari. Hemen sartzen da Load Balancer, beraz, has gaitezen gure aplikazioan sartzen:
Horren ostean, ServiceInstanceListSupplier inplementazioa garatzen dugu. Hau Load Balancer-en interfaze garrantzitsuenetako bat da. Zerbitzu-instantzia irisgarriak nola kokatzen ditugun zehazten du.
Gure adibideko zerbitzariaren bi instantzia gogor kodetuko ditugu gure adibideko aplikazioan. Sistema berean exekutatzen dira, baina portu bereiziak erabiltzen dituzte:
Sortu LoadBalancerConfiguration klase bat orain:
Klase honek helburu bakarra du: karga orekatuko WebClient eraikitzailea sortzen du urruneko eskaerak egiteko. Gure oharpenak fikziozko izen bat erabiltzen du zerbitzurako.
Izan ere, ziurrenik instantziak exekutatzeko ostalari-izen eta ataka zehatzak ez ditugula jakingo aldez aurretik. Ondorioz, leku-mark gisa fikziozko izen bat erabiltzen dugu, eta markoak benetako informazioa ordezkatuko du martxan dagoen instantzia bat hautatzen duenean.
Ondoren, egin dezagun gure zerbitzu-instantzia hornidura instantziatzeko erabiliko den Konfigurazio-klase bat. Kontuan izan lehengo alias bera erabiltzen dugula:
Orain benetako bezeroaren aplikazioa eraiki dezakegu. Bidal ditzagun 10 kontsulta lagin zerbitzarira lehenagotik WebClient bean erabiliz:
Irteeran ikus dezakegu karga orekatzen ari garela bi instantzia ezberdinen artean:
Mikrozerbitzuetan karga orekatzea
Mikrozerbitzuen arkitektura hainbat konpainiak erabiltzen ari dira, Netflix eta Amazon bezalakoak, negozio-aplikazioak garatzeko, erraz konektatutako zerbitzuen multzo gisa. Aplikazio konplikatuetarako hipereskala eta etengabeko bidalketa banatutako eta erraz konektatutako arkitektura honetara pasatzeko arrazoietako bi baino ez dira.
Enpresa horien taldeek Agile eta DevOps estrategiak ezarri dituzte aplikazioak metodo tradizionalek baino azkarrago eta porrot tasa txikiagoarekin ekoizteko. Hala ere, arkitektura banatuaren konplexutasunaren eta aplikazioaren eskakizunen, eskala-eskakizunen eta merkaturatzeko denbora-mugaren arteko oreka lortu behar duzu.
Hainbeste urtez, aplikazioak entregatzeko kontrolatzaileak (ADC) funtsezkoak izan dira lokalean edo hodeian ostatatutako aplikazio korporatiboen zerbitzu-mailako eskakizunak betetzeko. Mikrozerbitzuetan oinarritutako aplikazio batekin parte hartzen ari den bezero batek ez ditu hornitzen ari diren instantzien berri izan behar bezeroa eta mikrozerbitzuak modu independentean hazteko.
Hau da, hain zuzen, alderantzizko proxy edo karga-orekatzaile batek eskaintzen duen desakoplamendua. Berriz ere, karga orekatzea mikrozerbitzuek eskaera, segurtasuna eta erabilgarritasuna kudeatu ditzaketela ziurtatzeko irtenbidea da.
Bezeroen eta mikrozerbitzuetan oinarritutako aplikazioen artean Ipar-Hego karga-oreka tradizionala konbinatzen duzunean Ekialde-Mendebaldearen inplementazioa eskalagarritasun horizontalerako, bultzada handia lortzen duzu. Helburua informatikak eskatzen duen ingurune seguru eta arautua mantentzea da, garapen arintasunari uko egin gabe edo DevOps automatizazioa baldintzak.
Abantailak
Karga-orekatzeak hainbat onura eskaintzen ditu trafiko handiko webgune eta aplikazioetarako baliabideen erabilera, datuen entrega eta erantzun denbora hobetuz, baita kontsulta ugari jasotzen dituzten datu-baseetan ere. Karga orekatzeak erabiltzaileen eskaerak azkar eta zuzen betetzen direla ziurtatzen du trafiko handiko eszenatokietan.
Erabiltzaileei programa eta baliabide geldoei aurre egitearen larritasuna aurrezten dute. Kargaren orekatzeak geldialdi-denbora saihesten eta segurtasuna sinplifikatzen laguntzen du, zure enpresarentzat produktibitatea eta irabaziak galtzeko arriskua murrizten.
- Karga-orekatzeak zerbitzariak gehitzeko eta kentzeko malgutasuna eskaintzen du eskariak agintzen duen moduan, trafikoa eraginkortasun ezin hobean kudeatzeaz gain. Mantentze-lanetan trafikoa beste zerbitzari batzuetara desbideratzen denez, zerbitzariaren mantentze-lanak egitea ere egingarria da erabiltzaileei eten gabe.
- Karga orekatzeak erredundantzia integratua eskaintzen du trafikoa zerbitzari multzo baten artean banatuz. Karga berehala beste zerbitzari batzuetara desbideratu dezakezu batek huts egiten badu, erabiltzaileen gaineko eragina gutxituz.
- Aplikazio edo webgune baten erabilera hazten bada, trafikoaren gehikuntzak bere errendimendua kaltetu dezake modu eraginkorrean kudeatzen ez bada. Karga orekatzearekin, zerbitzari erreal edo birtual bat gehi dezakezu eskaerari erantzuteko, zerbitzua eten gabe. Karga-orekatzaileak zerbitzari berriak identifikatzen ditu sarean sartzen diren heinean eta ahaleginik gabe txertatzen ditu eragiketan. Metodo hau hobe da webgune bat gainkargatutako zerbitzari batetik berri batera migratzea baino, eta horrek maiz geldialdi bat dakar.
Ondorioa
Karga orekatzea egungo sistema akatsekiko tolerantziaren osagai kritikoa da. Eskaerak hainbat zerbitzu-instantziatara banatzen dituzten aplikazioak eraiki ditzakegu, karga orekatzeko hainbat ikuspegi erabiliz. Enpresek sistema informatiko konplikatuak onartu behar dituzte aplikazioak modu seguruan eskaintzeko.
Domeinuen arteko mikrozerbitzuen konfigurazioa, hedapena eta mantentze-lanak akatsak izateko joera izan dezakete, garestiak eta denbora asko eskatzen dute. Informatikak automatizazioa, ikusgarritasuna, analitika eta orkestrazio praktika onak eta teknologiak erabili beharko lituzke beren prozesu arin eta DevOpsekin bateragarriak diren mikrozerbitzu horien konfigurazioa eta mantentze-lana errazteko.
Utzi erantzun bat