Top fakapov Cyan

Top fakapov Cyan

E hantle ho bohle! 

Lebitso la ka ke Nikita, ke moetapele oa sehlopha sa sehlopha sa boenjiniere sa Cian. E 'ngoe ea boikarabello ba ka k'hamphaning ke ho fokotsa palo ea liketsahalo tse amanang le lisebelisoa tsa tlhahiso-leseling ho fihla ho zero.
Se tla tšohloa ka tlase se re tliselitse bohloko bo boholo, 'me morero oa sehlooho sena ke ho thibela batho ba bang ho pheta liphoso tsa rona kapa bonyane ho fokotsa tšusumetso ea bona. 

Selelekela

Khale koana, ha Cian e ne e e-na le monoliths, 'me ho ne ho se na lintlha tsa microservices leha ho le joalo, re ile ra lekanya boteng ba mohloli ka ho hlahloba maqephe a 3-5. 

Ba araba - ntho e 'ngoe le e' ngoe e lokile, haeba ba sa arabe nako e telele - ba falimehile. Hore na ba ile ba tlameha ho se sebetse nako e kae hore e nkoe e le ketsahalo e ne e etsoa qeto ke batho libokeng. Sehlopha sa baenjiniere se ne se lula se le teng lipatlisisong tsa ketsahalo ena. Ha lipatlisiso li phethiloe, ba ile ba ngola postmortem - mofuta oa tlaleho ka lengolo-tsoibila ka sebopeho: se etsahetseng, se nkile nako e kae, seo re se entseng ka nako eo, seo re tla se etsa nakong e tlang. 

Maqephe a sehlooho a sebaka sa marang-rang kapa hore na re utloisisa joang hore re otlile ka tlase

 
E le hore ka tsela e itseng re utloisise bohlokoa ba phoso, re khethile maqephe a bohlokoa ka ho fetisisa a sebaka sa marang-rang bakeng sa ts'ebetso ea khoebo. Ha re li sebelisa, re bala palo ea likopo tse atlehileng / tse sa atleheng le linako tse behiloeng. Ke kamoo re lekanyang nako ea ho qetela. 

Ha re re re fumane hore ho na le likarolo tse 'maloa tsa bohlokoahali tsa sebaka sa marang-rang tse ikarabellang bakeng sa ts'ebeletso ea mantlha - ho batla le ho fana ka lipapatso. Haeba palo ea likopo tse sa atleheng e feta 1%, ena ke ketsahalo e mahlonoko. Haeba ka hare ho metsotso e 15 nakong ea nako e kholo tekanyo ea phoso e feta 0,1%, joale sena se boetse se nkoa e le ketsahalo e mahlonoko. Mekhoa ena e akaretsa boholo ba liketsahalo; tse ling kaofela li ka nqane ho sebaka sa sengoloa sena.

Top fakapov Cyan

Liketsahalo tse ntle ka ho fetisisa Cian

Kahoo, ka sebele re ithutile ho fumana hore na ketsahalo e etsahetse. 

Hona joale ketsahalo e 'ngoe le e' ngoe e hlalosoa ka botlalo 'me e bontšoa ho epic ea Jira. Tseleng: bakeng sa sena re ile ra qala morero o arohaneng, o o bitsitseng FAIL - ke li-epics feela tse ka etsoang ho eona. 

Haeba u bokella mefokolo eohle lilemong tse 'maloa tse fetileng, baetapele ke: 

  • liketsahalo tse amanang le msql;
  • liketsahalo tse bakoang ke mabaka a ka ntle;
  • liphoso tsa admin.

Ha re shebeng ka botlalo liphoso tsa batsamaisi, hammoho le liphoso tse ling tse khahlisang.

Sebaka sa bohlano - "Ho beha lintho ka tatellano ho DNS"

E ne e le Labobedi la sefefo. Re nkile qeto ea ho khutlisetsa taolo sehlopheng sa DNS. 

Ke ne ke batla ho fetisetsa li-server tsa ka hare tsa DNS ho tloha ho tlama ho ea ho powerdns, ho fana ka li-server tse arohaneng ka ho feletseng bakeng sa sena, moo ho se nang letho ntle le DNS. 

Re behile seva se le seng sa DNS sebakeng se seng le se seng sa li-DC tsa rona, 'me nako ea fihla ea ho tlosa libaka ho tloha ho tlama ho ea ho matla le ho fetola lisebelisoa ho li-server tse ncha. 

Bohareng ba ho falla, ho li-server tsohle tse boletsoeng ka caching ea sebakeng seo li tlamella li-server tsohle, ho ile ha sala e le 'ngoe feela, e neng e le setsing sa data sa St. Petersburg. DC ena qalong e ile ea phatlalatsoa e sa re nyatse, empa hang-hang e ile ea hloleha.
Ke nakong ena ea ho falla moo kanale e pakeng tsa Moscow le St. Petersburg e ileng ea oa. Ha e le hantle re ile ra sala re se na DNS ka metsotso e mehlano 'me ra khutlela morao ha moamoheli a lokisa bothata. 

Qeto:

Haeba pejana re ne re hlokomolohile lintlha tsa ka ntle nakong ea ho itokisetsa mosebetsi, joale li boetse li kenyelelitsoe lethathamong la seo re se lokisetsang. 'Me joale re leka ho etsa bonnete ba hore likarolo tsohle li bolokiloe n-2,' me nakong ea mosebetsi re ka theola boemo bona ho n-1.

  • Ha u etsa moralo oa tšebetso, tšoaea lintlha tseo tšebeletso e ka hlolehang ho tsona, 'me u nahane ka boemo boo ntho e 'ngoe le e 'ngoe e ileng ea “tloha bobeng ho ea mpefalang” esale pele.
  • Abela li-server tsa ka hare tsa DNS ho pholletsa le libaka tse fapaneng tsa geolocation/data center/racks/switches/inputs.
  • Ho seva e 'ngoe le e' ngoe, kenya seva ea caching ea sebaka sa DNS, e khutlisetsang likopo ho li-server tse kholo tsa DNS, 'me haeba e sa fumanehe, e tla arabela ho tsoa ho cache. 

Sebaka sa bone - "Ho hloekisa lintho ho Nginx"

Ka letsatsi le leng le letle, sehlopha sa rona se nkile qeto ea hore "re bile le sena se lekaneng," mme ts'ebetso ea ho lokisa li-configs tsa nginx ea qala. Sepheo se seholo ke ho tlisa li-configs ho sebopeho se hlakileng. Pele, ntho e 'ngoe le e' ngoe e ne e "thehiloe historing" 'me e ne e se na mabaka. Hona joale server_name e 'ngoe le e' ngoe e fetiselitsoe faeleng ea lebitso le le leng 'me litlhophiso tsohle li arolelitsoe ka har'a lifoldara. Ka tsela, config e na le mela e 253949 kapa litlhaku tse 7836520 'me e nka hoo e ka bang 7 megabytes. Boemo bo kaholimo ba sebopeho: 

Sebopeho sa 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.conf

E ile ea e-ba betere haholo, empa ts'ebetsong ea ho reha bocha le ho aba li-configs, tse ling tsa tsona li ne li e-na le katoloso e fosahetseng 'me li ne li sa kenyelletsoa ho kenyeletsa * .conf Directive. Ka lebaka leo, baamoheli ba bang ha baa ka ba fumaneha 'me ba khutlisetsa 301 leqepheng la sehlooho. Ka lebaka la hore khoutu ea karabo e ne e se 5xx / 4xx, sena ha sea ka sa hlokomeloa hang-hang, empa hoseng feela. Ka mor'a moo, re ile ra qala ho ngola liteko ho hlahloba likarolo tsa lisebelisoa tsa motheo.

Qeto: 

  • Hlophisa li-configs tsa hau ka nepo (eseng feela nginx) 'me u nahane ka sebopeho qalong ea morero. Ka tsela ena u tla etsa hore ba utloisisehe haholoanyane sehlopheng, e leng se tla fokotsa TTM.
  • Ngola liteko bakeng sa likarolo tse ling tsa litšebeletso tsa motheo. Mohlala: ho hlahloba hore na mabitso a li-server_names kaofela a fana ka boemo bo nepahetseng + 'mele oa karabo. Ho tla lekana ho ba le mangolo a seng makae feela a tla hlahloba mesebetsi ea motheo ea karolo, e le hore u se ke ua hopola ka 3 hoseng hore na ke eng hape e lokelang ho hlahlojoa. 

Sebaka sa boraro - "Ka tšohanyetso se ile sa felloa ke sebaka Cassandra"

Lintlha li ile tsa eketseha butle-butle, 'me ntho e' ngoe le e 'ngoe e ne e le hantle ho fihlela nakong eo ho lokisoa ha libaka tse kholo ho qala ho hlōleha sehlopheng sa Cassandra, hobane compaction e ne e sa khone ho sebetsa ho bona. 

Ka letsatsi le leng la sefefo, sehlopha se ile sa batla se fetoha mokopu, e leng:

  • ho ne ho e-na le hoo e ka bang 20% ​​ea sebaka sohle se setseng sehlopheng;
  • Ho ke ke ha khoneha ho eketsa li-node ka botlalo, hobane ho hloekisa ha ho fetele ka mor'a ho eketsa node ka lebaka la ho haella ha sebaka ka likarolo;
  • tlhahiso ea theoha butle-butle ha ho kopana ho sa sebetse; 
  • Sehlopha se maemong a tshohanyetso.

Top fakapov Cyan

Tsoa - re kentse li-node tse ling tse 5 ntle le ho hloekisa, ka mor'a moo re ile ra qala ho li tlosa ka mokhoa o hlophisitsoeng ho tloha sehlopheng ebe re li kenya hape, joaloka li-node tse se nang letho tse neng li felile. Ho ile ha sebelisoa nako e ngata ho feta kamoo re neng re ka rata kateng. Ho bile le kotsi ea ho se fumanehe ka mokhoa o itseng kapa ka botlalo ha sehlopha. 

Qeto:

  • Ho li-server tsohle tsa cassandra, ha ho na sebaka se fetang 60% sebakeng se seng le se seng se lokelang ho lula. 
  • Ha lia lokela ho laeloa ka tlase ho 50% cpu.
  • Ha ua lokela ho lebala ka moralo oa bokhoni mme o hloka ho e nahana ka botlalo bakeng sa karolo ka 'ngoe, ho latela lintlha tsa eona.
  • Li-node tse ngata sehlopheng, li molemo. Li-server tse nang le palo e nyane ea data li tlatsitsoe ka potlako, 'me sehlopha se joalo se bonolo ho se tsosolosa. 

Sebaka sa bobeli - "Boitsebiso bo nyametse ho polokelo ea bohlokoa ea consul"

Bakeng sa ho sibolla litšebeletso, rona, joalo ka ba bangata, re sebelisa consul. Empa re boetse re sebelisa bohlokoa ba eona bakeng sa sebopeho se botala bo boputsoa ba monolith. E boloka tlhahisoleseling mabapi le melapo e holimo e sebetsang le e sa sebetseng, e fetolang libaka nakong ea ho romelloa. Bakeng sa morero ona, ho ile ha ngoloa tšebeletso ea ho romelloa e neng e sebelisana le KV. Ka nako e 'ngoe, data e tsoang ho KV e ile ea nyamela. E khutlisitsoe mohopolong, empa ka liphoso tse 'maloa. Ka lebaka leo, nakong ea ho kenya, mojaro o holimo o ile oa ajoa ka tsela e sa tšoaneng, 'me re ile ra fumana liphoso tse ngata tsa 502 ka lebaka la li-backend tse ngata ho CPU. Ka lebaka leo, re ile ra tloha consul KV ho ea postgres, ho tloha moo ho seng ho le bonolo ho li tlosa.  

Qeto:

  • Litšebeletso ntle le tumello leha e le efe ha lia lokela ho ba le lintlha tsa bohlokoa ts'ebetsong ea sebaka sa marang-rang. Ka mohlala, haeba u se na tumello ho ES, ho ka ba molemo ho hana ho kena boemong ba marang-rang ho tloha hohle moo ho sa hlokahaleng, siea feela tse hlokahalang, hape u behe liketso.destructive_requires_name: 'nete.
  • Itloaetse mokhoa oa hau oa ho boloka le ho hlaphoheloa esale pele. Ka mohlala, etsa script esale pele (mohlala, python) e ka khonang ho boloka le ho tsosolosa.

Sebaka sa pele - "Captain Anobvious" 

Ka nako e 'ngoe, re hlokometse kabo e sa lekanang ea mojaro ho nginx holimo maemong ao ho neng ho e-na le li-server tsa 10+ ka morao. Ka lebaka la hore "round-robin" e rometse likopo ho tloha ho 1st ho ea ho ea ho qetela ho ea holimo ka tatellano, 'me e' ngoe le e 'ngoe ea nginx e qala hape, libaka tsa pele tse holimo li ne li fumana likōpo tse ngata ho feta tse ling. Sena se ile sa bonahala haholo ha palo ea sephethephethe e ntse e eketseha. Ho nchafatsa nginx feela ho thusa ka tšohanyetso ha hoa ka ha sebetsa - re hloka ho etsa letoto la khoutu ea lua e sa kang ea tloha ho mofuta oa 1.15 (ka nako eo). Re ile ra tlameha ho penta nginx 1.14.2 ea rona, re hlahisa tšehetso e sa reroang ho eona. Sena se ile sa rarolla bothata. Phokojoe ena e hapa sehlopha sa "Captain Non-Benofiousness".

Qeto:

Ho ne ho thahasellisa haholo ebile ho thabisa ho hlahloba bothata bona). 

  • Hlophisa tlhahlobo ea hau e le hore e u thuse ho fumana liphetoho tse joalo kapele. Mohlala, o ka sebelisa ELK ho lekola li-rps ka morao ho e 'ngoe le e' ngoe e holimo, ho lekola nako ea bona ea karabelo ho tloha ponong ea nginx. Tabeng ena, sena se ile sa re thusa ho lemoha bothata. 

Ka lebaka leo, boholo ba liphoso li ka be li ile tsa qojoa ka mokhoa o hlokolosi haholoanyane oa seo u neng u se etsa. Re tlameha ho lula re hopola molao oa Murphy: Ntho efe kapa efe e ka senyehang e tla senyeha, le ho haha ​​likarolo tse thehiloeng holim'a eona. 

Source: www.habr.com

Eketsa ka tlhaloso