paint-brush
Decoding Load Balancing Primitivessa pamamagitan ng@fairday
39,939 mga pagbabasa
39,939 mga pagbabasa

Decoding Load Balancing Primitives

sa pamamagitan ng Aleksei4m2024/02/26
Read on Terminal Reader
Read this story w/o Javascript

Masyadong mahaba; Upang basahin

Kapag ini-scale ang iyong system upang ma-accommodate ang tumaas na trapiko at mga user, maaari kang pumili sa pagitan ng vertical scaling, na nagpapalakas ng lakas ng server, at horizontal scaling, na kinabibilangan ng pagdo-duplicate ng mga server. Bagama't mas simple ang vertical scaling, mayroon itong mga limitasyon tulad ng mga hadlang sa hardware. Ang pahalang na scaling na may mga load balancer ay nag-aalok ng flexibility ngunit nangangailangan ng pamamahala ng statelessness at pag-deploy ng mga diskarte. Ang pag-unawa sa L4 at L7 load balancer ay mahalaga, na ang L4 ay mas secure at gumaganap, habang ang L7 ay nag-aalok ng matalinong pagruruta sa gastos ng kahusayan. Ang pagpili ng tamang diskarte ay nakasalalay sa mga kinakailangan ng system at pagbabalanse ng seguridad at pagsasaalang-alang sa pagganap.

People Mentioned

Mention Thumbnail
featured image - Decoding Load Balancing Primitives
Aleksei HackerNoon profile picture
0-item


Sa tuwing lumalaki ang iyong system, tumataas ang trapiko, dumarami ang gumagamit ng iyong mga produkto, nagsisimulang tumugon ang mga server nang mas mabagal, pinipilit ng downtime na magdusa ang iyong negosyo pagkatapos ay magsisimula kang mag-isip tungkol sa pag-scale.


Mayroong dalawang pangunahing diskarte para sa pag-scale - patayo at pahalang.


Ang vertical scaling ay naglalayon na pataasin ang kapangyarihan ng system sa pamamagitan ng pagdaragdag ng karaniwang mas maraming CPU, at RAM sa iyong mga server.


Sa kabaligtaran, ang pahalang na pag-scale ay nakatuon sa pag-duplicate (o pag-clone) ng iyong mga server sa pool ng mga mapagkukunan.


Higit pa sa mga ito:


Vertical scaling

Ang vertical scaling ay ang pinakamahusay na opsyon para sa isang low-traffic system dahil ito ang pinaka-naa-access na diskarte para sa paghawak ng paglago nang hindi nagpapakilala ng karagdagang kumplikado. Hindi mo kailangang alalahanin ang tungkol sa pag-deploy ng mga diskarte para sa isang pangkat ng mga mapagkukunan, ang pagkalastiko ng pool ng mga mapagkukunan, ang statelessness ng iyong server, ang ipinamahagi na cache, at iba pa.


Gayunpaman, ang vertical scaling ay may mga seryosong disbentaha

  1. Limitasyon sa hardware dahil imposible nang walang katapusan na magdagdag ng mga mapagkukunan
  2. Ang kakulangan ng failover at redundancy ay nagpapataas ng panganib na magkaroon ng matagal na downtime at pagkawala ng data


Pahalang na pag-scale

Inaalis ng pahalang na pag-scale ang mga problemang ito sa pamamagitan ng pag-clone ng iyong mga server ng application at pag-embed ng isang bahagi gaya ng Load balancer .


Ang isang load balancer ay namamahagi ng trapiko sa iyong mga server gamit ang mga partikular na algorithm gaya ng:


  1. Round-robin
  2. Timbang round-robin
  3. IP hash-based na mga diskarte
  4. Pinakamababang paraan ng koneksyon
  5. Weighted least connection method
  6. Pinakamababang paraan ng pagtugon, at marami pang iba.


Gayunpaman, mayroon itong ilang mga kawalan:


  1. Ang mga server ay kailangang walang estado
  2. Ang mga session ay kailangang ipagpatuloy sa isang sentralisadong data store
  3. Mas kumplikado pagpapakalat ng mga estratehiya maaaring kailanganin
  4. Ang isang load balancer ay maaaring maging bottleneck sa performance kung mali ang pagkaka-configure nito at hindi sapat ang mga mapagkukunan
  5. Ito ay nagpapakilala ng karagdagang kumplikado sa system at tumatayo bilang isang potensyal na punto ng pagkabigo, na nangangailangan ng paglalapat ng mga diskarte sa failover


L4 / L7 Mga balancer ng load

Para sa dalawang device sa internet na makipag-ugnayan sa isa't isa, kailangang sundin ng mga pinagbabatayan na system ang mga partikular na protocol. Narinig ng lahat ang tungkol sa modelo ng OSI, na naglalarawan ng pitong layer na ginagamit ng mga computer system upang makipag-usap sa isang network. Bagama't nakabatay ang modernong internet sa isang mas simpleng modelo ng TCP/IP protocol stack, malawakang ginagamit ang modelong OSI, dahil nakakatulong ito sa pag-visualize at pakikipag-usap kung paano gumagana ang mga network at tumutulong na ihiwalay at i-troubleshoot ang mga problema sa networking.


Karamihan sa mga solusyon sa pagbabalanse ng load ng industriya ay gumagamit ng mga terminong L4 at L7 kung saan ang L4 ay tumutukoy sa layer ng transportasyon sa modelo ng OSI at ang L7 ay tumutukoy sa layer ng aplikasyon.


Ang L4 load balancer ay L2/L3 pa rin dahil gumagamit ito ng data mula sa ibabang mga layer gaya ng IP address at port number.


Pangunahing bentahe ng L4 load balancer

  • Ito ay mas ligtas at gumaganap dahil ang nilalaman ng data ay hindi isinasaalang-alang sa paggawa ng mga pagpapasya sa pagruruta

  • Ang parehong koneksyon ng TCP ay humahawak sa pagitan ng kliyente at server, na tumutulong upang maiwasan ang paglampas sa limitasyon ng mga available na koneksyon sa TCP sa isang load balancer


Pangunahing disadvantages ng L4 load balancer

  • Imposible ang matalinong pagruruta dahil hindi nagde-decrypt ang content
  • Ang stateful protocol ay nagdudulot ng karagdagang kumplikado
  • Pagmamapa sa pagitan ng pampubliko at pribadong mga address
  • Walang pag-cache dahil hindi available ang nilalaman sa antas na ito
  • Hindi posibleng gamitin para sa arkitektura ng microservices dahil hindi available ang pag-redirect ng trapiko batay sa url path


Sa kabilang banda, gumagana ang L7 load balancer sa antas ng aplikasyon sa modelo ng OSI


Pangunahing bentahe ng L7 load balancer

  • Ang mga matalinong pagpapasya ay maaaring gawin batay sa path ng URL, mga header, nilalaman

  • Pag-cache


Pangunahing disadvantages ng L7 load balancer

  • Karagdagang overhead dahil sa pagpapanatili ng dalawang koneksyon sa TCP, isa sa pagitan ng client at load balancer, ang pangalawa sa pagitan ng load balancer at server. Gayundin, kailangang isaalang-alang ang limitasyon sa koneksyon ng TCP ng load balancer
  • Hindi gaanong secure dahil dapat alam ng load balancer ang mga certificate para makapag-decrypt ng data at makagawa ng mga desisyon sa pagruruta


Konklusyon

Ang load balancer ay isang mahalagang bahagi kapag inilapat ang pahalang na pag-scale upang pangasiwaan ang mga system na may mataas na trapiko. Mayroong dalawang pangunahing uri ng load balancers L4 at L7.


  1. Ang L4 load balancer ay mas secure at gumaganap dahil sa mga limitasyon sa paggawa ng matalinong desisyon

  2. Gumagana ang L7 load balancer sa isang paraan upang magbigay ng matalinong mga desisyon sa pagruruta dahil sa gastos ng kahusayan at seguridad


Ang pagpili ng naaangkop na uri ay depende sa mga kinakailangan ng system at dapat isaalang-alang nang mabuti nang may makatwirang balanse ng paglalapat ng mga prinsipyo sa seguridad at pag-aalis ng mga bottleneck sa pagganap.


Na-publish din dito.