Otu anyị na CIAN mechiri terabytes nke osisi

Otu anyị na CIAN mechiri terabytes nke osisi

Ndewo onye ọ bụla, aha m bụ Alexander, m na-arụ ọrụ na CIAN dị ka onye injinia ma na-etinye aka na nchịkwa usoro na akpaaka nke usoro akụrụngwa. N'okwu ndị e nyere otu n'ime akụkọ ndị gara aga, a gwara anyị ka anyị gwa ebe anyị na-enweta 4 TB nke osisi kwa ụbọchị na ihe anyị na-eme ha. Ee, anyị nwere ọtụtụ ndekọ, na e mepụtala ụyọkọ akụrụngwa dị iche iche iji hazie ha, nke na-enye anyị ohere idozi nsogbu ngwa ngwa. N'isiokwu a, m ga-ekwu maka otu anyị si gbanwee ya n'ime otu afọ iji rụọ ọrụ na data na-eto eto mgbe niile.

Ebee ka anyị siri malite?

Otu anyị na CIAN mechiri terabytes nke osisi

N'ime afọ ole na ole gara aga, ibu dị na cian.ru etoola ngwa ngwa, na site na nkeji nke atọ nke 2018, okporo ụzọ akụ ruru nde 11.2 ndị ọrụ pụrụ iche kwa ọnwa. N'oge ahụ, n'oge dị oke egwu, anyị tụfuru ihe ruru 40% nke ndekọ, nke mere na anyị enweghị ike ịme ngwa ngwa maka ihe omume ma jiri oge na mgbalị dị ukwuu dozie ha. Anyị anaghịkwa achọpụtakarị ihe kpatara nsogbu ahụ, ọ ga-apụtakwa mgbe obere oge gachara. Ọ bụ hell na ihe a ga-eme maka ya.

N'oge ahụ, anyị ji ụyọkọ nke ọnụ data 10 nwere ụdị ElasticSearch 5.5.2 nwere ntọala ndeksi ọkọlọtọ iji chekwaa ndekọ. E webatara ya ihe karịrị otu afọ gara aga dị ka ihe ngwọta na-ewu ewu na nke dị ọnụ ala: mgbe ahụ, nrịba nke osisi adịghị oke, ọ dịghị uru na-abịa na nhazi ndị na-abụghị ọkọlọtọ. 

Logstash nyere nhazi ndekọ na-abata na ọdụ ụgbọ mmiri dị iche iche na ndị nhazi ElasticSearch ise. Otu ndeksi, n'agbanyeghị nha ya, nwere shards ise. A haziri ntụgharị otu elekere na kwa ụbọchị, n'ihi ya, ihe dị ka 100 shards ọhụrụ pụtara na ụyọkọ ahụ kwa elekere. Ọ bụ ezie na enweghị ọtụtụ ndekọ, ụyọkọ ahụ nagidere nke ọma na ọ nweghị onye ṅara ntị na ntọala ya. 

Ihe ịma aka nke uto ngwa ngwa

Olu osisi ndị a na-emepụta na-eto ngwa ngwa, dịka usoro abụọ na-ejikọta ibe ha. N'otu aka ahụ, ọnụ ọgụgụ ndị na-eji ọrụ ahụ toro. N'aka nke ọzọ, anyị malitere ịrụsi ọrụ ike gaa na ụlọ ọrụ microservice, na-ahụta ihe ochie anyị na C # na Python. Ọtụtụ microservice ọhụrụ iri na abuo ndị nọchiri akụkụ nke monolith mepụtara ọtụtụ ndekọ aha maka ụyọkọ akụrụngwa. 

Ọ bụ ịchafụ mere ka anyị ruo n'ókè ebe ụyọkọ ahụ ghọrọ ihe a na-apụghị ịchịkwa. Mgbe ndekọ ahụ malitere ịbịarute na ọnụego nke 20 puku ozi kwa nkeji, ntụgharị na-abaghị uru na-aga n'ihu na-abawanye ọnụ ọgụgụ nke shards ruo 6 puku, na e nwere ihe karịrị 600 shards kwa ọnụ. 

Nke a butere nsogbu na oke nke RAM, na mgbe ọnụ ọnụ dakwasịrị, ihe nkedo niile malitere ịkwagharị n'otu oge, na-amụba okporo ụzọ na ịkwanye ọnụ ụzọ ndị ọzọ, nke mere ka ọ fọrọ nke nta ka ọ bụrụ enweghị ike ide data na ụyọkọ ahụ. Na n'ime oge a anyị hapụrụ enweghị osisi. Ma ọ bụrụ na enwere nsogbu na sava ahụ, anyị tụfuru 1/10 nke ụyọkọ ahụ. Ọnụ ọgụgụ dị ukwuu nke obere index agbakwunyere mgbagwoju anya.

Na-enweghị ndekọ, anyị aghọtaghị ihe kpatara ihe ahụ merenụ na ike mee elu mee ma ọ bụ mgbe e mesịrị na-azọ ụkwụ na otu zaa ọzọ, na na echiche nke otu anyị bụ ihe na-adịghị anakwere, ebe ọ bụ na anyị niile na-arụ ọrụ usoro na-eme dị nnọọ na-abụghị - mgbe ikwugharị. nsogbu ndị ahụ. Iji mee nke a, anyị chọrọ oke ndekọ ndekọ na nnyefe ha fọrọ nke nta ka ọ bụrụ ozugbo, ebe otu ndị injinia na-arụ ọrụ na-enyocha ọkwa ọ bụghị naanị site na metrics, kamakwa site na ndekọ. Iji ghọta oke nsogbu ahụ, n'oge ahụ ngụkọta ọnụ ọgụgụ osisi dị ihe dị ka TB 2 kwa ụbọchị. 

Anyị setịpụrụ ihe mgbaru ọsọ iji kpochapụ ọnwụ nke ndekọ kpamkpam ma belata oge nnyefe ha na ụyọkọ ELK ruo nkeji iri na ise n'oge ike majeure (anyị mechara dabere na ọnụ ọgụgụ a dị ka KPI dị n'ime).

Usoro ntụgharị ọhụrụ na ọnụ na-ekpo ọkụ

Otu anyị na CIAN mechiri terabytes nke osisi

Anyị malitere ntụgharị ụyọkọ site na imelite ụdị ElasticSearch site na 5.5.2 ruo 6.4.3. Otu ụyọkọ ụdị 5 anyị nwụrụ ọzọ, anyị kpebiri ịgbanyụ ya ma melite ya kpamkpam - enweghị ndekọ ọ bụla. Ya mere, anyị mere mgbanwe a n'ime nanị awa ole na ole.

Mgbanwe kachasị ukwuu n'oge a bụ mmejuputa Apache Kafka na ọnụ atọ nwere onye nhazi dịka ihe nchekwa etiti. Onye na-ere ahịa ozi zọpụtara anyị n'ịtufu ndekọ n'oge nsogbu na ElasticSearch. N'otu oge ahụ, anyị gbakwunyere ọnụ ụzọ 2 na ụyọkọ ahụ wee gbanwee na-ekpo ọkụ na-ekpo ọkụ na-ekpo ọkụ na-ekpo ọkụ na atọ "ọkụ" dị na racks dị iche iche na data data. Anyị na-eji ihe nkpuchi na-ekwesịghị ịla n'iyi n'ọnọdụ ọ bụla - nginx, yana ndekọ njehie ngwa na-emegharị ha. E zigara obere ndekọ na oghere ndị fọdụrụ - debug, ịdọ aka ná ntị, wdg, na mgbe awa 24 gachara, a na-ebufe ndekọ "dị mkpa" site na ọnụ "ọkụ".

Ka ọ ghara ịbawanye ọnụ ọgụgụ nke obere index, anyị gbanwere site na ntụgharị oge na usoro ntụgharị. Enwere otutu ozi na forums na ntụgharị site na nha index bụ nke a na-apụghị ịdabere na ya, ya mere anyị kpebiri iji ntụgharị site na ọnụ ọgụgụ akwụkwọ dị na ndeksi. Anyị nyochara index ọ bụla wee dekọọ ọnụ ọgụgụ akwụkwọ mgbe ntụgharị kwesịrị ịrụ ọrụ. Yabụ, anyị erutela nha shard kacha mma - ọ bụghị ihe karịrị 50 GB. 

Nchịkọta ụyọkọ

Otu anyị na CIAN mechiri terabytes nke osisi

Otú ọ dị, anyị ewepụchabeghị nsogbu ndị ahụ kpam kpam. N'ụzọ dị mwute, obere indexes ka pụtara: ha eruteghị kpọmkwem olu, na-adịghị atụgharị, na-ehichapụ site zuru ụwa ọnụ ihicha nke indexes tọrọ karịa ụbọchị atọ, ebe ọ bụ na anyị wepụrụ adiana site ụbọchị. Nke a mere ka mfu data n'ihi eziokwu ahụ bụ na index sitere na ụyọkọ ahụ kwụsịrị kpamkpam, na mgbalị iji dee ihe ndekọ na-adịghị adị mebiri echiche nke curator nke anyị ji mee ihe maka njikwa. Agbanwere utu aha maka ide ka ọ bụrụ ndeksi wee mebie echiche nke rollover, na-ebute uto na-achịkwaghị achịkwa nke ụfọdụ index ruo 600 GB. 

Dịka ọmụmaatụ, maka nhazigharị ntụgharị:

с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

Ọ bụrụ na enweghị utu aha rollover, mperi mere:

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

Anyị hapụrụ ihe ngwọta maka nsogbu a maka usoro ọzọ wee malite okwu ọzọ: anyị gbanwere na mgbagha nke Logstash, nke na-ahazi ndekọ na-abata (wepụ ozi na-enweghị isi na ịba ụba). Anyị debere ya na docker, nke anyị na-amalite site na docker-compose, ma anyị tinyekwara logstash-exporter ebe ahụ, nke na-eziga metrics na Prometheus maka nlekota oru nke log iyi. N'ụzọ dị otú a, anyị nyere onwe anyị ohere iji were were gbanwee ọnụ ọgụgụ nke logstash maka ịhazi ụdị log ọ bụla.

Ka anyị na-emeziwanye ụyọkọ ahụ, okporo ụzọ cian.ru mụbara ruo nde 12,8 ndị ọrụ pụrụ iche kwa ọnwa. N'ihi ya, ọ tụgharịrị na mgbanwe anyị dị ntakịrị n'azụ mgbanwe na mmepụta ihe, anyị na-echekwa eziokwu ahụ bụ na ọnụ ọgụgụ "ọkụ" enweghị ike ịnagide ibu ahụ ma mee ka nnyefe nke osisi ahụ kwụsịlata. Anyị nwetara data "na-ekpo ọkụ" na-enweghị ọdịda, ma anyị aghaghị itinye aka na nnyefe nke ndị ọzọ ma mee mpịakọta akwụkwọ ntuziaka iji kesaa n'ụzọ ziri ezi. 

N'otu oge ahụ, scaling na ịgbanwe ntọala nke logstash ihe atụ na ụyọkọ ahụ gbagwojuru anya site n'eziokwu na ọ bụ mpaghara docker-ede, na ihe niile e mere na-eji aka mee (ịgbakwunye ọhụrụ nsọtụ, ọ dị mkpa iji aka na-aga niile. ihe nkesa na docker-na-edepụta -d ebe niile).

Tinyegharịa nkesa

Na Septemba nke afọ a, anyị ka nọ na-egbutu monolith, ibu dị na ụyọkọ ahụ na-abawanye, na ntinye nke osisi na-eru nso 30 puku ozi kwa nkeji. 

Otu anyị na CIAN mechiri terabytes nke osisi

Anyị ji nkwalite ngwaike malite usoro ọzọ. Anyị gbanwere site na ndị nhazi ise gaa na atọ, dochie ọnụ ọnụ data ma merie n'ihe gbasara ego na ebe nchekwa. Maka nodes anyị na-eji nhazi abụọ: 

  • Maka ọnụ "ọkụ": E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (3 maka Hot1 na 3 maka Hot2).
  • Maka ọnụ "ọkụ": E3-1230 v6 / 4Tb SSD / 32 Gb x 4.

Na ntugharị a, anyị bufere ndeksi nwere ndekọ ohere nke microservices, nke na-ewe otu oghere dị ka nginx log nginx, gaa na nke abụọ nke ọnụ atọ "ọkụ". Ugbu a, anyị na-echekwa data na ọnụ "ọkụ" maka awa 20, wee nyefee ha na ọnụ "ọkụ" na ndekọ ndị ọzọ. 

Anyị doziri nsogbu nke obere indexes na-apụ n'anya site n'ịhazigharị ntụgharị ha. Ugbu a, a na-atụgharị indexes kwa awa 23 n'ọnọdụ ọ bụla, ọbụlagodi na enwere ntakịrị data n'ebe ahụ. Nke a dị ntakịrị mụbara ọnụ ọgụgụ nke shards (enwere ihe dị ka 800 n'ime ha), ma site n'echiche nke arụmọrụ ụyọkọ ọ na-anabata ya. 

N'ihi ya, e nwere "ọkụ" isii na naanị ọnụ anọ "ọkụ" dị na ụyọkọ ahụ. Nke a na-ebute ntakịrị igbu oge na arịrịọ n'ime ogologo oge, mana ịba ụba ọnụ ọgụgụ n'ọdịnihu ga-edozi nsogbu a.

Ntugharị a doziri nsogbu nke enweghị nchacha nke ọkara akpaaka. Iji mee nke a, anyị wepụrụ ụyọkọ akụrụngwa Nomad - nke yiri nke anyị ebuferela na nrụpụta. Maka ugbu a, ọnụọgụ Logstash anaghị agbanwe agbanwe na-adabere na ibu ahụ, mana anyị ga-abịa na nke a.

Otu anyị na CIAN mechiri terabytes nke osisi

Atụmatụ maka ọdịnihu

The emejuputa atumatu nhazi akpịrịkpa n'ụzọ zuru okè, na ugbu a, anyị na-echekwa 13,3 TB nke data - niile ndekọ maka 4 ụbọchị, nke dị mkpa maka mberede analysis nke alerts. Anyị na-atụgharị ụfọdụ ndekọ ka ọ bụrụ metrik, nke anyị na-agbakwunye na Graphite. Iji mee ka ọrụ ndị injinia dị mfe, anyị nwere metrics maka ụyọkọ akụrụngwa na edemede maka nrụzi ọkara akpaka nke nsogbu nkịtị. Mgbe ịba ụba nke ọnụ ọgụgụ data, nke a na-eme atụmatụ maka afọ na-esote, anyị ga-agbanwe na nchekwa data site na 4 ruo 7 ụbọchị. Nke a ga-ezuru maka ọrụ arụ ọrụ, ebe ọ bụ na anyị na-agbalị mgbe niile ịchọpụta ihe mere ozugbo enwere ike, yana maka nyocha ogologo oge enwere data telemetry. 

N'Ọktoba 2019, okporo ụzọ na cian.ru etoolarị ndị ọrụ pụrụ iche nde 15,3 kwa ọnwa. Nke a ghọrọ ule siri ike nke usoro ihe owuwu maka ibupụta ndekọ. 

Ugbu a, anyị na-akwado imelite ElasticSearch na ụdị 7. Otú ọ dị, maka nke a, anyị ga-emelite maapụ nke ọtụtụ index na ElasticSearch, ebe ọ bụ na ha si na 5.5 mbipute ma kwupụta ya dị ka e mebiri na ụdị 6 (ha adịghị adị na nsụgharị). 7). Nke a pụtara na n'oge usoro mmelite a ga-enwerịrị ụdị ike majeure, nke ga-ahapụ anyị na-enweghị ndekọ mgbe a na-edozi nsogbu ahụ. Nke ụdị 7, anyị na-atụ anya Kibana nwere interface dị mma yana nzacha ọhụrụ. 

Anyị nwetara isi ihe mgbaru ọsọ anyị: anyị kwụsịrị ịla n'iyi ma belata oge nkwụsị nke ụyọkọ akụrụngwa site na mkpọka 2-3 kwa izu ruo awa ole na ole nke ọrụ nlekọta kwa ọnwa. Ọrụ a niile na mmepụta ihe fọrọ nke nta ka ọ ghara ịhụ ya anya. Otú ọ dị, ugbu a, anyị nwere ike ikpebi kpọmkwem ihe na-eme na ọrụ anyị, anyị nwere ike ngwa ngwa ime ya na a jụụ mode na-echegbu onwe na na ndekọ ga-efunahụ. N'ozuzu, anyị nwere afọ ojuju, na-enwe obi ụtọ ma na-akwadebe maka ọhụụ ọhụrụ, nke anyị ga-ekwu maka ya ma emechaa.

isi: www.habr.com

Tinye a comment