Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Kaabo, orukọ mi ni Evgeniy. Mo ṣiṣẹ ni awọn amayederun wiwa Yandex.Market. Mo fẹ sọ fun agbegbe Habr nipa ibi idana ounjẹ inu ti Ọja - ati pe Mo ni ọpọlọpọ lati sọ. Ni akọkọ, bawo ni wiwa Ọja ṣe n ṣiṣẹ, awọn ilana ati faaji. Bawo ni a ṣe ṣe pẹlu awọn ipo pajawiri: kini yoo ṣẹlẹ ti olupin kan ba lọ silẹ? Kini ti o ba jẹ 100 iru awọn olupin bẹẹ?

Iwọ yoo tun kọ ẹkọ bii a ṣe ṣe imuse iṣẹ ṣiṣe tuntun lori opo awọn olupin ni ẹẹkan. Ati bii a ṣe ṣe idanwo awọn iṣẹ idiju taara ni iṣelọpọ, laisi fa wahala eyikeyi si awọn olumulo. Ni gbogbogbo, bawo ni wiwa Ọja ṣe n ṣiṣẹ ki gbogbo eniyan ni akoko ti o dara.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Diẹ diẹ nipa wa: iṣoro wo ni a yanju

Nigbati o ba tẹ ọrọ sii, wa ọja nipasẹ awọn paramita, tabi ṣe afiwe awọn idiyele ni awọn ile itaja oriṣiriṣi, gbogbo awọn ibeere ni a firanṣẹ si iṣẹ wiwa. Wiwa jẹ iṣẹ ti o tobi julọ ni Ọja naa.

A ṣe ilana gbogbo awọn ibeere wiwa: lati awọn aaye ọja.yandex.ru, beru.ru, iṣẹ Supercheck, Yandex.Advisor, awọn ohun elo alagbeka. A tun pẹlu awọn ipese ọja ni awọn abajade wiwa lori yandex.ru.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Nipa iṣẹ wiwa Mo tumọ si kii ṣe wiwa funrararẹ, ṣugbọn tun data data pẹlu gbogbo awọn ipese lori Ọja naa. Iwọn naa jẹ eyi: diẹ sii ju awọn ibeere wiwa bilionu kan ti ni ilọsiwaju fun ọjọ kan. Ati ohun gbogbo yẹ ki o ṣiṣẹ ni kiakia, laisi awọn idilọwọ ati nigbagbogbo gbejade abajade ti o fẹ.

Ohun ti o jẹ: Market faaji

Emi yoo ṣe apejuwe ni ṣoki ti faaji lọwọlọwọ ti Ọja naa. O le ṣe apejuwe ni aijọju nipasẹ aworan atọka ni isalẹ:
Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna
Jẹ ká sọ a alabaṣepọ itaja wa si wa. O ni mo fe ta nkan isere: ologbo buburu yi pelu alarinrin. Ati ologbo ibinu miiran laisi squeaker. Ati ki o kan ologbo. Lẹhinna ile itaja nilo lati mura awọn ipese fun eyiti Ọja naa n wa. Ile itaja n ṣe agbejade xml pataki kan pẹlu awọn ipese ati sisọ ọna si xml yii nipasẹ wiwo alafaramo. Atọka lẹhinna ṣe igbasilẹ xml yii lorekore, ṣayẹwo fun awọn aṣiṣe ati fi gbogbo alaye pamọ sinu aaye data nla kan.

Ọpọlọpọ awọn iru xmls ti o fipamọ lo wa. Atọka wiwa ti ṣẹda lati ibi ipamọ data yii. Atọka ti wa ni ipamọ ni ọna kika inu. Lẹhin ṣiṣẹda atọka, iṣẹ Ifilelẹ gbejade si awọn olupin wiwa.

Bi abajade, ologbo ti o binu pẹlu squeaker han ni ibi ipamọ data, ati itọka ologbo naa han lori olupin naa.

Emi yoo sọ fun ọ bi a ṣe wa ologbo kan ni apakan nipa faaji wiwa.

Market search faaji

A n gbe ni aye kan ti microservices: gbogbo ti nwọle ìbéèrè ọjà.yandex.ru fa a pupo ti subqueries, ati awọn dosinni ti awọn iṣẹ ti wa ni lowo ninu wọn processing. Aworan naa fihan diẹ diẹ:

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna
Eto imuṣiṣẹ ibeere ti o rọrun

Iṣẹ kọọkan ni ohun iyanu - iwọntunwọnsi tirẹ pẹlu orukọ alailẹgbẹ kan:

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Oniwọntunwọnsi fun wa ni irọrun nla ni ṣiṣakoso iṣẹ naa: o le, fun apẹẹrẹ, pa awọn olupin, eyiti o nilo nigbagbogbo fun awọn imudojuiwọn. Oniwọntunwọnsi rii pe ko si olupin ati ṣe atunṣe awọn ibeere laifọwọyi si awọn olupin miiran tabi awọn ile-iṣẹ data. Nigbati o ba n ṣafikun tabi yiyọ olupin kuro, fifuye naa yoo pin kaakiri laifọwọyi laarin awọn olupin naa.

Orukọ alailẹgbẹ ti iwọntunwọnsi ko dale lori ile-iṣẹ data. Nigbati iṣẹ A ba ṣe ibeere si B, lẹhinna nipasẹ iwọntunwọnsi aiyipada B ṣe atunṣe ibeere naa si ile-iṣẹ data lọwọlọwọ. Ti iṣẹ naa ko ba si tabi ko si ni ile-iṣẹ data lọwọlọwọ, lẹhinna ibeere naa ni a darí si awọn ile-iṣẹ data miiran.

FQDN kan fun gbogbo awọn ile-iṣẹ data ngbanilaaye iṣẹ A lati ṣe arosọ patapata lati awọn ipo. Ibeere rẹ si iṣẹ B yoo ma ni ilọsiwaju nigbagbogbo. Iyatọ jẹ ọran nigbati iṣẹ naa wa ni gbogbo awọn ile-iṣẹ data.

Ṣugbọn kii ṣe ohun gbogbo jẹ rosy pẹlu iwọntunwọnsi yii: a ni afikun paati agbedemeji. Oniwọntunwọnsi le jẹ riru, ati pe iṣoro yii jẹ ipinnu nipasẹ awọn olupin laiṣe. Idaduro afikun tun wa laarin awọn iṣẹ A ati B. Ṣugbọn ni iṣe o kere ju 1 ms ati fun ọpọlọpọ awọn iṣẹ eyi kii ṣe pataki.

Ṣiṣe pẹlu Airotẹlẹ: Iwontunwọnsi Iṣẹ Wa ati Resiliency

Fojuinu pe iṣubu kan wa: o nilo lati wa ologbo kan pẹlu squeaker, ṣugbọn olupin naa kọlu. Tabi awọn olupin 100. Bawo ni lati jade? Njẹ a yoo lọ kuro ni olumulo laisi ologbo?

Ipo naa jẹ ẹru, ṣugbọn a ti ṣetan fun rẹ. Emi yoo sọ fun ọ ni ibere.

Awọn amayederun wiwa wa ni ọpọlọpọ awọn ile-iṣẹ data:

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Nigbati o ba n ṣe apẹrẹ, a pẹlu iṣeeṣe ti tiipa ile-iṣẹ data kan. Igbesi aye kun fun awọn iyanilẹnu - fun apẹẹrẹ, excavator le ge okun ipamo kan (bẹẹni, iyẹn ṣẹlẹ). Agbara ti o wa ninu awọn ile-iṣẹ data to ku yẹ ki o to lati koju fifuye tente oke.

Jẹ ki ká ro kan nikan data aarin. Ile-iṣẹ data kọọkan ni ero iṣiṣẹ iwọntunwọnsi kanna:

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna
Oniwọntunwọnsi kan jẹ o kere ju awọn olupin ti ara mẹta. Atunṣe yii jẹ fun igbẹkẹle. Awọn iwọntunwọnsi nṣiṣẹ lori HAProx.

A yan HAProx nitori iṣẹ giga rẹ, awọn ibeere orisun kekere ati iṣẹ ṣiṣe jakejado. Sọfitiwia wiwa wa nṣiṣẹ inu olupin kọọkan.

O ṣeeṣe ti aṣiṣe olupin kan kere. Ṣugbọn ti o ba ni ọpọlọpọ awọn olupin, o ṣeeṣe pe o kere ju ọkan yoo lọ si isalẹ.

Eyi ni ohun ti o ṣẹlẹ ni otitọ: awọn olupin jamba. Nitorinaa, o jẹ dandan lati ṣe atẹle ipo gbogbo awọn olupin nigbagbogbo. Ti olupin ba da idahun, yoo ge asopọ laifọwọyi lati ijabọ. Fun idi eyi, HAProxy ni ayẹwo ilera ti a ṣe sinu. O lọ si gbogbo awọn olupin lẹẹkan ni iṣẹju-aaya pẹlu ibeere HTTP “/ ping”.

Ẹya miiran ti HAProxy: aṣoju-ṣayẹwo gba ọ laaye lati fifuye gbogbo awọn olupin ni deede. Lati ṣe eyi, HAProxy sopọ si gbogbo awọn olupin, ati pe wọn pada iwuwo wọn da lori fifuye lọwọlọwọ lati 1 si 100. Iwọn naa jẹ iṣiro da lori nọmba awọn ibeere ni isinyi fun sisẹ ati fifuye lori ero isise naa.

Bayi nipa wiwa ologbo naa. Awọn abajade wiwa ni awọn ibeere bii: /search?text=ologbo+binu. Fun wiwa lati yara, gbogbo atọka ologbo gbọdọ baamu sinu Ramu. Paapaa kika lati SSD ko yara to.

Ni ẹẹkan, aaye data ipese jẹ kekere, ati Ramu ti olupin kan to fun. Bi ipilẹ ipese ti n dagba, ohun gbogbo ko baamu si Ramu yii, ati pe data ti pin si awọn ẹya meji: shard 1 ati shard 2.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna
Ṣugbọn eyi nigbagbogbo ṣẹlẹ: eyikeyi ojutu, paapaa ọkan ti o dara, yoo fun awọn iṣoro miiran.

Oniwontunwonsi tun lọ si olupin eyikeyi. Ṣugbọn lori ẹrọ nibiti ibeere naa ti de, idaji nikan ni atọka naa. Awọn iyokù wà lori miiran apèsè. Nitorina, olupin naa ni lati lọ si diẹ ninu awọn ẹrọ agbegbe. Lẹhin gbigba data lati ọdọ awọn olupin mejeeji, awọn abajade ni idapo ati tunto.

Niwọn igba ti oniwọntunwọnsi n pin awọn ibeere ni boṣeyẹ, gbogbo awọn olupin ti ṣiṣẹ ni ipo-tuntun, kii ṣe fifiranṣẹ data nikan.

Iṣoro naa waye ti olupin adugbo ko ba si. Ojutu naa ni lati pato awọn olupin pupọ pẹlu awọn ayo oriṣiriṣi bi olupin “aladugbo”. Ni akọkọ, a firanṣẹ ibeere naa si awọn olupin ti o wa ninu agbeko lọwọlọwọ. Ti ko ba si esi, a firanṣẹ ibeere naa si gbogbo awọn olupin ni ile-iṣẹ data yii. Ati nikẹhin, ibeere naa lọ si awọn ile-iṣẹ data miiran.
Bi nọmba awọn igbero ti dagba, data ti pin si awọn ẹya mẹrin. Ṣugbọn eyi kii ṣe opin.

Lọwọlọwọ, iṣeto ti awọn shards mẹjọ ti lo. Ni afikun, lati fipamọ paapaa iranti diẹ sii, atọka ti pin si apakan wiwa (eyiti a lo fun wiwa) ati apakan snippet (eyiti ko ṣe alabapin ninu wiwa).

Olupin kan ni alaye ninu fun shard kan ṣoṣo. Nitorinaa, lati wa atọka kikun, o nilo lati wa lori olupin mẹjọ ti o ni awọn shards oriṣiriṣi.

Awọn olupin ti wa ni akojọpọ si awọn iṣupọ. Iṣupọ kọọkan ni awọn ẹrọ wiwa mẹjọ ni ati olupin snippet kan.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna
Awọn snippet olupin nṣiṣẹ a bọtini-iye database pẹlu aimi data. Wọn nilo lati fun awọn iwe aṣẹ, fun apẹẹrẹ, apejuwe kan ti o nran pẹlu squeaker. Awọn data ti wa ni pataki ti o ti gbe lọ si lọtọ olupin ki o ko ba le fifuye iranti ti awọn olupin àwárí.

Niwọn bi awọn ID iwe jẹ alailẹgbẹ nikan laarin atọka kan, ipo kan le dide nibiti ko si awọn iwe aṣẹ ninu awọn snippets. O dara, tabi pe fun ID kan yoo jẹ akoonu oriṣiriṣi. Nitorinaa, ni ibere fun wiwa lati ṣiṣẹ ati awọn abajade lati pada, iwulo wa fun aitasera kọja gbogbo iṣupọ. Emi yoo sọ fun ọ ni isalẹ bi a ṣe n ṣe atẹle aitasera.

Iwadi funrarẹ ni a ṣeto gẹgẹbi atẹle: ibeere wiwa le wa si eyikeyi awọn olupin mẹjọ naa. Jẹ ká sọ pé ó wá si olupin 1. Eleyi server lakọkọ gbogbo awọn ariyanjiyan ati ki o ye ohun ti ati bi o lati wo fun. Da lori ibeere ti nwọle, olupin le ṣe awọn ibeere afikun si awọn iṣẹ ita fun alaye pataki. Ibeere kan le tẹle pẹlu awọn ibeere mẹwa si awọn iṣẹ ita.

Lẹhin gbigba alaye pataki, wiwa bẹrẹ ni ibi ipamọ data ipese. Lati ṣe eyi, awọn ibeere ni a ṣe si gbogbo awọn olupin mẹjọ ti o wa ninu iṣupọ naa.

Ni kete ti awọn idahun ti gba, awọn abajade ti wa ni idapo. Ni ipari, ọpọlọpọ awọn ibeere diẹ sii si olupin snippet le nilo lati ṣe agbekalẹ awọn abajade.

Awọn ibeere wiwa laarin iṣupọ dabi: /shard1?text=ologbo+binu. Ni afikun, awọn ibeere ti fọọmu naa ni a ṣe nigbagbogbo laarin gbogbo awọn olupin laarin iṣupọ lẹẹkan ni iṣẹju-aaya: / ipo.

Beere / ipo ṣe awari ipo kan nibiti olupin ko si.

O tun ṣakoso pe ẹya ẹrọ wiwa ati ẹya atọka jẹ kanna lori gbogbo awọn olupin, bibẹẹkọ awọn data aisedede yoo wa laarin iṣupọ naa.

Bíótilẹ o daju wipe ọkan snippet server ilana awọn ibeere lati mẹjọ search enjini, awọn oniwe-prosessor jẹ gidigidi sere kojọpọ. Nitorinaa, a n gbe data snippet lọ si iṣẹ lọtọ.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Lati gbe data lọ, a ṣafihan awọn bọtini agbaye fun awọn iwe aṣẹ. Bayi ko ṣee ṣe fun ipo nibiti akoonu lati iwe miiran ti pada nipa lilo bọtini kan.

Ṣugbọn iyipada si faaji miiran ko ti pari sibẹsibẹ. Bayi a fẹ lati yọ kuro ti olupin snippet igbẹhin. Ati lẹhinna lọ kuro ni eto iṣupọ lapapọ. Eyi yoo gba wa laaye lati tẹsiwaju si iwọn ni irọrun. Ajeseku afikun jẹ awọn ifowopamọ irin pataki.

Ati nisisiyi si awọn itan idẹruba pẹlu awọn ipari idunnu. Jẹ ki a gbero ọpọlọpọ awọn ọran ti aini wiwa olupin.

Nkankan ẹru sele: olupin kan ko si

Jẹ ki a sọ pe olupin kan ko si. Lẹhinna awọn olupin to ku ninu iṣupọ le tẹsiwaju lati dahun, ṣugbọn awọn abajade wiwa yoo jẹ pe.

Nipasẹ ayẹwo ipo / ipo awọn olupin adugbo loye pe ọkan ko si. Nitorinaa, lati ṣetọju pipe, gbogbo awọn olupin ti o wa ninu iṣupọ fun ibeere /ping wọn bẹrẹ lati dahun si iwọntunwọnsi pe wọn tun ko si. O wa ni pe gbogbo awọn olupin ti o wa ninu iṣupọ ku (eyiti kii ṣe otitọ). Eyi ni ifẹhinti akọkọ ti ero iṣupọ wa - iyẹn ni idi ti a fẹ lati lọ kuro ninu rẹ.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Awọn ibeere ti o kuna pẹlu aṣiṣe jẹ atunṣe nipasẹ iwọntunwọnsi lori awọn olupin miiran.
Oniwọntunwọnsi tun da fifiranṣẹ ijabọ olumulo si awọn olupin ti o ku, ṣugbọn tẹsiwaju lati ṣayẹwo ipo wọn.

Nigbati olupin ba wa, o bẹrẹ lati dahun si /ping. Ni kete ti awọn idahun deede si awọn pings lati awọn olupin ti o ku bẹrẹ lati de, awọn iwọntunwọnsi bẹrẹ fifiranṣẹ ijabọ olumulo sibẹ. Iṣẹ iṣupọ ti tun pada, yara.

Paapaa buruju: ọpọlọpọ awọn olupin ko si

Apa pataki ti awọn olupin ni ile-iṣẹ data ti ge mọlẹ. Kini lati ṣe, nibo ni lati ṣiṣe? Oniwontunwonsi wa si igbala lẹẹkansi. Oniwọntunwọnsi kọọkan tọju nigbagbogbo ni iranti nọmba lọwọlọwọ ti awọn olupin laaye. O nigbagbogbo ṣe iṣiro iye ti o pọju ti ijabọ ti ile-iṣẹ data lọwọlọwọ le ṣe ilana.

Nigbati ọpọlọpọ awọn olupin ti o wa ni ile-iṣẹ data kan lọ si isalẹ, iwọntunwọnsi mọ pe ile-iṣẹ data yii ko le ṣe ilana gbogbo ijabọ naa.

Lẹhinna ijabọ apọju bẹrẹ lati pin laileto si awọn ile-iṣẹ data miiran. Ohun gbogbo ṣiṣẹ, gbogbo eniyan ni idunnu.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Bawo ni a ṣe ṣe: titẹjade awọn idasilẹ

Bayi jẹ ki a sọrọ nipa bi a ṣe ṣe atẹjade awọn ayipada ti a ṣe si iṣẹ naa. Nibi a ti gba ọna ti awọn ilana irọrun: yiyi idasilẹ tuntun ti fẹrẹẹ jẹ adaṣe patapata.
Nigbati nọmba kan ti awọn ayipada ba kojọpọ ninu iṣẹ akanṣe, idasilẹ tuntun yoo ṣẹda laifọwọyi ati kikọ rẹ bẹrẹ.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Lẹhinna iṣẹ naa ti yiyi si idanwo, nibiti a ti ṣayẹwo iduroṣinṣin ti iṣẹ.

Ni akoko kanna, idanwo iṣẹ ṣiṣe adaṣe ti ṣe ifilọlẹ. Eyi ni a ṣakoso nipasẹ iṣẹ pataki kan. Emi kii yoo sọrọ nipa rẹ ni bayi - apejuwe rẹ yẹ fun nkan lọtọ.

Ti atẹjade ninu idanwo ba ṣaṣeyọri, titẹjade itusilẹ ni prestable yoo bẹrẹ laifọwọyi. Prestable jẹ iṣupọ pataki nibiti a ti ṣe itọsọna ijabọ olumulo deede. Ti o ba da aṣiṣe pada, iwọntunwọnsi ṣe atunṣe ibeere si iṣelọpọ.

Ni prestable, awọn akoko idahun jẹ iwọn ati fiwera pẹlu itusilẹ iṣaaju ni iṣelọpọ. Ti ohun gbogbo ba dara, lẹhinna eniyan kan sopọ: ṣayẹwo awọn aworan ati awọn abajade ti idanwo fifuye ati lẹhinna bẹrẹ yiyi si iṣelọpọ.

Gbogbo awọn ti o dara ju lọ si olumulo: A/B igbeyewo

Ko han nigbagbogbo boya awọn iyipada si iṣẹ kan yoo mu awọn anfani gidi wa. Lati wiwọn iwulo awọn iyipada, awọn eniyan wa pẹlu idanwo A/B. Emi yoo sọ fun ọ diẹ nipa bi o ṣe n ṣiṣẹ ni wiwa Yandex.Market.

Gbogbo rẹ bẹrẹ pẹlu fifi paramita CGI tuntun kan ti o mu iṣẹ ṣiṣe tuntun ṣiṣẹ. Jẹ ki paramita wa jẹ: market_new_functionality=1. Lẹhinna ninu koodu a mu iṣẹ ṣiṣe ṣiṣẹ ti asia ba wa:

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

Iṣẹ ṣiṣe tuntun ti wa ni yiyi si iṣelọpọ.

Lati ṣe adaṣe adaṣe A/B, iṣẹ iyasọtọ wa ti o pese alaye alaye ṣàpèjúwe nibi. A ṣe idanwo kan ninu iṣẹ naa. Pipin ijabọ ti ṣeto, fun apẹẹrẹ, 15%. Awọn ipin ogorun ti ṣeto kii ṣe fun awọn ibeere, ṣugbọn fun awọn olumulo. Iye akoko idanwo naa tun jẹ itọkasi, fun apẹẹrẹ, ọsẹ kan.

Orisirisi awọn adanwo le wa ni ṣiṣe ni nigbakannaa. Ninu awọn eto o le pato boya ikorita pẹlu awọn adanwo miiran ṣee ṣe.

Bi abajade, iṣẹ naa ṣe afikun ariyanjiyan laifọwọyi market_new_functionality=1 si 15% ti awọn olumulo. O tun ṣe iṣiro awọn metiriki ti o yan laifọwọyi. Lẹhin idanwo naa ti pari, awọn atunnkanka wo awọn abajade ati fa awọn ipinnu. Da lori awọn awari, a ṣe ipinnu lati yipo si iṣelọpọ tabi isọdọtun.

Ọwọ deft ọja: idanwo ni iṣelọpọ

Nigbagbogbo o ṣẹlẹ pe o nilo lati ṣe idanwo iṣẹ ti iṣẹ tuntun ni iṣelọpọ, ṣugbọn iwọ ko ni idaniloju bi yoo ṣe huwa ni awọn ipo “ija” labẹ ẹru iwuwo.

Ojutu kan wa: awọn asia ni awọn aye CGI le ṣee lo kii ṣe fun idanwo A / B nikan, ṣugbọn tun lati ṣe idanwo iṣẹ ṣiṣe tuntun.

A ṣe ohun elo kan ti o fun ọ laaye lati yi atunto lesekese lori ẹgbẹẹgbẹrun awọn olupin laisi ṣiṣafihan iṣẹ naa si awọn eewu. O pe ni "Duro Tẹ ni kia kia". Ero atilẹba ni lati ni anfani lati mu diẹ ninu awọn iṣẹ ṣiṣe ṣiṣẹ laisi ipilẹ kan. Lẹhinna ọpa naa gbooro o si di eka sii.

Aworan sisan iṣẹ ti gbekalẹ ni isalẹ:

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

Awọn iye asia ti ṣeto nipasẹ API. Iṣẹ iṣakoso n tọju awọn iye wọnyi sinu aaye data. Gbogbo awọn olupin lọ si ibi ipamọ data lẹẹkan ni gbogbo iṣẹju mẹwa mẹwa, fa jade awọn iye asia ati lo awọn iye wọnyi si ibeere kọọkan.

Ninu Duro tẹ ni kia kia o le ṣeto awọn iru iye meji:

1) Awọn gbolohun ọrọ. Waye nigbati ọkan ninu awọn iye jẹ otitọ. Fun apere:

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

Awọn iye "3" yoo wa ni loo nigbati awọn ìbéèrè ti wa ni ilọsiwaju ni ipo DC1. Ati pe iye naa jẹ “4” nigbati ibeere naa ba ni ilọsiwaju lori iṣupọ keji fun aaye beru.ru.

2) Awọn iye ailopin. Waye nipasẹ aiyipada ti ko ba si awọn ipo ti o pade. Fun apere:

iye, iye!

Ti iye kan ba pari pẹlu aaye iyanju, a fun ni ni ayo ti o ga julọ.

Atupalẹ paramita CGI n ṣe itupalẹ URL naa. Lẹhinna lo awọn iye lati Duro Tẹ ni kia kia.

Awọn iye pẹlu awọn pataki wọnyi ni a lo:

  1. Pẹlu pọsi ayo lati Duro Tẹ ni kia kia (exclamation ami).
  2. Awọn iye lati ìbéèrè.
  3. Iye aiyipada lati Duro tẹ ni kia kia.
  4. Aiyipada iye ni koodu.

Ọpọlọpọ awọn asia wa ti o tọka si ni awọn iye ipo - wọn to fun gbogbo awọn oju iṣẹlẹ ti a mọ si wa:

  • Data aarin.
  • Ayika: iṣelọpọ, idanwo, ojiji.
  • Ibi isere: oja, beru.
  • Nọmba iṣupọ.

Pẹlu ọpa yii, o le mu iṣẹ ṣiṣe tuntun ṣiṣẹ lori ẹgbẹ kan ti awọn olupin (fun apẹẹrẹ, ni ile-iṣẹ data kan nikan) ati idanwo iṣẹ ti iṣẹ yii laisi eewu kan pato si gbogbo iṣẹ naa. Paapaa ti o ba ṣe aṣiṣe pataki kan ni ibikan, ohun gbogbo bẹrẹ si ṣubu ati gbogbo ile-iṣẹ data ti lọ silẹ, awọn iwọntunwọnsi yoo ṣe atunṣe awọn ibeere si awọn ile-iṣẹ data miiran. Awọn olumulo ipari kii yoo ṣe akiyesi ohunkohun.

Ti o ba ṣe akiyesi iṣoro kan, o le da asia pada lẹsẹkẹsẹ si iye ti tẹlẹ ati awọn ayipada yoo yiyi pada.

Iṣẹ yii tun ni awọn ipadasẹhin rẹ: awọn olupilẹṣẹ fẹran rẹ pupọ ati nigbagbogbo gbiyanju lati Titari gbogbo awọn ayipada sinu Duro Tẹ. A n gbiyanju lati koju ilokulo.

Ọna Tẹ ni kia kia ṣiṣẹ daradara nigbati o ti ni koodu iduroṣinṣin tẹlẹ ti o ti ṣetan lati yiyi si iṣelọpọ. Ni akoko kanna, o tun ni awọn ṣiyemeji, ati pe o fẹ lati ṣayẹwo koodu ni awọn ipo "ija".

Sibẹsibẹ, Duro Tẹ ni ko dara fun idanwo lakoko idagbasoke. iṣupọ lọtọ wa fun awọn olupilẹṣẹ ti a pe ni “iṣupọ ojiji”.

Idanwo asiri: Ojiji iṣupọ

Awọn ibeere lati ọkan ninu awọn iṣupọ jẹ pidánpidán si iṣupọ ojiji. Ṣugbọn iwọntunwọnsi kọju awọn idahun patapata lati iṣupọ yii. Awọn aworan atọka ti awọn oniwe-isẹ ti wa ni gbekalẹ ni isalẹ.

Bawo ni wiwa Yandex.Market ṣiṣẹ ati ohun ti o ṣẹlẹ ti ọkan ninu awọn olupin ba kuna

A gba iṣupọ idanwo ti o wa ni awọn ipo “ija” gidi. Deede olumulo ijabọ lọ nibẹ. Ohun elo ninu awọn iṣupọ mejeeji jẹ kanna, nitorinaa iṣẹ ati awọn aṣiṣe le ṣe afiwe.

Ati pe niwọn igba ti oniwọntunwọnsi kọju awọn idahun patapata, awọn olumulo ipari kii yoo rii awọn idahun lati iṣupọ ojiji. Nitorina, kii ṣe ẹru lati ṣe aṣiṣe.

awari

Nitorinaa, bawo ni a ṣe kọ wiwa Ọja naa?

Lati jẹ ki ohun gbogbo lọ laisiyonu, a ya iṣẹ ṣiṣe si awọn iṣẹ lọtọ. Ni ọna yii a le ṣe iwọn awọn paati ti a nilo nikan ati jẹ ki awọn paati rọrun. O rọrun lati fi paati lọtọ si ẹgbẹ miiran ati pin awọn ojuse fun ṣiṣẹ lori rẹ. Ati awọn ifowopamọ pataki ni irin pẹlu ọna yii jẹ afikun ti o han gbangba.

Awọn iṣupọ ojiji tun ṣe iranlọwọ fun wa: a le ṣe agbekalẹ awọn iṣẹ, ṣe idanwo wọn ninu ilana ati maṣe yọ olumulo naa ru.

O dara, idanwo ni iṣelọpọ, dajudaju. Ṣe o nilo lati yi iṣeto ni ẹgbẹẹgbẹrun awọn olupin bi? Rọrun, lo Duro Tẹ ni kia kia. Ni ọna yii o le lẹsẹkẹsẹ yi jade ojutu eka ti o ti ṣetan ati yiyi pada si ẹya iduroṣinṣin ti awọn iṣoro ba dide.

Mo nireti pe MO ni anfani lati ṣafihan bi a ṣe jẹ ki Ọja naa yara ati iduroṣinṣin pẹlu ipilẹ ti o dagba nigbagbogbo ti awọn ipese. Bii a ṣe yanju awọn iṣoro olupin, wo pẹlu nọmba nla ti awọn ibeere, mu irọrun iṣẹ naa dara ati ṣe eyi laisi idilọwọ awọn ilana iṣẹ.

orisun: www.habr.com

Fi ọrọìwòye kun