Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Салом, номи ман Евгений. Ман дар инфрасохтори ҷустуҷӯи Yandex.Market кор мекунам. Ман мехоҳам ба ҷомеаи Ҳабр дар бораи ошхонаи дохилии Бозор нақл кунам - ва ман бисёр чизҳои гуфтанӣ дорам. Пеш аз ҳама, чӣ гуна ҷустуҷӯи бозор кор мекунад, равандҳо ва меъморӣ. Мо бо ҳолатҳои фавқулодда чӣ гуна мубориза мебарем: агар як сервер қатъ шавад, чӣ мешавад? Чӣ мешавад, агар 100 чунин сервер вуҷуд дошта бошад?

Шумо инчунин хоҳед фаҳмид, ки чӣ тавр мо функсияҳои навро дар як қатор серверҳо якбора татбиқ мекунем. Ва чӣ гуна мо хидматҳои мураккабро мустақиман дар истеҳсолот озмоиш мекунем, бидуни ҳеҷ гуна нороҳатӣ ба корбарон. Умуман, ҷустуҷӯи бозор чӣ гуна кор мекунад, то ҳама вақтро хуб гузаронанд.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Каме дар бораи мо: мо кадом масъаларо хал мекунем

Вақте ки шумо матн ворид мекунед, маҳсулотро аз рӯи параметрҳо ҷустуҷӯ мекунед ё нархҳоро дар мағозаҳои гуногун муқоиса мекунед, ҳама дархостҳо ба хидмати ҷустуҷӯ фиристода мешаванд. Ҷустуҷӯ бузургтарин хидмат дар бозор аст.

Мо ҳама дархостҳои ҷустуҷӯиро коркард мекунем: аз сайтҳои market.yandex.ru, beru.ru, хидмати Supercheck, Yandex.Advisor, замимаҳои мобилӣ. Мо инчунин пешниҳодҳои маҳсулотро ба натиҷаҳои ҷустуҷӯ дар yandex.ru дохил мекунем.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Бо хидмати ҷустуҷӯ ман на танҳо ҷустуҷӯро дар назар дорам, балки пойгоҳи додаҳоро бо ҳама пешниҳодҳо дар бозор дар назар дорам. Миқёс чунин аст: дар як рӯз зиёда аз як миллиард дархости ҷустуҷӯ коркард карда мешавад. Ва ҳама чиз бояд зуд, бе таъхир кор кунад ва ҳамеша натиҷаи дилхоҳ диҳад.

Чӣ аст: меъмории бозор

Ман ба таври мухтасар меъмории кунунии Бозорро тавсиф мекунам. Онро метавон тақрибан бо диаграммаи зерин тавсиф кард:
Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад
Фарз кардем, ки магазини шарик ба мо меояд. Ӯ мегӯяд, ки ман мехоҳам як бозича фурӯшам: ин гурбаи бад бо чирчирак. Ва боз як гурбаи хашмгин бе чирчирак. Ва танҳо як гурба. Сипас, мағоза бояд пешниҳодҳое омода кунад, ки бозор онҳоро ҷустуҷӯ мекунад. Мағоза xml-и махсусро бо пешниҳодҳо тавлид мекунад ва роҳи ин xmlро тавассути интерфейси шарикӣ ирсол мекунад. Индексатор пас аз он давра ба давра ин xml-ро зеркашӣ мекунад, хатогиҳоро месанҷад ва тамоми маълумотро дар махзани азим захира мекунад.

Чунин xml-ҳои захирашуда бисёранд. Индекси ҷустуҷӯ аз ин пойгоҳи додаҳо сохта мешавад. Индекс дар формати дохилӣ нигоҳ дошта мешавад. Пас аз сохтани индекс, хидмати Layout онро ба серверҳои ҷустуҷӯ бор мекунад.

Дар натиҷа, дар базаи маълумот як гурбаи хашмгин бо чирчирак пайдо мешавад ва дар сервер индекси гурба пайдо мешавад.

Ман ба шумо мегӯям, ки чӣ тавр мо гурбаро дар қисмати меъмории ҷустуҷӯ ҷустуҷӯ мекунем.

Архитектураи ҷустуҷӯи бозор

Мо дар ҷаҳони хидматрасонии хурд зиндагӣ мекунем: ҳар як дархости воридотӣ market.yandex.ru боиси зерталабиҳои зиёд мегардад ва дар коркарди онҳо даҳҳо хидматҳо ҷалб шудаанд. Диаграмма танҳо чандеро нишон медиҳад:

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад
Схемаи соддакардашудаи коркарди дархост

Ҳар як хидмат як чизи аҷибе дорад - тавозуни худ бо номи беназир:

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Мувозинат ба мо дар идоракунии хадамот чандирии бештар медиҳад: шумо метавонед, масалан, серверҳоро хомӯш кунед, ки аксар вақт барои навсозӣ заруранд. Мувозинат мебинад, ки сервер дастнорас аст ва ба таври худкор дархостҳоро ба серверҳои дигар ё марказҳои додаҳо равона мекунад. Ҳангоми илова кардан ё хориҷ кардани сервер, сарборӣ ба таври худкор байни серверҳо тақсим карда мешавад.

Номи беназири мувозинат аз маркази додаҳо вобаста нест. Вақте ки хидмати A ба B дархост мекунад, пас ба таври нобаёнӣ тавозуни B дархостро ба маркази додаҳои ҷорӣ равона мекунад. Агар хидмат дастрас набошад ё дар маркази додаҳои ҷорӣ мавҷуд набошад, дархост ба дигар марказҳои додаҳо равона карда мешавад.

Як FQDN барои ҳама марказҳои додаҳо ба хидмати A имкон медиҳад, ки аз маконҳо комилан абстракт карда шавад. Дархости ӯ ба хидматрасонии B ҳамеша баррасӣ карда мешавад. Истисно ҳолатест, ки хидмат дар ҳама марказҳои додаҳо ҷойгир аст.

Аммо на ҳама чиз бо ин мувозинат он қадар гулобӣ аст: мо ҷузъи иловагии мобайнӣ дорем. Мувозинат метавонад ноустувор бошад ва ин мушкилотро серверҳои зиёдатӣ ҳал мекунанд. Дар байни хидматҳои A ва B низ таъхири иловагӣ вуҷуд дорад. Аммо дар амал он камтар аз 1 мс аст ва барои аксари хидматҳо ин муҳим нест.

Мубориза бо ғайричашмдошт: Мувозинат ва устувории хидмати ҷустуҷӯ

Тасаввур кунед, ки харобшавӣ вуҷуд дорад: ба шумо лозим аст, ки гурба бо чирчирак пайдо кунед, аммо сервер вайрон мешавад. Ё 100 сервер. Чӣ тавр берун шудан? Оё мо воқеан корбарро бе гурба мемонем?

Вазъият даҳшатовар аст, аммо мо ба он омодаем. Ман ба шумо бо тартиб мегӯям.

Инфрасохтори ҷустуҷӯ дар якчанд марказҳои додаҳо ҷойгир аст:

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Ҳангоми тарҳрезӣ, мо имкони қатъ кардани як маркази маълумотро дар бар мегирем. Хаёт пур аз ногахонй аст — масалан, экскаватор сими зеризаминиро бурида метавонад (бале, хамин тавр шуд). Иқтидори марказҳои боқимондаи додаҳо бояд барои тоб овардан ба сарбории баланд кофӣ бошад.

Биёед як маркази маълумотро дида бароем. Ҳар як маркази додаҳо дорои як схемаи амалиёти тавозунист:

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад
Як мувозинат ҳадди аққал се сервери физикӣ мебошад. Ин зиёдатӣ барои эътимоднокӣ сохта шудааст. Мувозинатдиҳандагон дар HAProx кор мекунанд.

Мо HAProx-ро аз сабаби иҷрои баланд, талаботи ками захираҳо ва функсияҳои васеъ интихоб кардем. Нармафзори ҷустуҷӯии мо дар дохили ҳар як сервер кор мекунад.

Эҳтимолияти нокомии як сервер кам аст. Аммо агар шумо серверҳои зиёде дошта бошед, эҳтимоли он ки ҳадди аққал яке аз онҳо хомӯш мешавад, меафзояд.

Ин аст он чизе ки дар воқеият рӯй медиҳад: серверҳо вайрон мешаванд. Аз ин рӯ, зарур аст, ки доимо ҳолати ҳама серверҳоро назорат кунед. Агар сервер посух надиҳад, он ба таври худкор аз трафик ҷудо мешавад. Бо ин мақсад, HAProxy дорои санҷиши саломатӣ мебошад. Он дар як сония як маротиба бо дархости HTTP "/ping" ба ҳама серверҳо меравад.

Хусусияти дигари HAProxy: агент-check ба шумо имкон медиҳад, ки ҳама серверҳоро баробар бор кунед. Барои ин, HAProxy ба ҳама серверҳо пайваст мешавад ва онҳо вазни худро вобаста ба сарбории ҷорӣ аз 1 то 100 бармегардонанд. Вазн аз рӯи шумораи дархостҳо дар навбат барои коркард ва сарбории коркардкунанда ҳисоб карда мешавад.

Акнун дар бораи ёфтани гурба. Натиҷаҳои ҷустуҷӯ дар дархостҳо ба монанди: /search?text= хашмгин+гурба. Барои он ки ҷустуҷӯ зуд бошад, тамоми индекси гурба бояд ба RAM мувофиқат кунад. Ҳатто хондан аз SSD кофӣ нест.

Як вақтҳо, пойгоҳи додаҳои пешниҳодӣ хурд буд ва RAM-и як сервер барои он кифоя буд. Бо афзоиши пойгоҳи пешниҳод, ҳама чиз дигар ба ин RAM мувофиқат намекунад ва маълумот ба ду қисм тақсим карда шуд: shard 1 ва shard 2.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад
Аммо ин хамеша руй медихад: хар як рох, хатто халли хуб хам боиси пайдоиши проблемахои дигар мегардад.

Мувозинат ҳанӯз ба ягон сервер мерафт. Аммо дар дастгохе, ки дархост омад, танхо нисфи нишондиханда буд. Қисми боқимонда дар серверҳои дигар буд. Аз ин рӯ, сервер маҷбур шуд, ки ба ягон мошини ҳамсоя равад. Пас аз гирифтани маълумот аз ҳарду сервер, натиҷаҳо муттаҳид карда шуданд.

Азбаски мувозинат дархостҳоро ба таври баробар тақсим мекунад, ҳама серверҳо на танҳо фиристодани маълумот, балки ба такрори рейтинг машғул буданд.

Агар сервери ҳамсоя дастнорас бошад, мушкилот ба миён омад. Ҳалли он буд, ки якчанд серверҳо бо афзалиятҳои гуногун ҳамчун сервери "ҳамсоя" муайян карда шаванд. Аввалан, дархост ба серверҳо дар рахи ҷорӣ фиристода шуд. Агар ҷавобе набошад, дархост ба ҳамаи серверҳои ин маркази додаҳо фиристода шуд. Ва ниҳоят, дархост ба дигар марказҳои додаҳо рафт.
Баробари афзудани шумораи таклифхо маълумотхо ба чор кисм таксим карда шуданд. Аммо ин маҳдудият набуд.

Дар айни замон, конфигуратсияи ҳашт пора истифода мешавад. Илова бар ин, барои сарфаи хотираи бештар, индекс ба қисми ҷустуҷӯ (ки барои ҷустуҷӯ истифода мешавад) ва қисмати порча (ки дар ҷустуҷӯ иштирок намекунад) тақсим карда шуд.

Як сервер дорои маълумот барои танҳо як пора. Аз ин рӯ, барои ҷустуҷӯи индекси пурра, шумо бояд дар ҳашт сервере, ки дорои қисмҳои гуногун доранд, ҷустуҷӯ кунед.

Серверҳо ба кластерҳо гурӯҳбандӣ шудаанд. Ҳар як кластер ҳашт муҳаррики ҷустуҷӯ ва як сервери порчаро дар бар мегирад.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад
Сервери snippet пойгоҳи додаҳои калидӣ-арзишро бо маълумоти статикӣ идора мекунад. Онҳо барои додани ҳуҷҷатҳо, масалан, тавсифи гурба бо чирчирак лозиманд. Маълумот махсус ба сервери алоҳида интиқол дода мешавад, то хотираи серверҳои ҷустуҷӯро бор накунад.

Азбаски идентификаторҳои ҳуҷҷат танҳо дар дохили як индекс беназиранд, вазъияте метавонад ба миён ояд, ки дар порчаҳо ҳуҷҷат мавҷуд набошад. Хуб, ё ин ки барои як ID мундариҷаи гуногун хоҳад буд. Аз ин рӯ, барои он ки ҷустуҷӯ кор кунад ва натиҷаҳо баргардонида шаванд, дар тамоми кластер мувофиқат лозим буд. Ман ба шумо дар зер мегӯям, ки чӣ тавр мо пайгиронатро назорат мекунем.

Худи ҷустуҷӯ чунин сохта шудааст: дархости ҷустуҷӯ метавонад ба яке аз ҳашт сервер ворид шавад. Фарз мекунем, ки ӯ ба сервери 1 омад. Ин сервер ҳама далелҳоро коркард мекунад ва мефаҳмад, ки чӣ ва чӣ гуна бояд ҷустуҷӯ кард. Вобаста аз дархости воридотӣ, сервер метавонад ба хидматҳои беруна барои маълумоти зарурӣ дархостҳои иловагӣ диҳад. Пас аз як дархост метавонад то даҳ дархост ба хидматҳои беруна бошад.

Пас аз ҷамъоварии маълумоти зарурӣ, ҷустуҷӯ дар пойгоҳи додаҳо оғоз меёбад. Барои ин, зерпурсишҳо ба ҳамаи ҳашт серверҳои кластер анҷом дода мешаванд.

Пас аз гирифтани ҷавобҳо, натиҷаҳо якҷоя карда мешаванд. Дар ниҳоят, барои тавлиди натиҷаҳо метавонад якчанд зерпурсишҳои дигар ба сервери порча лозим шавад.

Дархостҳои ҷустуҷӯ дар кластер чунинанд: /shard1?text=gry+cat. Илова бар ин, зерпурсишҳои форма пайваста дар байни ҳамаи серверҳои дохили кластер дар як сония як маротиба анҷом дода мешаванд: /мақом.

Пурсиш /мақом вазъиятеро, ки сервер дастрас нест, муайян мекунад.

Он инчунин назорат мекунад, ки версияи муҳаррики ҷустуҷӯ ва версияи индекс дар ҳама серверҳо якхелаанд, вагарна дар дохили кластер маълумоти номувофиқ хоҳад буд.

Сарфи назар аз он, ки як сервери порча дархостҳои ҳашт системаи ҷустуҷӯиро коркард мекунад, протсессори он хеле сабук бор карда мешавад. Аз ин рӯ, мо ҳоло маълумоти порчаро ба хидмати алоҳида интиқол медиҳем.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Барои интиқоли маълумот мо калидҳои универсалии ҳуҷҷатҳоро ҷорӣ кардем. Ҳоло имконнопазир аст, ки мундариҷаи ҳуҷҷати дигар бо истифода аз як калид баргардонида шавад.

Аммо гузаштан ба меъмории дигар хануз ба охир нарасидааст. Ҳоло мо мехоҳем аз сервери порчаҳои бахшидашуда халос шавем. Ва он гоҳ аз сохтори кластер тамоман дур шавед. Ин ба мо имкон медиҳад, ки миқёсро ба осонӣ идома диҳем. Як бонуси иловагӣ сарфаи оҳани назаррас аст.

Ва акнун ба ҳикояҳои даҳшатнок бо анҷоми хушбахт. Биёед якчанд ҳолатҳои дастрас набудани серверро баррасӣ кунем.

Чизи даҳшатнок рӯй дод: як сервер дастнорас аст

Фарз мекунем, ки як сервер дастнорас аст. Он гоҳ серверҳои боқимондаи кластер метавонанд ҷавоби худро идома диҳанд, аммо натиҷаҳои ҷустуҷӯ нопурра хоҳанд буд.

Тавассути санҷиши ҳолати /мақом серверҳои ҳамсоя мефаҳманд, ки як дастнорас аст. Аз ин рӯ, барои нигоҳ доштани пуррагӣ, ҳама серверҳо дар кластер дар як дархост /ping онҳо ба мувозинат ҷавоб медиҳанд, ки онҳо низ дастнорасанд. Маълум мешавад, ки ҳамаи серверҳои кластер мурданд (ки ин дуруст нест). Ин камбудии асосии схемаи кластерии мост - барои ҳамин мо мехоҳем аз он дур шавем.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Дархостҳое, ки бо хатогӣ ноком мешаванд, аз ҷониби мувозинат дар серверҳои дигар фиристода мешаванд.
Мувозинат инчунин фиристодани трафики корбаронро ба серверҳои мурда қатъ мекунад, аммо тафтиши ҳолати онҳоро идома медиҳад.

Вақте ки сервер дастрас мешавад, он ба посух додан оғоз мекунад /ping. Ҳамин ки вокунишҳои муқаррарӣ ба пингҳои серверҳои мурда ворид мешаванд, мувозинатҳо ба он ҷо трафики корбаронро мефиристанд. Фаъолияти кластер барқарор карда шуд, ура.

Ҳатто бадтар: бисёр серверҳо дастнорасанд

Қисми зиёди серверҳо дар маркази додаҳо бурида шудаанд. Чӣ кор кардан, ба куҷо давидан? Мувозинат боз ба ёрй меояд. Ҳар як мувозинат дар хотира шумораи ҷории серверҳои зиндаро нигоҳ медорад. Он доимо миқдори максималии трафикро, ки маркази додаҳои мавҷуда коркард карда метавонад, ҳисоб мекунад.

Вақте ки бисёре аз серверҳо дар маркази додаҳо кор мекунанд, мувозинат дарк мекунад, ки ин маркази додаҳо тамоми трафикро коркард карда наметавонад.

Сипас трафики зиёдатӣ ба таври тасодуфӣ ба дигар марказҳои додаҳо тақсим карда мешавад. Ҳама чиз кор мекунад, ҳама хушбахтанд.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Чӣ тавр мо ин корро мекунем: нашри нашрияҳо

Акнун биёед дар бораи он сӯҳбат кунем, ки мо тағиротҳои ба хидмат воридшударо чӣ гуна интишор мекунем. Дар ин ҷо мо роҳи соддагардонии равандҳоро пеш гирифтем: баровардани версияи нав қариб пурра автоматӣ карда шудааст.
Вақте ки шумораи муайяни тағйирот дар лоиҳа ҷамъ карда мешаванд, версияи нав ба таври худкор эҷод карда мешавад ва сохтани он оғоз меёбад.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Сипас хидмат ба озмоиш интиқол дода мешавад, ки дар он устувории кор санҷида мешавад.

Ҳамзамон, санҷиши автоматии иҷроиш оғоз мешавад. Инро хадамоти махсус ҳал мекунад. Ман ҳоло дар ин бора гап намезанам - тавсифи он сазовори мақолаи алоҳида аст.

Агар интишор дар озмоиш бомуваффақият анҷом дода шавад, интишори нашр дар prestable ба таври худкор оғоз мешавад. Prestable як кластери махсусест, ки дар он трафики муқаррарии корбар равона карда мешавад. Агар он хатогиро баргардонад, мувозинат барои истеҳсол дубора дархост мекунад.

Дар ҳолати пешакӣ, вақти вокуниш чен карда мешавад ва бо нашри қаблӣ дар истеҳсолот муқоиса карда мешавад. Агар ҳама чиз хуб бошад, пас шахс пайваст мешавад: графикҳо ва натиҷаҳои санҷиши борро тафтиш мекунад ва сипас ба истеҳсолот мебарояд.

Ҳама беҳтаринҳо ба корбар мераванд: санҷиши A/B

На ҳама вақт маълум аст, ки тағирот ба хидмат фоидаи воқеӣ меорад ё не. Барои чен кардани фоиданокии тағирот, одамон бо санҷиши A/B баромад карданд. Ман ба шумо каме дар бораи он, ки он дар ҷустуҷӯи Yandex.Market кор мекунад, нақл мекунам.

Ҳамааш аз илова кардани параметри нави CGI оғоз мешавад, ки функсияҳои навро фароҳам меорад. Бигзор параметри мо бошад: бозор_нав_функсия=1. Пас, дар код мо ин функсияро фаъол мекунем, агар парчам мавҷуд бошад:

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

Функсияи нав дар истеҳсолот ҷорӣ карда мешавад.

Барои автоматикунонии санҷиши A/B хидмати махсусе мавҷуд аст, ки маълумоти муфассалро пешниҳод мекунад дар ин ҷо тавсиф карда шудааст. Дар хидмат озмоиш эҷод карда мешавад. Ҳиссаи трафик муқаррар карда шудааст, масалан, 15%. Фоизҳо на барои дархостҳо, балки барои корбарон муқаррар карда мешаванд. Давомнокии таҷриба инчунин, масалан, як ҳафта нишон дода мешавад.

Якчанд таҷрибаҳоро дар як вақт иҷро кардан мумкин аст. Дар танзимот шумо метавонед муайян кунед, ки оё буриш бо дигар таҷрибаҳо имконпазир аст.

Дар натиҷа, хидмат ба таври худкор далел илова мекунад бозор_нав_функсия=1 ба 15% истифодабарандагон. Он инчунин ба таври худкор ченакҳои интихобшударо ҳисоб мекунад. Пас аз анҷоми таҷриба, таҳлилгарон ба натиҷаҳо назар мекунанд ва хулоса мебароранд. Дар асоси бозёфтҳо, қарор дар бораи ба истеҳсолот ё такмилдиҳӣ интиқол дода мешавад.

Дасти моҳир бозор: озмоиш дар истеҳсолот

Аксар вақт чунин мешавад, ки шумо бояд кори як функсияи навро дар истеҳсолот санҷед, аммо шумо боварӣ надоред, ки он дар шароити "ҷанг" дар зери бори вазнин чӣ гуна рафтор мекунад.

Як роҳи ҳалли он вуҷуд дорад: парчамҳоро дар параметрҳои CGI на танҳо барои санҷиши A/B, балки барои санҷиши функсияҳои нав низ истифода бурдан мумкин аст.

Мо асбоберо сохтем, ки ба шумо имкон медиҳад конфигуратсияро дар ҳазорҳо серверҳо бидуни хатари хатарҳо тағир диҳед. Он Stop Tap ном дорад. Идеяи аслӣ ин буд, ки тавонист ба зудӣ баъзе функсияҳоро бидуни тарҳ хомӯш кунад. Баъд асбоб васеъ ва мураккабтар шуд.

Диаграммаи ҷараёни хидмат дар зер оварда шудааст:

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Қиматҳои парчам тавассути API муқаррар карда мешаванд. Хидмати идоракунӣ ин арзишҳоро дар пойгоҳи додаҳо нигоҳ медорад. Ҳама серверҳо дар ҳар даҳ сония як маротиба ба пойгоҳи додаҳо мераванд, арзишҳои парчамро хориҷ мекунанд ва ин арзишҳоро ба ҳар як дархост татбиқ мекунанд.

Дар клики Ист, шумо метавонед ду намуди арзишҳоро таъин кунед:

1) Ибораҳои шартӣ. Вақте ки яке аз арзишҳо дуруст аст, татбиқ кунед. Барои намуна:

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

Қимати "3" ҳангоми коркарди дархост дар макони DC1 истифода мешавад. Ва арзиши "4" аст, вақте ки дархост дар кластери дуюм барои сайти beru.ru коркард мешавад.

2) Қиматҳои шартӣ. Бо нобаёнӣ муроҷиат кунед, агар ҳеҷ яке аз шартҳо иҷро нашаванд. Барои намуна:

арзиш, арзиш!

Агар арзиш бо аломати нидо хотима ёбад, ба он афзалияти баландтар дода мешавад.

Таҳлилгари параметри CGI URL-ро таҳлил мекунад. Сипас арзишҳоро аз Stop Tap истифода мебарад.

Арзишҳо бо афзалиятҳои зерин татбиқ карда мешаванд:

  1. Бо афзалияти зиёд аз Stop Tap (нишони нидо).
  2. Арзиш аз дархост.
  3. Қимати пешфарз аз Stop tap.
  4. Арзиши пешфарз дар код.

Парчамҳои зиёде мавҷуданд, ки дар арзишҳои шартӣ нишон дода шудаанд - онҳо барои ҳама сенарияҳои ба мо маълум кофӣ мебошанд:

  • Маркази маълумот.
  • Муҳити зист: истеҳсол, озмоиш, соя.
  • Макон: бозор, Беру.
  • Рақами кластер.

Бо ин асбоб шумо метавонед функсияҳои навро дар гурӯҳи муайяни серверҳо фаъол созед (масалан, танҳо дар як маркази додаҳо) ва кори ин функсияро бидуни ягон хатари махсус барои тамоми хидмат санҷед. Ҳатто агар шумо дар ҷое хатои ҷиддие содир карда бошед ҳам, ҳама чиз фурӯ рафтан гирифт ва тамоми маркази додаҳо аз кор рафт, мувозинаткунандагон дархостҳоро ба дигар марказҳои додаҳо равона мекунанд. Истифодабарандагони ниҳоӣ чизеро пай намебаранд.

Агар шумо ягон мушкилотро мушоҳида кунед, шумо метавонед фавран парчамро ба арзиши қаблии худ баргардонед ва тағиротҳо баргардонида мешаванд.

Ин хидмат инчунин камбудиҳои худро дорад: таҳиягарон онро хеле дӯст медоранд ва аксар вақт кӯшиш мекунанд, ки ҳама тағиротро ба Stop Tap пахш кунанд. Мо кӯшиш мекунем, ки бо истифодаи нодуруст мубориза барем.

Равиши Stop Tap хуб кор мекунад, вақте ки шумо аллакай рамзи устуворе доред, ки ба истеҳсолот омода кардаед. Дар айни замон, шумо то ҳол шубҳа доред ва шумо мехоҳед кодро дар шароити "ҷанг" тафтиш кунед.

Аммо, Stop Tap барои санҷиш ҳангоми таҳия мувофиқ нест. Барои таҳиягарон кластери алоҳида мавҷуд аст, ки "кластери соя" ном дорад.

Санҷиши махфӣ: кластери соя

Дархостҳо аз яке аз кластерҳо ба кластери соя такрор карда мешаванд. Аммо мувозинат ҷавобҳои ин кластерро комилан нодида мегирад. Диаграммаи кори он дар зер оварда шудааст.

Ҷустуҷӯи Yandex.Market чӣ гуна кор мекунад ва агар яке аз серверҳо ноком шавад, чӣ мешавад

Мо кластери санҷиширо мегирем, ки дар шароити воқеии "ҷанг" қарор дорад. Трафики муқаррарии корбар ба он ҷо меравад. Таҷҳизоти ҳарду кластер якхела аст, бинобар ин кор ва хатогиҳоро метавон муқоиса кард.

Ва азбаски мувозинат посухҳоро комилан нодида мегирад, корбарони ниҳоӣ посухҳоро аз кластери соя намебинанд. Аз ин рӯ, хато кардан даҳшатнок нест.

натиҷаҳои

Пас, мо чӣ гуна ҷустуҷӯи бозорро сохтем?

Барои он ки ҳама чиз бемаънӣ шавад, мо функсияҳоро ба хидматҳои алоҳида ҷудо мекунем. Бо ин роҳ мо метавонем танҳо он ҷузъҳоеро, ки ба мо лозиманд, васеъ кунем ва ҷузъҳоро соддатар кунем. Ба дастаи дигар тақсим кардани ҷузъи алоҳида ва тақсим кардани масъулиятҳо барои кор дар он осон аст. Ва сарфаи назарраси оҳан бо ин равиш як плюси ошкор аст.

Кластери соя низ ба мо кӯмак мекунад: мо метавонем хидматҳоро таҳия кунем, онҳоро дар раванд санҷем ва корбарро халалдор накунем.

Хуб, озмоиш дар истеҳсолот, албатта. Оё конфигуратсияро дар ҳазорҳо серверҳо тағир додан лозим аст? Осон, тугмаи Stop-ро истифода баред. Бо ин роҳ, шумо метавонед фавран як ҳалли мураккаби омодаро паҳн кунед ва дар сурати пайдо шудани мушкилот ба версияи устувор баргардед.

Умедворам, ки ман тавонистам нишон диҳам, ки чӣ гуна мо бозорро бо заминаи рӯзафзуни пешниҳодҳо зуд ва устувор мегардонем. Чӣ гуна мо мушкилоти серверро ҳал мекунем, шумораи зиёди дархостҳоро ҳал мекунем, чандирии хидматро беҳтар мекунем ва ин корро бидуни халалдор кардани равандҳои корӣ иҷро мекунем.

Манбаъ: will.com

Илова Эзоҳ