Orodha ya Yaliyomo[Ficha][Onyesha]
Upatikanaji wa programu haujawahi kuchukuliwa kwa uzito kama ilivyo leo tunapotumia programu kwa zaidi ya mawasiliano tu, iwe ya kibinafsi au ya kitaalamu na wakati programu ndizo biashara.
Programu ambazo hazipo mtandaoni kila mara, au zisizo thabiti, hupoteza watumiaji na umuhimu wake, hatimaye kupitwa na wakati. Ilifanyika katika flash. Kwa sababu mtandao haulali kamwe na hufanya kazi saa 24 kwa siku, siku 7 kwa wiki, wazo kama hilo lazima litumike kwa programu.
Scalability ni muhimu kwa kufanya hivi na kuhakikisha upatikanaji wa programu. Kusawazisha mizigo ni mojawapo ya vipengele muhimu katika kuhakikisha upatikanaji. Watu wengi bado wanaamini kuwa kusawazisha mzigo kunaweza kukamilishwa na hati rahisi.
Hata hivyo, hii sivyo. Ni pekee hutoa ufikiaji wa programu kote ulimwenguni - wakati wowote na kutoka kwa kifaa chochote.
Katika chapisho hili, tutaangalia kwa undani kusawazisha mzigo, kanuni zake, na jinsi inavyohusiana na huduma ndogo, kati ya mambo mengine. Hebu tuanze!
Kusawazisha mzigo ni nini?
Kadiri mahitaji ya tovuti au programu ya biashara yanavyoongezeka, seva moja haitaweza kushughulikia mzigo wote hivi karibuni. Mashirika husambaza mzigo wa kazi kwenye seva nyingi ili kukidhi mahitaji. Njia hii, inayojulikana kama "kusawazisha upakiaji," huzuia seva moja isipakiwe kupita kiasi, ambayo inaweza kusababisha kupunguza kasi, kuacha maombi au hata kuacha kufanya kazi.
Kusawazisha mizigo husambaza trafiki ya mtandao kwa usawa ili kuepuka kushindwa kutokana na upakiaji wa rasilimali. Programu, tovuti, hifadhidata, na rasilimali nyingine za kompyuta hufanya kazi vizuri zaidi na zinapatikana zaidi kwa kutumia njia hii. Pia husaidia katika usindikaji sahihi na kwa wakati wa maombi ya mtumiaji.
Kwa mtazamo wa mtumiaji, kusawazisha upakiaji hutumika kama mpatanishi asiyeonekana kati ya mteja na mkusanyiko wa seva, kuhakikisha kwamba maombi ya muunganisho hayatutwi. Programu, tovuti, hifadhidata na huduma za mtandaoni zinaweza kuporomoka ikiwa mahitaji yatakuwa makubwa sana bila kusawazisha mzigo.
Mamia ya maelfu ya maombi ya watumiaji yanaweza kutumwa kwa tovuti moja yenye trafiki nyingi kwa wakati mmoja. Seva nyingi zinahitajika ili kujaza kurasa za wavuti kwa usahihi na maudhui yaliyoombwa, kama vile maandishi, picha, video na utiririshaji wa sauti. Kusawazisha mizigo kwa kawaida hutumika katika mashamba ya seva ya tovuti yenye trafiki nyingi, pamoja na seva za DNS, hifadhidata na tovuti za Itifaki ya Uhamisho wa Faili (FTP).
Ikiwa seva moja imelemewa, hii inaweza kufanya kazi vibaya au hata kuacha kufanya kazi. Visawazishaji vya mizigo hupunguza uwezekano wa muda wa kupungua kwa kusambaza maombi ya watumiaji kwa usawa kati ya mkusanyiko wa seva. Ikiwa moja ya seva kwenye kikundi itashindwa, trafiki inaelekezwa kwa seva zingine kwenye kikundi. Kisawazisha cha upakiaji huongeza seva mpya kiotomatiki katika mchakato wa usambazaji wa trafiki zinapoongezwa kwenye kundi la seva.
Usawazishaji wa mzigo hufanyaje kazi?
Inafanya kazi kama ifuatavyo:
- Wakati mteja anapokea ombi, kama vile kupitia kivinjari au programu, hujaribu kuunganishwa na seva.
- Kisawazisha mizigo kinapopokea ombi, huielekeza kwa mojawapo ya seva katika kundi la seva kulingana na ruwaza zilizowekwa na algoriti (au shamba).
- Seva hupokea ombi la uunganisho na hujibu mteja kupitia sawazisha la mzigo.
- Wakati usawa wa mzigo unapokea jibu, inafanana na anwani ya IP ya mteja na anwani ya IP ya seva iliyochaguliwa. Kufuatia hilo, jibu hupitishwa na pakiti.
- Upakuaji wa SSL ni mchakato wa kusimbua data kwa kutumia itifaki ya usimbaji ya Tabaka la Usalama ili seva zisilazimike kufanya hivyo.
- Utaratibu unarudiwa hadi kikao kitakapomalizika.
Njia za Kusawazisha Mzigo
Ili kuchagua seva katika shamba la seva inayopokea ombi linalofuata, kila mbinu ya kusawazisha mzigo hutumia seti ya vigezo. Kuna njia tano za kawaida za kusawazisha mzigo:
- Mzunguko wa Robin: Hii ndiyo mbinu chaguo-msingi, na inafanya kazi kama inavyosikika. Kisawazisha cha mzigo husambaza maombi katika muundo unaozunguka, kuanzia seva ya kwanza kwenye kikundi na kuendelea hadi chini, ambapo inasubiri kuitwa tena. Njia hii inahakikisha kwamba kila seva inashughulikia takriban idadi sawa ya miunganisho.
- Uzito wa pande zote Robin: Mbinu hii inapeana kila seva uzito (au upendeleo) ambao kwa ujumla ni sawia na uwezo wake. Kadiri seva inavyopokea maombi zaidi, ndivyo uzito unavyoongezeka. Kwa mfano, seva yenye thamani ya uzito wa mbili hupokea maombi mara mbili ya seva yenye thamani ya uzito wa moja.
- Kipindi Nata: Mbinu hii, pia inajulikana kama kuendelea kwa kipindi, huunganisha wateja na seva fulani kwa muda wa kipindi. Ili kuanzisha kiungo, kiweka usawazishaji hutumia kidakuzi au anwani ya IP ya mtumiaji kutambua sifa ya mtumiaji. Mara tu muunganisho utakapoanzishwa, maombi ya mtumiaji yanaelekezwa kwa seva moja hadi kipindi kitakapomalizika. Hii huboresha rasilimali za mtandao huku pia ikiboresha matumizi ya mtumiaji.
- Uunganisho mdogo: Mkakati huu unachukulia kuwa maombi yote husababisha mzigo sawa wa seva. Kama matokeo, seva iliyo na idadi ndogo ya maombi hupokea ombi linalofuata.
- Hashi ya IP: Kanuni hii inazalisha ufunguo wa kipekee wa hashi kulingana na chanzo cha mteja na seva na anwani za IP za kulengwa. Ufunguo hutumika kuelekeza ombi na huruhusu muunganisho uliopotea na seva hiyo hiyo kuanza tena.
Vifaa Vs. Mizani ya Upakiaji wa Programu
Kisawazisha cha Upakiaji wa Vifaa
Maunzi halisi, kama vile kifaa, huunda vidhibiti vya upakiaji wa maunzi. Njia hizi hupata trafiki kwa seva kulingana na sababu kama vile idadi ya miunganisho iliyopo, matumizi ya kichakataji na utendakazi wa seva. Visawazishi vya upakiaji wa maunzi vina programu miliki inayostahili kudumishwa na kusasishwa matoleo mapya na marekebisho ya usalama yanapopatikana.
Visawazishaji vya upakiaji wa maunzi mara nyingi hutoa utendakazi na udhibiti wa hali ya juu, pamoja na anuwai pana ya uwezo kama vile uthibitishaji wa Kerberos na kuongeza kasi ya maunzi ya SSL, lakini zinahitaji kiwango fulani cha usimamizi na utaalam wa matengenezo. Kwa sababu visawazishaji vya upakiaji wa maunzi havibadiliki na vinaweza kupanuka kuliko visawazisha upakiaji wa programu, kuna mwelekeo wa kutoa visawazishaji vya upakiaji wa maunzi kupita kiasi.
Kisawazisha cha Upakiaji wa Programu
Visawazishaji vya upakiaji wa programu kwa kawaida ni rahisi kusanidi kuliko wenzao wa maunzi. Pia ni za gharama nafuu na zinaweza kubadilika, na zinafanya kazi vizuri na mazingira ya ukuzaji wa programu. Mbinu ya programu hukuruhusu kubinafsisha kisawazisha mzigo kulingana na mahitaji halisi ya mazingira yako. Kuongezeka kwa kubadilika kunaweza kuja kwa gharama ya muda wa ziada unaotumiwa kusanidi kusawazisha mzigo.
Visawazishaji vya programu hukupa unyumbufu mkubwa zaidi wa kufanya marekebisho na masasisho kuliko yale ya maunzi, ambayo yana mbinu ya kisanduku funge zaidi. Mashine pepe zilizopakiwa mapema zinaweza kutumika kama visawazishaji vya upakiaji wa programu (VMs). Mashine pepe zitakuokoa muda wa kuweka, lakini huenda zisiwe na utendaji wote unaopatikana katika vifaa vyao vya maunzi.
Utekelezaji Rahisi wa Kusawazisha Mzigo
Tutatumia maktaba ya Cloud Cloud kwa tengeneza programu zinazounganishwa na programu zingine kwa njia ya kusawazisha mzigo. Tunapochakata maombi ya huduma ya mbali, tunaweza kuunda kusawazisha mzigo kwa urahisi kwa kutumia mbinu yoyote tunayopenda. Fikiria nambari ifuatayo kama mfano. Tutaanza na programu ya msingi ya seva.
Seva itakuwa na sehemu moja tu ya mwisho ya HTTP na itaendeshwa katika matukio kadhaa. Kisha tutaunda programu ya mteja inayotumia Load Balancer kusambaza maombi katika matukio kadhaa ya seva.
server
Tunaanza na msingi Kiatu cha chemchemi maombi ya seva yetu ya mfano:
Kuanza, tunaingiza kigezo kinachoweza kugeuzwa kukufaa kiitwacho example_ID. Hii inatusaidia kutofautisha kati ya matukio mengi ambayo yanafanya kazi. Kufuatia hilo, tunaunda ncha moja ya HTTP GET ambayo inarudisha ujumbe na kitambulisho cha mfano.
Mfano chaguo-msingi wa ID 1 utafanya kazi kwenye mlango 8080. Tunahitaji tu kuongeza vigezo vichache vya programu ili kuzindua tukio la pili:
mteja
Hebu sasa tuangalie msimbo wa mteja. Hapa ndipo Kisawazisha cha Mizigo kinapokuja, kwa hivyo wacha tuanze kwa kukijumuisha kwenye programu yetu:
Kufuatia hilo, tunatengeneza utekelezaji wa ServiceInstanceListSupplier. Hii ni mojawapo ya violesura muhimu zaidi katika Kisawazisha cha Kupakia. Inabainisha jinsi tunavyopata matukio ya huduma zinazoweza kufikiwa.
Tutaweka msimbo kwa bidii matukio mawili tofauti ya seva yetu ya mfano katika sampuli ya programu tumizi. Zinaendesha kwenye mfumo huo huo lakini hutumia bandari tofauti:
Unda darasa la LoadBalancerConfiguration sasa:
Darasa hili lina kusudi moja tu: huunda kijenzi cha WebClient kilichosawazishwa kwa kufanya maombi ya mbali. Ufafanuzi wetu unatumia jina la uwongo kwa huduma.
Hii ni kwa sababu ya ukweli kwamba hatutajua majina ya wapangishaji na bandari sahihi za matukio mapema. Kwa hivyo, tunatumia jina la uwongo kama kishikilia nafasi, na mfumo utachukua nafasi ya taarifa halisi inapochagua mfano unaoendelea.
Ifuatayo, wacha tutengeneze darasa la Usanidi litakalotumika kusisitiza utoaji wetu wa mfano wa huduma. Kumbuka kuwa tunatumia lakabu sawa na hapo awali:
Sasa tunaweza kuunda programu halisi ya mteja. Wacha tutume maswali 10 kwa seva ya sampuli kwa kutumia maharagwe ya WebClient kutoka hapo awali:
Tunaweza kuona kutoka kwa matokeo kwamba tunapakia kusawazisha kati ya hali mbili tofauti:
Kusawazisha Mizigo katika Huduma Ndogo
Usanifu wa Microservice unatumiwa na makampuni kadhaa, kama vile Netflix na Amazon, kuendeleza programu za biashara kama seti ya huduma zilizounganishwa kwa urahisi. Uwasilishaji wa kiwango kikubwa na unaoendelea kwa programu ngumu ni sababu mbili tu za kuhamia usanifu huu uliosambazwa, uliounganishwa kwa urahisi.
Timu za biashara hizi zimetekeleza mikakati ya Agile na DevOps ili kuzalisha programu haraka na kwa kiwango cha chini cha kushindwa kuliko mbinu za jadi. Hata hivyo, lazima uwe na usawa kati ya utata wa usanifu uliosambazwa na mahitaji ya programu, mahitaji ya vipimo na vikwazo vya muda hadi soko.
Kwa miaka mingi sana, vidhibiti vya uwasilishaji wa programu (ADCs) vimekuwa muhimu ili kukidhi mahitaji ya kiwango cha huduma kwa programu za kampuni zinazopangishwa kwenye tovuti au katika wingu. Mteja anayejihusisha na programu inayotegemea huduma ndogo hahitaji kujua kuhusu matukio ambayo hutoa ili kukuza mteja na huduma ndogo kwa kujitegemea.
Huu hasa ni utenganisho unaotolewa na proksi ya kinyume au mizani ya mzigo. Tena, kusawazisha mzigo ndio suluhisho la kuhakikisha kuwa huduma ndogo zinaweza kushughulikia mahitaji, usalama, na upatikanaji.
Unapochanganya usawazishaji wa kawaida wa upakiaji wa Kaskazini-Kusini kati ya programu zinazotegemea mteja na huduma ndogo na uwekaji wa Mashariki-Magharibi kwa upanuzi mlalo, unapata ongezeko kubwa. Kusudi ni kudumisha mazingira salama na yaliyodhibitiwa yanayohitajika na TEHAMA bila kuacha wepesi wa maendeleo au Uendeshaji wa DevOps mahitaji.
Faida
Usawazishaji wa mizigo hutoa manufaa mbalimbali kwa kuboresha matumizi ya rasilimali, uwasilishaji wa data na muda wa majibu kwa tovuti na programu zenye trafiki nyingi, pamoja na hifadhidata zinazopata idadi kubwa ya maswali. Usawazishaji wa mizigo huhakikisha kwamba maombi ya mtumiaji yanatimizwa haraka na kwa usahihi katika hali za trafiki nyingi.
Wanaokoa watumiaji kuongezeka kwa kushughulika na programu na rasilimali za uvivu. Kusawazisha mizigo pia husaidia kuepuka muda wa kupungua na kurahisisha usalama, kupunguza hatari ya kupoteza tija na mapato kwa kampuni yako.
- Kusawazisha mizigo hutoa urahisi wa kuongeza na kuondoa seva kama mahitaji yanavyoamuru, pamoja na kudhibiti trafiki kwa ufanisi zaidi. Kwa sababu trafiki huelekezwa kwa seva zingine wakati wa matengenezo, inawezekana pia kufanya matengenezo ya seva bila kutatiza watumiaji.
- Kusawazisha mzigo hutoa upunguzaji wa ndani kwa kugawa trafiki kati ya seti ya seva. Unaweza kuelekeza mzigo kwa seva zingine mara moja ikiwa moja itashindwa, na kupunguza athari kwa watumiaji.
- Ikiwa matumizi ya programu au tovuti yataongezeka, ongezeko la trafiki linaweza kuharibu utendakazi wake lisiposhughulikiwa vyema. Kwa kusawazisha upakiaji, unaweza kuongeza seva halisi au pepe ili kukidhi mahitaji bila kutatiza huduma. Kisawazisha cha upakiaji hutambua seva mpya zinapokuja mtandaoni na kuzijumuisha kwa urahisi katika operesheni. Njia hii inafaa zaidi kwa kuhamisha tovuti kutoka kwa seva iliyolemewa hadi kwa mpya, ambayo mara nyingi inajumuisha wakati wa kupumzika.
Hitimisho
Kusawazisha mizigo ni sehemu muhimu ya mifumo ya kisasa, inayostahimili makosa. Tunaweza tu kuunda programu zinazosambaza maombi kwa matukio mengi ya huduma kwa kutumia mbinu mbalimbali za kusawazisha mzigo. Biashara lazima ziauni mifumo changamano ya TEHAMA ili kutoa programu kwa usalama.
Usanidi wa huduma ndogo za kikoa tofauti, uwekaji na urekebishaji huenda zikakabiliwa na makosa, ghali na zinazotumia muda mwingi. IT inapaswa kutumia otomatiki, mwonekano, uchanganuzi, na mbinu bora za upangaji na teknolojia zinazooana na michakato yao mahiri na ya DevOps ili kurahisisha usanidi na matengenezo ya huduma hizi ndogo.
Acha Reply