Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Lumelang bohle, lebitso la ka ke Alexander, ke sebetsa CIAN ke le moenjiniere 'me ke kenya letsoho tsamaisong ea tsamaiso le mekhoa ea mekhoa ea mekhoa ea boipheliso. Litlhalosong ho e 'ngoe ea lihlooho tse fetileng, re ile ra botsoa ho bolela hore na re fumana 4 TB ea lifate ka letsatsi le hore na re etsa eng ka tsona. E, re na le li-log tse ngata, 'me sehlopha se arohaneng sa mekhoa ea motheo se thehiloe ho se sebetsana, se re lumellang ho rarolla mathata kapele. Sehloohong sena ke tla bua ka hore na re e fetotse joang nakong ea selemo ho sebetsa ka phallo e ntseng e eketseha ea data.

Re qalile hokae?

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Lilemong tse 'maloa tse fetileng, mojaro oa cian.ru o eketsehile ka potlako,' me karolong ea boraro ea 2018, sephethephethe sa lisebelisoa se fihlile ho basebelisi ba ikhethang ba limilione tse 11.2 ka khoeli. Ka nako eo, ka linako tse mahlonoko re ile ra lahleheloa ke 40% ea lifate, ke ka lebaka leo re neng re sa khone ho sebetsana le liketsahalo ka potlako 'me ra qeta nako e ngata le boiteko ho li rarolla. Hape hangata re ne re sa fumane sesosa sa bothata, 'me bo ne bo tla hlaha hape ka mor'a nako e itseng. E ne e le dihele mme ho na le ntho e lokelang ho etswa ka yona.

Ka nako eo, re ne re sebelisa sehlopha sa lintlha tse 10 tse nang le ElasticSearch version 5.5.2 e nang le litlhophiso tse tloaelehileng tsa index ho boloka li-log. E ile ea hlahisoa ho feta selemo se fetileng e le tharollo e ratoang le e theko e tlaase: joale phallo ea lifate e ne e se khōlō hakaalo, ho ne ho se na thuso ea ho tla le litlhophiso tse sa tloaelehang. 

Ts'ebetso ea lits'oants'o tse kenang e fanoe ke Logstash likoung tse fapaneng ho bahokahanyi ba bahlano ba ElasticSearch. Lenane le le leng, ho sa tsotellehe boholo ba lona, ​​le ne le e-na le likotoana tse hlano. Ho ile ha hlophisoa potoloho ea hora le ea letsatsi le letsatsi, ka lebaka leo, li-shards tse ka bang 100 tse ncha li ile tsa hlaha sehlopheng hora e 'ngoe le e 'ngoe. Le hoja ho ne ho se na lifate tse ngata, sehlopha se ile sa sebetsana hantle 'me ha ho motho ea ileng a ela hloko litlhophiso tsa sona. 

Mathata a kgolo e potlakileng

Bophahamo ba likutu tse hlahisitsoeng bo ile ba hola ka potlako haholo, ha lits'ebetso tse peli li kopana. Ka lehlakoreng le leng, palo ea basebelisi ba ts'ebeletso e ile ea eketseha. Ka lehlakoreng le leng, re ile ra qala ho fetohela mohahong oa microservice, ra bona monoliths ea rona ea khale ho C # le Python. Li-microservices tse 'maloa tse ncha tse nkileng sebaka sa likarolo tsa monolith li ile tsa hlahisa marako a mangata haholo bakeng sa sehlopha sa litšebeletso tsa motheo. 

E ne e le ho eketseha ho ileng ha etsa hore re fihle moo sehlopha se neng se batla se sa laolehe. Ha lifate li qala ho fihla ka tekanyo ea melaetsa e likete tse 20 ka motsotsoana, ho potoloha ho se nang thuso khafetsa ho ile ha eketsa palo ea li-shards ho 6 tse likete, 'me ho ne ho e-na le li-shards tse fetang 600 ka node. 

Sena se ile sa lebisa mathateng ka ho aroloa ha RAM, 'me ha node e senyeha, li-shards tsohle li ile tsa qala ho tsamaea ka nako e le' ngoe, li atisa sephethephethe le ho kenya li-node tse ling, e leng se ileng sa etsa hore ho be thata ho ngola lintlha ho sehlopha. 'Me nakong ena re ne re se na lifate. 'Me haeba ho ne ho e-na le bothata ka seva, re lahlehetsoe ke 1/10 ea sehlopha. Palo e kholo ea li-index tse nyane e ekelitse ho rarahana.

Ntle le lits'oants'o, re ne re sa utloisise mabaka a ketsahalo eo mme kapele kapa hamorao re ka boela ra hata lekaleng le le leng hape, 'me ka maikutlo a sehlopha sa rona sena se ne se sa amohelehe, kaha mekhoa eohle ea rona ea mosebetsi e etselitsoe ho etsa se fapaneng - le ka mohla u se ke ua pheta. mathata a tšoanang. Ho etsa sena, re ne re hloka palo e felletseng ea lits'oants'o le phano ea tsona hoo e ka bang ka nako ea nnete, kaha sehlopha sa baenjiniere ba neng ba le mosebetsing se ne se beha leihlo litemoso eseng feela ho tsoa ho metrics, empa le ho tsoa ho li-log. E le ho utloisisa boholo ba bothata, ka nako eo palo eohle ea likutu e ne e ka ba 2 TB ka letsatsi. 

Re ile ra ipehela pakane ea ho felisa ka ho feletseng tahlehelo ea lits'oants'o le ho fokotsa nako ea ho isoa ha tsona ho sehlopha sa ELK ho fihlela metsotso e mengata ea 15 nakong ea matla a matla (hamorao re ile ra itšetleha ka setšoantšo sena e le KPI ea ka hare).

Mokhoa o mocha oa ho potoloha le li-node tse futhumetseng tse futhumetseng

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Re qalile phetoho ea sehlopha ka ho nchafatsa mofuta oa ElasticSearch ho tloha ho 5.5.2 ho isa ho 6.4.3. Sehlopha sa rona sa mofuta oa 5 hape se ile sa shoa, 'me ra etsa qeto ea ho e tima le ho e ntlafatsa ka ho feletseng - ha ho na lifate. Kahoo re ile ra etsa phetoho ena ka mor'a lihora tse 'maloa feela.

Phetoho e kholo ka ho fetisisa mothating ona e bile ts'ebetsong ea Apache Kafka libakeng tse tharo tse nang le mohokahanyi e le buffer ea mahareng. Morekisi oa melaetsa o re pholositse ho lahleheloa ke li-log nakong ea mathata ka ElasticSearch. Ka nako e ts'oanang, re kentse li-node tsa 2 ho sehlopha 'me ra fetela mohahong o chesang o chesang o nang le li-node tse tharo tse "chesang" tse fumanehang ka har'a li-racks tse fapaneng setsing sa data. Re fetiselitse lits'oants'o ho bona re sebelisa mask a sa lokelang ho lahleha tlas'a maemo afe kapa afe - nginx, hammoho le liphoso tsa ts'ebeliso. Li-log tse nyane li ile tsa romeloa ho li-node tse setseng - debug, temoso, joalo-joalo, 'me ka mor'a lihora tse 24, ho ile ha fetisoa lintlha tse "bohlokoa" tse tsoang ho "hot" li-node.

E le hore re se ke ra eketsa palo ea li-index tse nyenyane, re ile ra fetola nako ea ho potoloha ho ea ho mochine oa rollover. Ho ne ho e-na le tlhahisoleseding e ngata liforamong tseo ho potoloha ka boholo ba index ho sa tšepahaleng haholo, kahoo re ile ra etsa qeto ea ho sebelisa ho potoloha ka palo ea litokomane ho index. Re hlahlobile index e 'ngoe le e' ngoe 'me ra rekota palo ea litokomane tseo ka mor'a moo ho potoloha ho lokelang ho sebetsa. Kahoo, re fihletse boholo bo nepahetseng ba shard - eseng ho feta 50 GB. 

Ntlafatso ea lihlopha

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Leha ho le joalo, ha re e-s'o tlose mathata ka ho feletseng. Ka bomalimabe, li-index tse nyane li ne li ntse li hlaha: ha lia ka tsa fihla bophahamong bo boletsoeng, ha lia ka tsa fetoloa, 'me tsa hlakoloa ka ho hloekisoa ha li-index tsa khale ho feta matsatsi a mararo, kaha re tlositse ho potoloha ka letsatsi. Sena se ile sa lebisa tahlehelong ea data ka lebaka la hore index e tsoang sehlopheng e ile ea nyamela ka ho felletseng, mme teko ea ho ngolla index e seng teng e ile ea roba mohopolo oa mohlokomeli oo re o sebelisitseng ho laola. Li-alias tsa ho ngola li ile tsa fetoloa indexa 'me tsa roba mohopolo oa rollover, tsa baka kholo e sa laoleheng ea li-index tse ling ho fihla ho 600 GB. 

Ka mohlala, bakeng sa "rotation config":

сurator-elk-rollover.yaml

---
actions:
  1:
    action: rollover
    options:
      name: "nginx_write"
      conditions:
        max_docs: 100000000
  2:
    action: rollover
    options:
      name: "python_error_write"
      conditions:
        max_docs: 10000000

Haeba ho ne ho se na lebitso la rollover, phoso e etsahetse:

ERROR     alias "nginx_write" not found.
ERROR     Failed to complete action: rollover.  <type 'exceptions.ValueError'>: Unable to perform index rollover with alias "nginx_write".

Re tlohetse tharollo ea bothata bona bakeng sa phetisetso e latelang mme ra nka taba e 'ngoe: re fetohetse mohopolong oa ho hula oa Logstash, o sebetsanang le lits'oants'o tse kenang (ho tlosa tlhahisoleseling e sa hlokahaleng le ho ntlafatsa). Re e behile docker, eo re e hlahisang ka docker-compose, hape re behile logstash-exporter moo, e romellang metrics ho Prometheus bakeng sa ho lekola ts'ebetso ea molapo oa log. Ka tsela ena re ile ra ipha monyetla oa ho fetola hantle palo ea linyeoe tsa logstash tse ikarabellang bakeng sa ho sebetsana le mofuta o mong le o mong oa log.

Ha re ntse re ntlafatsa sehlopha, sephethephethe sa cian.ru se eketsehile ho basebelisi ba ikhethang ba limilione tse 12,8 ka khoeli. Ka lebaka leo, ho ile ha etsahala hore liphetoho tsa rona li fokotsehe ka mor'a liphetoho tsa tlhahiso, 'me re ne re tobane le taba ea hore li-node "tse futhumetseng" li ne li sitoa ho sebetsana ka katleho le mojaro' me li liehisa ho tsamaisoa ha lifate kaofela. Re ile ra fumana lintlha tse "chesang" ntle le ho hlōleha, empa re ile ra tlameha ho kenella ho fana ka ba bang kaofela le ho etsa rollover ea letsoho e le hore re ka aba li-index. 

Ka nako e ts'oanang, ho lekanya le ho fetola litlhophiso tsa maemo a logstash sehlopheng ho ne ho rarahane ke taba ea hore e ne e le "docker-compose" ea lehae, 'me liketso tsohle li ne li etsoa ka letsoho (ho eketsa liphetho tse ncha, ho ne ho hlokahala hore u tsamaee ka letsoho ho tsohle. li-server le ho etsa docker-compose up -d hohle).

Kabo botjha ya log

Ka September selemong sena, re ne re ntse re khaola monolith, mojaro oa sehlopha o ntse o eketseha, 'me ho phalla ha lifate ho ne ho atamela melaetsa e likete tse 30 ka motsotsoana. 

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Re ile ra qala phetoho e latelang ka ntlafatso ea hardware. Re tlohile ho bahokahanyi ba bahlano ho ea ho ba bararo, ra fetola li-node tsa data mme ra hlōla ho latela chelete le sebaka sa polokelo. Bakeng sa li-node re sebelisa litlhophiso tse peli: 

  • Bakeng sa li-node tse "chesang": E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (3 bakeng sa Hot1 le 3 bakeng sa Hot2).
  • Bakeng sa li-node tse "mofuthu": E3-1230 v6 / 4Tb SSD / 32 Gb x 4.

Ka nako ena, re ile ra tsamaisa index ka li-log tsa ho fihlella tsa li-microservices, tse nkang sebaka se lekanang le li-logs tsa pele tsa nginx, ho ea sehlopheng sa bobeli sa li-node tse tharo tse "chesang". Hona joale re boloka lintlha ho li-node tse "chesang" bakeng sa lihora tse 20, ebe re li fetisetsa ho "mofuthu" ho li-logs tse ling. 

Re rarolle bothata ba li-index tse nyane tse nyamelang ka ho hlophisa bocha ho potoloha ha tsona. Hona joale li-index li fetoloa lihora tse ling le tse ling tse 23 ho sa tsotellehe boemo leha e le bofe, le haeba ho na le boitsebiso bo fokolang moo. Sena se ile sa eketsa hanyenyane palo ea li-shards (ho ne ho e-na le tse ka bang 800 tsa tsona), empa ho ea ka pono ea ts'ebetso ea lihlopha e ka mamelloa. 

Ka lebaka leo, ho ne ho e-na le li-node tse "chesang" tse tšeletseng le tse 'nè feela tse "futhuhileng" sehlopheng. Sena se baka tieho e nyane ho likopo ka nako e telele, empa ho eketsa palo ea li-node nakong e tlang ho tla rarolla bothata bona.

Pheta-phetoho ena e boetse e lokisa bothata ba khaello ea semi-automatic scaling. Ho etsa sena, re ile ra kenya sehlopha sa meralo sa Nomad - se ts'oanang le seo re seng re se sebelisitse tlhahisong. Hajoale, palo ea Logstash ha e fetohe ka bo eona ho latela mojaro, empa re tla tla ho sena.

Kamoo rona ba CIAN re ileng ra theola li-terabyte tsa lifate

Merero ea bokamoso

Sekala sa tlhophiso se kentsoeng ka mokhoa o phethahetseng, 'me joale re boloka 13,3 TB ea data - lintlha tsohle tsa matsatsi a 4, tse hlokahalang bakeng sa tlhahlobo ea maemo a tšohanyetso ea litlhokomeliso. Re fetolela lintlha tse ling ho metrics, tseo re li kenyang ho Graphite. Ho nolofatsa mosebetsi oa lienjiniere, re na le metrics bakeng sa sehlopha sa litšebeletso tsa motheo le mangolo a ho lokisa mathata a tloaelehileng a semi-automatic. Ka mor'a ho eketsa palo ea li-node tsa data, tse reriloeng bakeng sa selemo se tlang, re tla fetohela ho boloka boitsebiso ho tloha matsatsing a 4 ho isa ho a 7. Sena se tla lekana bakeng sa mosebetsi oa ts'ebetso, kaha kamehla re leka ho batlisisa liketsahalo kapele kamoo ho ka khonehang, 'me bakeng sa lipatlisiso tsa nako e telele ho na le lintlha tsa telemetry. 

Ka Mphalane 2019, sephethephethe ho cian.ru se ne se se se holile ho ba basebelisi ba ikhethileng ba limilione tse 15,3 ka khoeli. Sena e ile ea e-ba teko e tebileng ea tharollo ea meralo ea ho fana ka lifate. 

Hona joale re itokisetsa ho nchafatsa ElasticSearch ho mofuta oa 7. Leha ho le joalo, molemong oa sena re tla tlameha ho nchafatsa 'mapa oa li-index tse ngata ho ElasticSearch, kaha li tlohile ho mofuta oa 5.5 mme li phatlalalitsoe e le tse tlositsoeng ho mofuta oa 6 (ha li teng ka mofuta oa 7. 7). Sena se bolela hore nakong ea ts'ebetso ea ntlafatso ho tla ba le mofuta o mong oa matla a maholo, a tla re siea re se na li-logs ha taba e ntse e rarolloa. Ea mofuta oa XNUMX, re lebelletse haholo Kibana ka sebopeho se ntlafalitsoeng le li-filters tse ncha. 

Re fihletse sepheo sa rona sa mantlha: re emisitse ho lahleheloa ke lits'oants'o mme ra fokotsa nako ea ho theoha ha sehlopha sa litšebeletso tsa motheo ho tloha ho likotsi tse 2-3 ka beke ho ea ho lihora tse 'maloa tsa mosebetsi oa ho lokisa ka khoeli. Mosebetsi ona kaofela tlhahisong o batla o sa bonahale. Leha ho le joalo, hona joale re ka tseba hantle hore na ho etsahala'ng ka tšebeletso ea rona, re ka e etsa ka potlako ka mokhoa o khutsitseng 'me re se ke ra tšoenyeha ka hore lifate li tla lahleha. Ka kakaretso, re khotsofetse, re thabile ebile re lokisetsa liketso tse ncha, tseo re tla bua ka tsona hamorao.

Source: www.habr.com

Eketsa ka tlhaloso