
HemĂź xweĆ!
NavĂȘ min Nikita ye, ez serokĂȘ tĂźmĂȘ tĂźmĂȘ endezyariya Cian me. Yek ji berpirsiyariyĂȘn min ĂȘn li pargĂźdaniyĂȘ ew e ku hejmara bĂ»yerĂȘn ku bi binesaziya hilberĂźnĂȘ ve girĂȘdayĂź ne kĂȘm bikim.
Ya ku dĂȘ li jĂȘr were nĂźqaĆ kirin gelek ĂȘĆ ji me re aniye, Ă» mebesta vĂȘ gotarĂȘ ew e ku rĂȘ li ber kesĂȘn din bigire ku xeletiyĂȘn me dubare nekin an bi kĂȘmanĂź bandora wan kĂȘm bikin.
Preamble
Demek dirĂȘj berĂȘ, dema ku Cyan ji monolĂźtan pĂȘk dihat, Ă» hĂźna ĂźĆaretĂȘn mĂźkroservĂźsan tune bĂ»n, me hebĂ»na çavkaniyekĂȘ bi kontrolkirina 3-5 rĂ»pelan pĂźv kir.
Ew bersiv didin - her tiĆt baĆ e, heke ew ji bo demek dirĂȘj bersiv nedin - hiĆyar. Ji bo ku ev bĂ»yer wekĂź bĂ»yer were hesibandin, di civĂźnan de biryar ji aliyĂȘ mirovan ve hat dayĂźn. TĂźmek endezyaran her tim tevlĂź lĂȘkolĂźna bĂ»yerĂȘ bĂ». Dema ku vekolĂźn qediya, wan postmortemek nivĂźsand - celebek raporek bi e-nameyĂȘ di vĂȘ formĂȘ de: çi qewimĂź, çiqas dom kir, me di vĂȘ gavĂȘ de çi kir, em ĂȘ di pĂȘĆerojĂȘ de çi bikin.
RĂ»pelĂȘn sereke yĂȘn malperĂȘ an jĂź em çawa fam dikin ku me li binĂȘ xwe xistiye
Ji bo ku em bi rengek pĂȘĆĂźya xeletiyĂȘ fam bikin, me rĂ»pelĂȘn malperĂȘ yĂȘn herĂź krĂźtĂźk ji bo fonksiyona karsaziyĂȘ nas kirine. Bi karanĂźna wan, em hejmara daxwazĂȘn serketĂź / neserkeftĂź Ă» demjimaran dihejmĂȘrin. Bi vĂź rengĂź em dema xebatĂȘ dipĂźvin.
Ka em bibĂȘjin me fĂȘhm kir ku hejmarek beĆĂȘn pir girĂźng ĂȘn malperĂȘ hene ku berpirsiyariya karĂ»barĂȘ sereke ne - lĂȘgerĂźn Ă» Ćandina reklaman. Ger hejmara daxwazĂȘn ku bi ser nekevin ji 1%, ev bĂ»yerek krĂźtĂźk e. Ger di nav 15 hĂ»rdeman de di dema sereke de rĂȘjeya xeletiyĂȘ ji% 0,1 derbas bibe, wĂȘ hingĂȘ ev jĂź wekĂź bĂ»yerek krĂźtĂźk tĂȘ hesibandin. Van pĂźvanan piraniya bĂ»yeran vedihewĂźne;

Top best bĂ»yerĂȘn Cian
Ji ber vĂȘ yekĂȘ, em bĂȘ guman fĂȘr bĂ»ne ku rastiya bĂ»yerek qewimĂź diyar bikin.
Niha her bĂ»yerek bi berfirehĂź tĂȘ vegotin Ă» di dastana JĂźra de xuya dike. Bi awayĂȘ: ji bo vĂȘ yekĂȘ me projeyek cihĂȘ dest pĂȘ kir, jĂȘ re FAIL tĂȘ gotin - tenĂȘ epĂźk dikarin tĂȘ de werin afirandin.
Ger hĂ»n hemĂź tĂȘkçûnĂȘn çend salĂȘn borĂź berhev bikin, serok ev in:
- bĂ»yerĂȘn girĂȘdayĂź mssql;
- bĂ»yerĂȘn ku ji hĂȘla faktorĂȘn derveyĂź ve tĂȘne çĂȘkirin;
- çewtiyĂȘn admin.
Ka em bi hĂ»rgulĂź li xeletiyĂȘn rĂȘvebiran, Ă» hem jĂź li hin tĂȘkçûnĂȘn din ĂȘn balkĂȘĆ binĂȘrin.
CihĂȘ pĂȘncemĂźn - "Di DNS-ĂȘ de tiĆtan rĂȘz kirin"
SĂȘĆemeke bahoz bĂ». Me biryar da ku em rĂȘzĂȘ di koma DNS de vegerĂźnin.
Min dixwest ku serverĂȘn DNS-ya navxweyĂź ji bind-ĂȘ veguhezĂźnim powerdns, ji bo vĂȘ yekĂȘ serverĂȘn bi tevahĂź veqetandĂź veqetĂźnim, li wir ji bilĂź DNS-ĂȘ tiĆtek tune.
Me serverek DNS li her cĂźhĂȘ DC-yĂȘn xwe bi cĂźh kir, Ă» dem hat ku em deveran ji bind berbi powerdns veguhezĂźnin Ă» binesaziyĂȘ veguherĂźnin serverĂȘn nĂ».
Di nav tevgerĂȘ de, ji her tiĆtĂź pĂȘĆkĂȘĆkerĂȘnJi serverĂȘn ku di girĂȘdanĂȘn caching ĂȘn herĂȘmĂź de hatine destnĂźĆankirin, tenĂȘ yek ma - ya li navenda daneyan a St. Petersburg. Ev navenda daneyan di destpĂȘkĂȘ de ji bo me ne krĂźtĂźk hate ragihandin, lĂȘ ji niĆkĂȘ ve bĂ» xalek tĂȘkçûnĂȘ ya yekane.
Di vĂȘ serdema veguhĂȘztinĂȘ de bĂ» ku kanala di navbera Moskow Ă» St. PetersburgĂȘ de qut bĂ». Em bi bandor pĂȘnc deqeyan bĂȘ DNS man Ă» dema ku em baĆ bĂ»n, em baĆ bĂ»n. mĂȘvandar pirsgirĂȘkan çareser kir.
EncamĂȘn
Ger berĂȘ me di dema amadekirina xebatĂȘ de faktorĂȘn derveyĂź paĆguh kir, naha ew jĂź di navnĂźĆa tiĆtĂȘn ku em ji bo wan amade dikin de cih digirin. Naha em hewl didin ku pĂȘ ewle bibin ku hemĂź pĂȘkhate n-2 veqetandĂź ne, Ă» di dema xebatĂȘ de em dikarin vĂȘ astĂȘ daxin n-1.
- Dema ku plansaziyek çalakiyĂȘ amade dikin, xalĂȘn ku dibe ku karĂ»bar tĂȘk biçe nĂźĆan bikin, Ă» li ser senaryoyek bifikirin ku her tiĆt di pĂȘĆ de "ji xirab ber bi xirabtir" ve çû.
- PĂȘĆkĂȘĆkerĂȘn DNS-ĂȘ yĂȘn hundurĂźn li ser erdnĂźgarĂź / navendĂȘn daneyĂȘ / racks / guheztin / tĂȘketinĂȘn cihĂȘreng belav bikin.
- Li ser her serverĂȘ, serverek DNS-a caching-a herĂȘmĂź saz bikin, ku daxwazan ber bi serverĂȘn sereke yĂȘn DNS-ĂȘ veguhezĂźne, Ă» heke ew tune be, ew ĂȘ ji cache-ĂȘ bersivĂȘ bide.
CihĂȘ çaremĂźn - "Paqijkirina tiĆtan li Nginx"
Rojek xweĆ, tĂźmĂȘ me biryar da ku "me tĂȘra vĂȘ yekĂȘ kiriye," Ă» pĂȘvajoya veavakirina mĂźhengĂȘn nginx dest pĂȘ kir. Armanca sereke ew e ku mĂźhengan bigihĂźne avahiyek Ăźntuitive. BerĂȘ, her tiĆt "dĂźrokĂź" bĂ» Ă» tu mantiqĂȘ nedigirt. Naha her server_name li pelek bi heman navĂź hate veguheztin Ă» hemĂź vesazkirin di peldankan de hatine belav kirin. Bi awayĂȘ, konfigurasyon 253949 rĂȘzan an 7836520 karakteran dihewĂźne Ă» hema hema 7 megabyte digire. Asta jorĂźn a strukturĂȘ:
Struktura Nginx
âââ access
â âââ allow.list
...
â âââ whitelist.conf
âââ geobase
â âââ exclude.conf
...
â âââ geo_ip_to_region_id.conf
âââ geodb
â âââ GeoIP.dat
â âââ GeoIP2-Country.mmdb
â âââ GeoLiteCity.dat
âââ inc
â âââ error.inc
...
â âââ proxy.inc
âââ lists.d
â âââ bot.conf
...
â âââ dynamic
â âââ geo.conf
âââ lua
â âââ cookie.lua
â âââ log
â â âââ log.lua
â âââ logics
â â âââ include.lua
â â âââ ...
â â âââ utils.lua
â âââ prom
â âââ stats.lua
â âââ stats_prometheus.lua
âââ map.d
â âââ access.conf
â âââ ..
â âââ zones.conf
âââ nginx.conf
âââ robots.txt
âââ server.d
â âââ cian.ru
â â âââ cian.ru.conf
â â âââ ...
â â âââ my.cian.ru.conf
âââ service.d
â âââ ...
â âââ status.conf
âââ upstream.d
âââ cian-mcs.conf
âââ ...
âââ wafserver.confEw pir çĂȘtir bĂ», lĂȘ di pĂȘvajoya nav Ă» belavkirina mĂźhengan de, hin ji wan xwedan dirĂȘjkirina xelet bĂ»n Ă» ne di nav rĂȘwerznameya *.conf de bĂ»n. WekĂź encamek, hin mĂȘvandar neçar bĂ»n Ă» 301 vegeriyan rĂ»pela sereke. Ji ber ku koda bersivĂȘ ne 5xx/4xx bĂ», ev yek tavilĂȘ nehate dĂźtin, lĂȘ tenĂȘ serĂȘ sibĂȘ. PiĆtĂź wĂȘ, me dest bi nivĂźsandina testan kir da ku hĂȘmanĂȘn binesaziyĂȘ kontrol bikin.
EncamĂȘn
- MĂźhengĂȘn xwe rast ava bikin (ne tenĂȘ nginx) Ă» di qonaxek destpĂȘkĂȘ ya projeyĂȘ de bi strukturĂȘ bifikirin. Bi vĂź rengĂź hĂ»n ĂȘ wan ji tĂźmĂȘ re bĂȘtir fĂȘm bikin, ku di encamĂȘ de dĂȘ TTM kĂȘm bike.
- Ji bo hin pĂȘkhateyĂȘn binesaziyĂȘ ceribandinan binivĂźsin. MĂźnakĂź: kontrol bikin ku hemĂź navĂȘn server_yĂȘn sereke statĂ»ya rast + laĆĂȘ bersivĂȘ didin. DĂȘ bes be ku tenĂȘ çend nivĂźsar li ber destan hebin ku fonksiyonĂȘn bingehĂźn ĂȘn pĂȘkhateyĂȘ kontrol dikin, da ku di demjimĂȘr 3 danĂȘ sibĂȘ de bi dilĆikestĂź neyĂȘ bĂźra we, ya din çi hewce dike ku were kontrol kirin.
CihĂȘ sĂȘyem - "Li Cassandra ji niĆka ve ji cĂźh derket"
DaneyĂȘn bi domdarĂź mezin dibĂ»n, Ă» her tiĆt baĆ bĂ» heya wĂȘ gavĂȘ ku tamĂźrkirina cĂźhĂȘn dozĂȘn mezin di koma Cassandra de dest pĂȘ kir tĂȘk çû, ji ber ku berhevkirin nekarĂź li ser wan bixebite.
Rojek bahoz, kom hema hema bĂ» kumek, bi navĂź:
- ji sedĂź 20 ĂȘ cĂźhĂȘ giĆtĂź yĂȘ di komĂȘ de mabĂ»;
- Ne gengaz e ku meriv bi tevahĂź girĂȘkan lĂȘ zĂȘde bike, ji ber ku ji ber kĂȘmbĂ»na cĂźhĂȘ li ser dabeĆan piĆtĂź lĂȘ zĂȘdekirina girĂȘkekĂȘ paqijĂź derbas nabe;
- berberĂź gav bi gav dadikeve ji ber ku komkirin nexebite;
- Kom di moda acĂźl de ye.

Derketin - me 5 girĂȘkĂȘn din bĂȘyĂź paqijkirin lĂȘ zĂȘde kir, piĆt re me dest bi birĂȘkĂ»pĂȘk derxistina wan ji komĂȘ kir Ă» ji nĂ» ve tĂȘkevin wan, mĂźna girĂȘkĂȘn vala yĂȘn ku ji cĂźhĂȘ xwe xilas bĂ»ne. Ji ya ku em dixwazin pir zĂȘdetir dem derbas bĂ». Metirsiya tunebĂ»na qismĂź an bi tevahĂź ya komĂȘ hebĂ».
EncamĂȘn
- Li ser hemĂź pĂȘĆkĂȘĆkerĂȘn cassandra, divĂȘ ji% 60-ĂȘ cĂźhĂȘ li ser her dabeĆkirinĂȘ neyĂȘ dagĂźr kirin.
- PĂȘdivĂź ye ku ew ji% 50 cpu ne bĂȘtir werin barkirin.
- PĂȘdivĂź ye ku hĂ»n plansaziya kapasĂźteyĂȘ ji bĂźr nekin Ă» pĂȘdivĂź ye ku hĂ»n li ser her pĂȘkhateyĂȘ, li gorĂź taybetmendiyĂȘn wĂȘ, bifikirin.
- Di komĂȘ de girĂȘkĂȘn zĂȘdetir, baĆtir. PĂȘĆkĂȘĆkerĂȘn ku hejmareke piçûk a daneyĂȘ vedihewĂźnin zĂ»tir tĂȘne barkirin, Ă» komek wusa ji nĂ» ve vejandina hĂȘsantir e.
CihĂȘ duyemĂźn - "DaneyĂȘn ji hilanĂźna key-nirxa konsulĂȘ winda bĂ»ne"
Ji bo vedĂźtina karĂ»barĂȘ, em, mĂźna gelekan, konsul bikar tĂźnin. LĂȘ em nirxa wĂȘ ya sereke jĂź ji bo sĂȘwirana ĆĂźn-kesk a monolĂźtĂȘ bikar tĂźnin. Ew agahdariya li ser jorĂźnĂȘn çalak Ă» neçalak, yĂȘn ku di dema bicĂźhkirinĂȘ de cĂźh diguhezĂźnin hilĂźne. Ji bo vĂȘ armancĂȘ, karĂ»barek belavkirinĂȘ hate nivĂźsandin ku bi KV re tĂȘkilĂź danĂź. Di demekĂȘ de, daneyĂȘn KV winda bĂ»n. Ji bĂźranĂźnĂȘ hate vegerandin, lĂȘ bi çend xeletiyan. WekĂź encamek, di dema barkirinĂȘ de, barkirina li ser jorĂźn bi rengek neyeksan hate belav kirin, Ă» me ji ber barkirina paĆĂźn li ser CPU-yĂȘ gelek xeletiyĂȘn 502 wergirtin. WekĂź encamek, me ji konsulĂȘ KV bar kir postgres, ji ku derĂȘ rakirina wan ĂȘdĂź ne ew qas hĂȘsan e.
EncamĂȘn
- KarĂ»barĂȘn bĂȘyĂź destĂ»rnameyĂȘ divĂȘ daneyĂȘn ku ji bo xebata malperĂȘ krĂźtĂźk nebin. MĂźnakĂź, heke di ES-ĂȘ de destĂ»rnameya we tune be, çĂȘtir e ku hĂ»n gihĂźĆtina di asta torĂȘ de ji her deverĂȘ ku ne hewce ye red bikin, tenĂȘ yĂȘn pĂȘwĂźst bihĂȘlin, Ă» her weha action.destructive_requires_name: rast jĂź bicĂźh bikin.
- MekanĂźzmaya hilanĂźnĂȘ Ă» vegerandina xwe di pĂȘĆ de pratĂźk bikin. MĂźnakĂź, di pĂȘĆ de skrĂźptek çĂȘbikin (mĂźnakĂź, di python de) ku dikare piĆtgir Ă» sererast bike.
CihĂȘ yekem - "Captain Unobvious"
Di hin xalan de, me di rewĆĂȘn ku di paĆperdeya paĆĂźn de zĂȘdetirĂź 10 pĂȘĆkĂȘĆker hebĂ»n, belavbĂ»nek neyeksan a barkirinĂȘ li ser jorĂźnĂȘn nginx dĂźt. Ji ber vĂȘ yekĂȘ ku dor-robin daxwaz ji 1-ĂȘ heya paĆĂźn a paĆĂźn bi rĂȘz Ćandin, Ă» her nĂ»vekirina nginx ji nĂ» ve dest pĂȘ kir, jorĂźnĂȘn pĂȘĆĂźn her gav ji yĂȘn din bĂȘtir daxwaz distĂźnin WekĂź encamek, ew hĂȘdĂźtir xebitĂźn Ă» hemĂź malper zirar dĂźt . Ev yek her ku diçe zĂȘde xuya dibĂ» her ku diçe rĂȘjeya trafĂźkĂȘ zĂȘde dibe. TenĂȘ nĂ»vekirina nginx-ĂȘ ji bo çalakkirina random nexebitĂź - pĂȘdivĂź ye ku em komek koda lua-ya ku di guhertoya 1.15-ĂȘ de derneketiye (di wĂȘ gavĂȘ de) ji nĂ» ve bikin. Diviya bĂ» ku me nginx 1.14.2-ya xwe patch bikira, piĆtgirĂźya rasthatĂź tĂȘxe nav wĂȘ. VĂȘ yekĂȘ pirsgirĂȘk çareser kir. Ev xelet di kategoriya "Captain Non-Obviousness" de qezenc dike.
EncamĂȘn
VekolĂźna vĂȘ xeletiyĂȘ pir balkĂȘĆ Ă» heyecan bĂ»).
- ĂavdĂȘriya xwe organĂźze bikin da ku ew ji we re bibe alĂźkar ku hĂ»n zĂ» guheztinĂȘn weha bibĂźnin. MĂźnakĂź, hĂ»n dikarin ELK-ĂȘ bikar bĂźnin da ku rps li ser her paĆĂźn a her jorĂźn biĆopĂźnin, dema bersivdana wan ji hĂȘla nginx ve biĆopĂźnin. Di vĂȘ rewĆĂȘ de, ev alĂźkariya me kir ku pirsgirĂȘk nas bikin.
WekĂź encamek, piraniya tĂȘkçûnan dikaribĂ» bi nĂȘzĂźkatiyek hĂ»rgulĂź ya ku we dikir ji holĂȘ rakira. DivĂȘ em her gav qanĂ»na Murphy bi bĂźr bĂźnin: TiĆtĂȘ ku dikare xelet bibe dĂȘ xelet bibe, Ă» li ser bingeha wĂȘ pĂȘkhateyan ava bikin.
Source: www.habr.com
