Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Hello, ako si Evgeniy. Nagtrabaho ko sa imprastraktura sa pagpangita sa Yandex.Market. Gusto nakong isulti sa komunidad sa Habr ang bahin sa sulod nga kusina sa Merkado - ug daghan ako nga isulti. Una sa tanan, kung giunsa ang pagpangita sa merkado, mga proseso ug arkitektura. Giunsa nato pag-atubang ang mga emerhensya nga sitwasyon: unsa ang mahitabo kung ang usa ka server mawala? Unsa kaha kung adunay 100 nga ingon nga mga server?

Mahibal-an usab nimo kung giunsa namon ipatuman ang bag-ong pagpaandar sa usa ka hugpong sa mga server sa usa ka higayon. Ug kung giunsa namo pagsulay ang mga komplikadong serbisyo nga direkta sa produksiyon, nga wala magpahinabog bisan unsang kahasol sa mga tiggamit. Sa kinatibuk-an, kung giunsa ang pagpangita sa Market molihok aron ang tanan adunay maayong oras.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Usa ka gamay bahin kanamo: unsa nga problema ang among gisulbad

Kung mosulod ka sa teksto, pangitaa ang usa ka produkto pinaagi sa mga parameter, o itandi ang mga presyo sa lainlaing mga tindahan, ang tanan nga mga hangyo ipadala sa serbisyo sa pagpangita. Ang pagpangita mao ang pinakadako nga serbisyo sa Market.

Giproseso namon ang tanan nga mga hangyo sa pagpangita: gikan sa mga site market.yandex.ru, beru.ru, ang serbisyo sa Supercheck, Yandex.Advisor, mga aplikasyon sa mobile. Giapil usab namo ang mga tanyag sa produkto sa mga resulta sa pagpangita sa yandex.ru.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Pinaagi sa serbisyo sa pagpangita gipasabut nako dili lamang ang pagpangita mismo, apan usa usab ka database nga adunay tanan nga mga tanyag sa Market. Ang sukod mao kini: labaw pa sa usa ka bilyon nga mga hangyo sa pagpangita ang giproseso kada adlaw. Ug ang tanan kinahanglan nga molihok dayon, nga wala’y mga paghunong ug kanunay nga nagpatunghag gitinguha nga sangputanan.

Unsa ang: arkitektura sa merkado

Akong ihulagway sa makadiyot ang kasamtangan nga arkitektura sa Market. Mahimo kini nga gihulagway pinaagi sa diagram sa ubos:
Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas
Ingnon ta nga usa ka kauban nga tindahan ang moabut kanamo. Miingon siya nga gusto ko magbaligya og dulaan: kining dautan nga iring nga adunay usa ka squeaker. Ug ang laing masuko nga iring nga walay kisaw. Ug iring lang. Unya ang tindahan kinahanglan nga mag-andam sa mga tanyag nga gipangita sa Market. Ang tindahan nagmugna og usa ka espesyal nga xml nga adunay mga tanyag ug nakigsulti sa agianan niini nga xml pinaagi sa kaakibat nga interface. Ang tig-indeks unya matag karon ug unya mag-download niini nga xml, magsusi sa mga sayop ug magtipig sa tanang impormasyon ngadto sa usa ka dako nga database.

Adunay daghang ingon nga naluwas nga xmls. Usa ka search index gihimo gikan niini nga database. Ang indeks gitipigan sa internal nga pormat. Pagkahuman sa paghimo sa indeks, ang serbisyo sa Layout nag-upload niini sa pagpangita sa mga server.

Ingon nga resulta, ang usa ka masuk-anon nga iring nga adunay usa ka squeaker makita sa database, ug ang indeks sa iring makita sa server.

Isulti ko kanimo kung giunsa namon pagpangita ang usa ka iring sa bahin bahin sa arkitektura sa pagpangita.

Arkitektura sa pagpangita sa merkado

Nagpuyo kami sa usa ka kalibutan sa mga microservice: matag umaabot nga hangyo market.yandex.ru hinungdan sa daghang mga subquery, ug daghang mga serbisyo ang nalambigit sa ilang pagproseso. Ang dayagram nagpakita lamang ug pipila:

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas
Gipasayon ​​nga pamaagi sa pagproseso sa hangyo

Ang matag serbisyo adunay usa ka talagsaon nga butang - ang kaugalingon nga balanse nga adunay usa ka talagsaon nga ngalan:

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Ang balancer naghatag kanato og mas dako nga pagka-flexible sa pagdumala sa serbisyo: mahimo nimo, pananglitan, i-off ang mga server, nga kasagaran gikinahanglan alang sa mga update. Nakita sa balancer nga dili magamit ang server ug awtomatiko nga gi-redirect ang mga hangyo sa ubang mga server o data center. Kung magdugang o magtangtang sa usa ka server, ang load awtomatik nga iapod-apod sa taliwala sa mga server.

Ang talagsaong ngalan sa balancer wala magdepende sa data center. Sa diha nga ang serbisyo A mohangyo sa B, unya pinaagi sa default balancer B i-redirect ang hangyo ngadto sa kasamtangan nga data center. Kung ang serbisyo dili magamit o wala sa kasamtangan nga sentro sa datos, nan ang hangyo gi-redirect sa ubang mga sentro sa datos.

Ang usa ka FQDN alang sa tanan nga mga sentro sa datos nagtugot sa serbisyo A nga hingpit nga abstract gikan sa mga lokasyon. Ang iyang hangyo sa serbisyo B kanunay nga iproseso. Ang eksepsiyon mao ang kaso kung ang serbisyo nahimutang sa tanan nga mga sentro sa datos.

Apan dili tanan labi ka rosy sa kini nga balanse: kami adunay dugang nga intermediate nga sangkap. Ang balancer mahimong dili lig-on, ug kini nga problema masulbad sa sobra nga mga server. Adunay usab usa ka dugang nga paglangan tali sa mga serbisyo A ug B. Apan sa praktis kini ubos pa sa 1 ms ug alang sa kadaghanan sa mga serbisyo dili kini kritikal.

Pag-atubang sa Wala damha: Pagbalanse ug Kalig-on sa Serbisyo sa Pagpangita

Hunahunaa nga adunay usa ka pagkahugno: kinahanglan nimo pangitaon ang usa ka iring nga adunay usa ka squeaker, apan ang server nahagsa. O 100 ka mga server. Unsaon paggawas? Biyaan ba gyud nato ang tiggamit nga walay iring?

Makahadlok ang kahimtang, apan andam kami alang niini. Sultihan ko ikaw sa han-ay.

Ang imprastraktura sa pagpangita nahimutang sa daghang mga sentro sa datos:

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Kung nagdesinyo, gilakip namon ang posibilidad sa pagsira sa usa ka sentro sa datos. Ang kinabuhi puno sa mga sorpresa - pananglitan, ang usa ka excavator mahimong magputol sa usa ka underground nga kable (oo, kana ang nahitabo). Ang kapasidad sa nahabilin nga mga sentro sa datos kinahanglan nga igo aron makasugakod sa peak load.

Atong tagdon ang usa ka data center. Ang matag sentro sa datos adunay parehas nga pamaagi sa operasyon sa balanse:

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas
Ang usa ka balancer labing menos tulo ka pisikal nga server. Kini nga redundancy gihimo alang sa kasaligan. Ang mga balanse nagdagan sa HAProx.

Gipili namo ang HAProx tungod sa taas nga performance niini, ubos nga kinahanglanon sa kapanguhaan ug lapad nga gamit. Ang among search software nagdagan sulod sa matag server.

Ang posibilidad nga mapakyas ang usa ka server gamay ra. Apan kung ikaw adunay daghang mga server, ang posibilidad nga bisan usa ang moubos nagdugang.

Mao kini ang mahitabo sa tinuod: ang mga server nahagsa. Busa, kinahanglan nga kanunay nga bantayan ang kahimtang sa tanan nga mga server. Kung ang server mohunong sa pagtubag, kini awtomatik nga maputol gikan sa trapiko. Alang niini nga katuyoan, ang HAProxy adunay built-in nga pagsusi sa kahimsog. Kini moadto sa tanan nga mga server kausa sa usa ka segundo nga adunay HTTP nga hangyo "/ping".

Laing bahin sa HAProxy: ang pagsusi sa ahente nagtugot kanimo nga i-load ang tanan nga mga server nga parehas. Aron mahimo kini, ang HAProxy nagkonektar sa tanan nga mga server, ug ilang gibalik ang ilang gibug-aton depende sa kasamtangan nga load gikan sa 1 ngadto sa 100. Ang gibug-aton gikalkulo base sa gidaghanon sa mga hangyo sa pila alang sa pagproseso ug ang load sa processor.

Karon mahitungod sa pagpangita sa iring. Ang mga resulta sa pagpangita sa mga hangyo sama sa: /search?text=angry+cat. Aron paspas ang pagpangita, ang tibuok indeks sa iring kinahanglang mohaom sa RAM. Bisan ang pagbasa gikan sa SSD dili igo nga paspas.

Kaniadto, ang database sa tanyag gamay ra, ug ang RAM sa usa ka server igo na alang niini. Samtang ang tanyag nga base mitubo, ang tanan dili na mohaum niini nga RAM, ug ang datos gibahin sa duha ka bahin: shard 1 ug shard 2.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas
Apan kini kanunay nga mahitabo: bisan unsa nga solusyon, bisan ang usa ka maayo, nagpatungha sa ubang mga problema.

Ang balancer miadto gihapon sa bisan unsang server. Apan sa makina diin ang hangyo miabut, adunay katunga lamang sa indeks. Ang uban naa sa ubang mga server. Busa, ang server kinahanglang moadto sa pipila ka silingang makina. Human makadawat ug datos gikan sa duha ka server, ang mga resulta gihiusa ug gi-rerank.

Tungod kay ang balancer nag-apod-apod sa mga hangyo nga parehas, ang tanan nga mga server nakigbahin sa pag-ranggo, ug dili lamang sa pagpadala sa datos.

Ang problema nahitabo kung ang usa ka silingan nga server wala magamit. Ang solusyon mao ang pagtino sa daghang mga server nga adunay lainlaing mga prayoridad ingon usa ka "silingan" nga server. Una, ang hangyo gipadala ngadto sa mga server sa kasamtangan nga rack. Kung wala'y tubag, ang hangyo gipadala sa tanan nga mga server sa kini nga sentro sa datos. Ug sa katapusan, ang hangyo miadto sa ubang mga sentro sa datos.
Samtang nagkadaghan ang mga sugyot, ang datos gibahin sa upat ka bahin. Apan dili kini ang limitasyon.

Sa pagkakaron, usa ka configuration sa walo ka shards ang gigamit. Dugang pa, aron makadaginot og dugang pa nga panumduman, ang indeks gibahin sa usa ka bahin sa pagpangita (nga gigamit sa pagpangita) ug usa ka bahin sa snippet (nga wala maapil sa pagpangita).

Ang usa ka server adunay impormasyon alang sa usa lamang ka shard. Busa, aron pangitaon ang tibuuk nga indeks, kinahanglan nimo pangitaon ang walo ka mga server nga adunay lainlaing mga shards.

Ang mga server gi-grupo sa mga cluster. Ang matag cluster adunay walo ka mga search engine ug usa ka snippet server.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas
Ang snippet server nagpadagan sa usa ka key-value database nga adunay static nga datos. Kinahanglan sila nga mag-isyu sa mga dokumento, pananglitan, usa ka paghulagway sa usa ka iring nga adunay usa ka squeaker. Espesyal nga gibalhin ang datos sa usa ka bulag nga server aron dili ma-load ang memorya sa mga search server.

Tungod kay ang mga ID sa dokumento talagsaon lamang sulod sa usa ka indeks, mahimong motungha ang sitwasyon diin walay mga dokumento sa mga snippet. Aw, o kana alang sa usa ka ID adunay lainlaing sulud. Busa, aron ang pagpangita molihok ug ang mga resulta mabalik, adunay panginahanglan alang sa pagkamakanunayon sa tibuok cluster. Sultihan ko ikaw sa ubos kung giunsa namo pagmonitor ang pagkamakanunayon.

Ang pagpangita mismo gi-istruktura sama sa mosunod: ang usa ka hangyo sa pagpangita mahimong moabut sa bisan asa sa walo ka mga server. Ingnon ta nga mianhi siya sa server 1. Kini nga server nagproseso sa tanan nga mga argumento ug nakasabut kung unsa ug unsaon pagpangita. Depende sa umaabot nga hangyo, ang server makahimo og dugang nga mga hangyo sa mga serbisyo sa gawas alang sa gikinahanglan nga impormasyon. Ang usa ka hangyo mahimong sundan ug hangtod sa napulo ka hangyo sa mga serbisyo sa gawas.

Human makolekta ang gikinahanglan nga impormasyon, magsugod ang pagpangita sa database sa tanyag. Aron mahimo kini, ang mga subquery gihimo sa tanan nga walo ka mga server sa cluster.

Sa diha nga ang mga tubag madawat, ang mga resulta gihiusa. Sa katapusan, daghan pa nga mga subquery sa snippet server mahimong gikinahanglan aron makamugna ang mga resulta.

Ang mga pangutana sa pagpangita sulod sa cluster morag: /shard1?text=angry+cat. Dugang pa, ang mga subquery sa porma kanunay nga gihimo tali sa tanan nga mga server sa sulod sa cluster kausa sa usa ka segundo: / kahimtang.

Paghangyo / kahimtang nakamatikod sa usa ka sitwasyon diin ang server dili magamit.

Gikontrol usab niini nga ang bersyon sa search engine ug ang bersyon sa indeks parehas sa tanan nga mga server, kung dili, adunay dili managsama nga datos sa sulod sa cluster.

Bisan pa sa kamatuoran nga ang usa ka snippet server nagproseso sa mga hangyo gikan sa walo ka mga search engine, ang processor niini gaan kaayo nga gikarga. Busa, gibalhin na namo karon ang snippet data ngadto sa lain nga serbisyo.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Aron mabalhin ang datos, gipaila namo ang mga universal key para sa mga dokumento. Karon imposible alang sa usa ka sitwasyon diin ang sulod gikan sa laing dokumento gibalik gamit ang usa ka yawe.

Apan ang pagbalhin ngadto sa laing arkitektura dili pa kompleto. Karon gusto namong kuhaon ang gipahinungod nga snippet server. Ug dayon palayo gikan sa istruktura sa cluster sa hingpit. Kini magtugot kanato sa pagpadayon sa pag-scale dali. Ang usa ka dugang nga bonus mao ang hinungdanon nga pagtipig sa puthaw.

Ug karon sa makahahadlok nga mga istorya nga adunay malipayong katapusan. Atong tagdon ang pipila ka mga kaso sa pagkadili magamit sa server.

Usa ka makalilisang nga nahitabo: usa ka server ang wala magamit

Ingnon ta nga usa ka server ang dili magamit. Unya ang nahabilin nga mga server sa cluster mahimong magpadayon sa pagtubag, apan ang mga resulta sa pagpangita dili kompleto.

Pinaagi sa pagsusi sa kahimtang / kahimtang Ang silingan nga mga server nakasabut nga ang usa dili magamit. Busa, aron mapadayon ang pagkakompleto, ang tanan nga mga server sa cluster matag hangyo /ping nagsugod sila sa pagtubag sa balancer nga dili usab sila magamit. Kini nahimo nga ang tanan nga mga server sa cluster namatay (nga dili tinuod). Kini ang nag-unang disbentaha sa among cluster scheme - mao nga gusto namong magpalayo niini.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Ang mga hangyo nga mapakyas sa usa ka sayup gisukol sa balancer sa ubang mga server.
Ang balancer mihunong usab sa pagpadala sa trapiko sa user ngadto sa patay nga mga server, apan nagpadayon sa pagsusi sa ilang kahimtang.

Sa diha nga ang server mahimong magamit, kini magsugod sa pagtubag sa /ping. Sa diha nga ang normal nga mga tubag sa mga ping gikan sa mga patay nga server magsugod sa pag-abot, ang mga balanse magsugod sa pagpadala sa trapiko sa tiggamit didto. Ang operasyon sa cluster gipahiuli, hurray.

Mas grabe pa: daghang mga server ang dili magamit

Ang usa ka hinungdanon nga bahin sa mga server sa data center giputol. Unsa ang buhaton, asa modagan? Ang balancer mitabang pag-usab. Ang matag balancer kanunay nga nagtipig sa memorya sa kasamtangan nga gidaghanon sa mga live server. Kanunay nga kalkulado ang labing kadaghan nga trapiko nga maproseso sa karon nga sentro sa datos.

Kung daghang mga server sa usa ka data center ang nahulog, ang balancer nakaamgo nga kini nga data center dili makaproseso sa tanan nga trapiko.

Unya ang sobra nga trapiko nagsugod nga random nga ipanghatag sa ubang mga sentro sa datos. Ang tanan nagtrabaho, ang tanan malipayon.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Giunsa namo kini pagbuhat: pagmantala sa mga pagpagawas

Karon atong hisgutan kung giunsa nato pagmantala ang mga kausaban nga gihimo sa serbisyo. Dinhi among gikuha ang dalan sa pagpayano sa mga proseso: ang pagpalupad sa usa ka bag-ong pagpagawas halos bug-os nga awtomatiko.
Kung ang usa ka piho nga gidaghanon sa mga pagbag-o natipon sa proyekto, usa ka bag-ong pagpagawas ang awtomatiko nga gihimo ug ang pagtukod niini magsugod.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Unya ang serbisyo gilukot sa pagsulay, diin ang kalig-on sa operasyon gisusi.

Sa parehas nga oras, gilunsad ang awtomatikong pagsulay sa pasundayag. Gidumala kini sa usa ka espesyal nga serbisyo. Dili nako kini hisgutan karon - ang paghulagway niini takus sa usa ka lahi nga artikulo.

Kung ang publikasyon sa pagsulay malampuson, ang pagmantala sa pagpagawas sa prestable awtomatik nga gisugdan. Ang Prestable usa ka espesyal nga cluster diin ang normal nga trapiko sa tiggamit gitumong. Kung kini nagbalik sa usa ka sayup, ang balancer mohimo pag-usab nga hangyo sa produksiyon.

Sa prestable, ang mga oras sa pagtubag gisukod ug itandi sa miaging pagpagawas sa produksiyon. Kung maayo ang tanan, unya ang usa ka tawo magkonektar: susihon ang mga graph ug mga resulta sa pagsulay sa pagkarga ug dayon magsugod sa paglihok sa produksiyon.

Ang tanan nga labing maayo moadto sa user: A/B testing

Dili kanunay klaro kung ang mga pagbag-o sa usa ka serbisyo magdala ug tinuod nga mga benepisyo. Aron sukdon ang kapuslanan sa mga pagbag-o, ang mga tawo naghimo sa pagsulay sa A/B. Isulti ko kanimo ang gamay kung giunsa kini molihok sa pagpangita sa Yandex.Market.

Nagsugod ang tanan sa pagdugang usa ka bag-ong parameter sa CGI nga makapaarang sa bag-ong pagpaandar. Himoa nga ang atong parameter mao ang: market_new_functionality=1. Dayon sa code atong mahimo kini nga gamit kung ang bandila anaa:

If (cgi.experiments.market_new_functionality) {
// enable new functionality
}

Ang bag-ong pagpaandar gilusad sa produksiyon.

Aron ma-automate ang pagsulay sa A/B, adunay gipahinungod nga serbisyo nga naghatag detalyado nga kasayuran gihulagway dinhi. Usa ka eksperimento ang gihimo sa serbisyo. Ang bahin sa trapiko gitakda, pananglitan, 15%. Ang mga porsyento gitakda dili alang sa mga pangutana, apan alang sa mga tiggamit. Ang gidugayon sa eksperimento gipakita usab, pananglitan, usa ka semana.

Daghang mga eksperimento ang mahimong dungan nga dagan. Sa mga setting mahimo nimong mahibal-an kung mahimo ba ang intersection sa ubang mga eksperimento.

Ingon usa ka sangputanan, ang serbisyo awtomatiko nga nagdugang usa ka argumento market_new_functionality=1 ngadto sa 15% sa mga tiggamit. Awtomatiko usab nga kalkulado ang gipili nga mga sukatan. Pagkahuman sa eksperimento, ang mga analista magtan-aw sa mga resulta ug maghimo mga konklusyon. Pinasukad sa mga nahibal-an, usa ka desisyon ang gihimo aron ilunsad sa produksiyon o pagpino.

Deft hand sa merkado: pagsulay sa produksiyon

Kanunay nga mahitabo nga kinahanglan nimo nga sulayan ang operasyon sa usa ka bag-ong pag-andar sa produksiyon, apan dili ka sigurado kung giunsa kini molihok sa mga kondisyon sa "kombat" ubos sa bug-at nga karga.

Adunay usa ka solusyon: ang mga bandera sa mga parameter sa CGI mahimong magamit dili lamang alang sa pagsulay sa A / B, apan aron masulayan usab ang bag-ong pagpaandar.

Naghimo kami usa ka himan nga nagtugot kanimo nga mabag-o dayon ang pagsumpo sa libu-libo nga mga server nga wala ibutyag ang serbisyo sa mga peligro. Gitawag kini nga Stop Tap. Ang orihinal nga ideya mao ang dali nga pag-disable sa pipila nga mga gamit nga wala’y layout. Unya ang himan milapad ug nahimong mas komplikado.

Ang diagram sa dagan sa serbisyo gipresentar sa ubos:

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Ang mga kantidad sa bandila gitakda pinaagi sa API. Ang serbisyo sa pagdumala nagtipig niini nga mga kantidad sa database. Ang tanan nga mga server moadto sa database kausa sa matag napulo ka segundo, i-pump out ang mga kantidad sa bandila ug ipadapat kini nga mga kantidad sa matag hangyo.

Sa Stop tap mahimo nimong itakda ang duha ka klase sa mga kantidad:

1) Kondisyon nga mga ekspresyon. Ibutang kung ang usa sa mga kantidad tinuod. Pananglitan:

{
	"condition":"IS_DC1",
	"value":"3",
}, 
{
	"condition": "CLUSTER==2 and IS_BERU", 
	"value": "4!" 
}

Ang kantidad nga "3" magamit kung ang hangyo giproseso sa lokasyon DC1. Ug ang kantidad mao ang "4" kung ang hangyo giproseso sa ikaduhang cluster alang sa beru.ru site.

2) Walay kondisyon nga mga bili. Pag-aplay pinaagi sa default kung wala sa mga kondisyon ang natuman. Pananglitan:

bili, bili!

Kung ang usa ka bili matapos sa usa ka exclamation point, kini gihatagan og mas taas nga prayoridad.

Ang CGI parameter parser nag-parse sa URL. Unya magamit ang mga kantidad gikan sa Stop Tap.

Ang mga kantidad nga adunay mosunod nga mga prayoridad gipadapat:

  1. Uban ang dugang nga prayoridad gikan sa Stop Tap (marka sa pagtuaw).
  2. Ang bili gikan sa hangyo.
  3. Default nga bili gikan sa Stop tap.
  4. Default nga bili sa code.

Adunay daghang mga bandila nga gipakita sa mga kondisyon nga kantidad - igo na kini alang sa tanan nga mga senaryo nga nahibal-an namon:

  • Data center.
  • Kalibutan: produksyon, pagsulay, anino.
  • Venue: merkado, beru.
  • Numero sa pundok.

Uban niini nga himan, mahimo nimong mapalihok ang bag-ong pag-andar sa usa ka piho nga grupo sa mga server (pananglitan, sa usa lamang ka sentro sa datos) ug sulayan ang operasyon niini nga pagpaandar nga wala’y piho nga peligro sa tibuuk nga serbisyo. Bisan kung nakahimo ka usa ka seryoso nga sayup sa usa ka lugar, ang tanan nagsugod sa pagkahulog ug ang tibuuk nga sentro sa datos nahulog, ang mga balanse mag-redirect sa mga hangyo sa ubang mga sentro sa datos. Ang mga end user dili makamatikod sa bisan unsa.

Kung namatikdan nimo ang usa ka problema, mahimo nimong ibalik dayon ang bandila sa kaniadto nga kantidad ug ang mga pagbag-o ibalik.

Kini nga serbisyo adunay usab mga kadaut: ang mga developer ganahan kaayo niini ug kanunay nga mosulay sa pagduso sa tanan nga mga pagbag-o sa Stop Tap. Kami naningkamot sa pagpakigbatok sa sayop nga paggamit.

Maayo ang paagi sa Stop Tap kung naa ka nay stable nga code nga andam ipagawas sa produksiyon. Sa samang higayon, aduna ka pa'y mga pagduhaduha, ug gusto nimo nga susihon ang code sa mga kondisyon sa "kombat".

Bisan pa, ang Stop Tap dili angay alang sa pagsulay sa panahon sa pag-uswag. Adunay usa ka lahi nga cluster alang sa mga developer nga gitawag nga "shadow cluster".

Sekreto nga Pagsulay: Shadow Cluster

Ang mga hangyo gikan sa usa sa mga cluster gikopya ngadto sa shadow cluster. Apan ang balancer hingpit nga wala magtagad sa mga tubag gikan niini nga cluster. Ang diagram sa operasyon niini gipresentar sa ubos.

Giunsa ang pagpangita sa Yandex.Market ug kung unsa ang mahitabo kung ang usa sa mga server mapakyas

Nakakuha kami usa ka cluster sa pagsulay nga naa sa tinuod nga "kombat" nga mga kondisyon. Ang normal nga trapiko sa tiggamit moadto didto. Ang hardware sa duha ka mga cluster managsama, mao nga ang performance ug mga sayop mahimong itandi.

Ug tungod kay ang balancer hingpit nga wala magtagad sa mga tubag, ang mga end user dili makakita sa mga tubag gikan sa shadow cluster. Busa, dili makahadlok nga masayop.

kaplag

Busa, giunsa namo pagtukod ang Market search?

Aron mahimo nga hapsay ang tanan, gilain namon ang pagpaandar sa lainlaing mga serbisyo. Niining paagiha mahimo natong sukdon ang mga sangkap lamang nga atong gikinahanglan ug himoong mas simple ang mga sangkap. Sayon ang pag-assign sa usa ka bulag nga sangkap sa lain nga team ug ipaambit ang mga responsibilidad sa pagtrabaho niini. Ug ang hinungdanon nga pagtipig sa puthaw sa kini nga pamaagi usa ka klaro nga dugang.

Ang shadow cluster makatabang usab kanamo: mahimo namon nga mapalambo ang mga serbisyo, sulayan kini sa proseso ug dili makabalda sa tiggamit.

Aw, pagsulay sa produksiyon, siyempre. Kinahanglan bang usbon ang configuration sa liboan ka mga server? Sayon, gamita ang Stop Tap. Niining paagiha mahimo nimo dayon nga i-roll out ang usa ka andam nga gihimo nga komplikado nga solusyon ug i-roll balik sa usa ka lig-on nga bersyon kung adunay mga problema.

Nanghinaut ko nga napakita nako kung giunsa namo paghimo ang Market nga paspas ug lig-on nga adunay kanunay nga nagtubo nga base sa mga tanyag. Giunsa namo pagsulbad ang mga problema sa server, pag-atubang sa daghang mga hangyo, pagpaayo sa pagka-flexible sa serbisyo ug pagbuhat niini nga dili makabalda sa mga proseso sa trabaho.

Source: www.habr.com

Idugang sa usa ka comment