Top fakapov Cyan

Top fakapov Cyan

Gbogbo dara! 

Orukọ mi ni Nikita, Emi ni oludari ẹgbẹ ti ẹgbẹ imọ-ẹrọ Cian. Ọkan ninu awọn ojuse mi ni ile-iṣẹ ni lati dinku nọmba awọn iṣẹlẹ ti o jọmọ awọn amayederun ni iṣelọpọ si odo.
Ohun ti yoo jiroro ni isalẹ mu wa ni irora pupọ, ati idi ti nkan yii ni lati ṣe idiwọ fun awọn eniyan miiran lati tun awọn aṣiṣe wa ṣe tabi o kere dinku ipa wọn. 

Preamble

Ni igba pipẹ sẹhin, nigbati Cian jẹ monoliths, ati pe ko si awọn amọ ti awọn iṣẹ microservices sibẹsibẹ, a ṣe iwọn wiwa ti orisun kan nipasẹ ṣiṣe ayẹwo awọn oju-iwe 3-5. 

Wọn dahun - ohun gbogbo dara, ti wọn ko ba dahun fun igba pipẹ - gbigbọn. Bi o ti pẹ to ti wọn ni lati kuro ni iṣẹ fun ki a kà si iṣẹlẹ kan ni awọn eniyan pinnu ni awọn ipade. Ẹgbẹ kan ti awọn onimọ-ẹrọ nigbagbogbo ni ipa ninu iwadii iṣẹlẹ naa. Nigbati iwadi naa ti pari, wọn kọ postmortem kan - iru ijabọ nipasẹ imeeli ni ọna kika: kini o ṣẹlẹ, bi o ṣe pẹ to, kini a ṣe ni akoko, kini a yoo ṣe ni ọjọ iwaju. 

Awọn oju-iwe akọkọ ti aaye naa tabi bii a ṣe loye pe a ti lu isalẹ

 
Lati le ni oye ni pataki ti aṣiṣe naa, a ti ṣe idanimọ awọn oju-iwe aaye pataki julọ fun iṣẹ ṣiṣe iṣowo. Lilo wọn, a ka iye awọn ibeere aṣeyọri/aṣeyọri ati awọn akoko ipari. Eyi ni bi a ṣe n ṣe iwọn akoko. 

Jẹ ki a sọ pe a rii pe nọmba kan ti awọn apakan pataki-pataki ti aaye naa wa ti o ni iduro fun iṣẹ akọkọ - wiwa ati fifiranṣẹ awọn ipolowo. Ti nọmba awọn ibeere ti o kuna ba kọja 1%, eyi jẹ iṣẹlẹ to ṣe pataki. Ti laarin awọn iṣẹju 15 lakoko akoko akọkọ, oṣuwọn aṣiṣe kọja 0,1%, lẹhinna eyi tun jẹ iṣẹlẹ to ṣe pataki. Awọn ibeere wọnyi bo pupọ julọ awọn iṣẹlẹ; iyoku ti kọja ipari ti nkan yii.

Top fakapov Cyan

Top ti o dara ju iṣẹlẹ Cyan

Nitorinaa, dajudaju a ti kọ ẹkọ lati pinnu otitọ pe iṣẹlẹ kan ṣẹlẹ. 

Bayi gbogbo iṣẹlẹ ni a ṣe apejuwe ni alaye ati afihan ninu apọju Jira. Nipa ọna: fun eyi a bẹrẹ iṣẹ akanṣe kan, ti a pe ni FAIL - awọn epics nikan ni a le ṣẹda ninu rẹ. 

Ti o ba gba gbogbo awọn ikuna ni awọn ọdun diẹ sẹhin, awọn oludari ni: 

  • mssql jẹmọ awọn iṣẹlẹ;
  • awọn iṣẹlẹ ti o ṣẹlẹ nipasẹ awọn okunfa ita;
  • admin aṣiṣe.

Jẹ ki a wo ni awọn alaye diẹ sii ni awọn aṣiṣe ti awọn oludari, ati diẹ ninu awọn ikuna ti o nifẹ miiran.

Ibi karun - "Nfi awọn nkan si ibere ni DNS"

O je kan iji Tuesday. A pinnu lati mu pada ibere ni DNS iṣupọ. 

Mo fẹ lati gbe awọn olupin DNS inu lati dè si powerdns, pinpin awọn olupin ti o yatọ patapata fun eyi, nibiti ko si nkankan ayafi DNS. 

A gbe olupin DNS kan si ipo kọọkan ti DCs wa, ati pe akoko wa lati gbe awọn agbegbe lati dipọ si awọn agbara agbara ati yi awọn amayederun pada si awọn olupin tuntun. 

Ni agbedemeji gbigbe, ti gbogbo awọn olupin ti o ni pato ni awọn asopọ caching agbegbe lori gbogbo awọn olupin, ọkan nikan ni o ku, ti o wa ni ile-iṣẹ data ni St. DC yii ni akọkọ kede bi kii ṣe pataki fun wa, ṣugbọn lojiji di aaye ikuna kan.
O jẹ lakoko akoko iṣipopada yii ni odo odo ti o wa laarin Moscow ati St. A ti fi wa silẹ laisi DNS fun iṣẹju marun ati pe a ṣe afẹyinti nigbati olutọju naa ṣe atunṣe iṣoro naa. 

Awọn ipinnu:

Ti o ba jẹ pe tẹlẹ a gbagbe awọn ifosiwewe ita lakoko igbaradi fun iṣẹ, ni bayi wọn tun wa ninu atokọ ti ohun ti a ngbaradi fun. Ati ni bayi a tiraka lati rii daju pe gbogbo awọn paati ti wa ni ipamọ n-2, ati lakoko iṣẹ a le dinku ipele yii si n-1.

  • Nigbati o ba n ṣe eto iṣe kan, samisi awọn aaye nibiti iṣẹ naa le kuna, ki o ronu nipasẹ oju iṣẹlẹ nibiti ohun gbogbo ti lọ “lati buburu si buru” ni ilosiwaju.
  • Pinpin awọn olupin DNS inu kọja oriṣiriṣi awọn agbegbe agbegbe/awọn ile-iṣẹ data/awọn agbeko/awọn iyipada/awọn igbewọle.
  • Lori olupin kọọkan, fi sori ẹrọ olupin DNS caching agbegbe, eyiti o ṣe atunṣe awọn ibeere si awọn olupin DNS akọkọ, ati pe ti ko ba si, yoo dahun lati kaṣe naa. 

Ibi kẹrin - “Ṣiṣeto awọn nkan ni Nginx”

Ni ọjọ kan ti o dara, ẹgbẹ wa pinnu pe “a ti ni eyi to,” ati pe ilana ti awọn atunto nginx tun bẹrẹ. Ibi-afẹde akọkọ ni lati mu awọn atunto wa si eto ogbon inu. Ni iṣaaju, ohun gbogbo ti “fi idi itan-akọọlẹ” ati pe ko gbe ọgbọn eyikeyi. Bayi orukọ olupin kọọkan ti gbe lọ si faili ti orukọ kanna ati pe gbogbo awọn atunto ti pin si awọn folda. Nipa ọna, atunto naa ni awọn laini 253949 tabi awọn ohun kikọ 7836520 ati gba to awọn megabyte 7. Ipele oke ti igbekalẹ: 

Ilana 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

O dara pupọ, ṣugbọn ninu ilana ti lorukọmii ati pinpin awọn atunto, diẹ ninu wọn ni itẹsiwaju ti ko tọ ati pe wọn ko wa ninu pẹlu * .conf itọsọna. Bi abajade, diẹ ninu awọn agbalejo di ko si ati da 301 pada si oju-iwe akọkọ. Nitori otitọ pe koodu idahun kii ṣe 5xx / 4xx, eyi ko ṣe akiyesi lẹsẹkẹsẹ, ṣugbọn ni owurọ nikan. Lẹhin iyẹn, a bẹrẹ kikọ awọn idanwo lati ṣayẹwo awọn paati amayederun.

Awọn ipinnu: 

  • Ṣeto awọn atunto rẹ ni deede (kii ṣe nginx nikan) ki o ronu nipasẹ eto ni ipele ibẹrẹ ti iṣẹ akanṣe naa. Ni ọna yii iwọ yoo jẹ ki wọn ni oye diẹ sii si ẹgbẹ, eyiti yoo dinku TTM.
  • Kọ awọn idanwo fun diẹ ninu awọn paati amayederun. Fun apẹẹrẹ: ṣayẹwo pe gbogbo awọn orukọ olupin_orukọ fun ipo ti o pe + ara idahun. Yoo to lati ni awọn iwe afọwọkọ diẹ ni ọwọ ti o ṣayẹwo awọn iṣẹ ipilẹ ti paati naa, nitorinaa ki o ma ṣe ranti frantically ni 3 owurọ kini ohun miiran nilo lati ṣayẹwo. 

Ibi kẹta - "Lojiji ti pari aaye ni Cassandra"

Awọn data dagba ni imurasilẹ, ati pe ohun gbogbo dara titi di akoko ti atunṣe ti awọn aaye nla nla bẹrẹ si kuna ninu iṣupọ Cassandra, nitori irẹpọ ko le ṣiṣẹ lori wọn. 

Ni ọjọ kan ti iji lile, iṣupọ fẹrẹ yipada si elegede, eyun:

  • nipa 20% ti aaye lapapọ ti o ku ninu iṣupọ;
  • Ko ṣee ṣe lati ṣafikun awọn apa ni kikun, nitori mimọ ko lọ lẹhin fifi aaye kun nitori aini aaye lori awọn ipin;
  • Isejade ti n ṣubu ni diėdiė nitori ikopa ko ṣiṣẹ; 
  • Iṣupọ wa ni ipo pajawiri.

Top fakapov Cyan

Jade - a ṣafikun awọn apa 5 diẹ sii laisi isọdi, lẹhin eyi a bẹrẹ lati yọ wọn kuro ni ọna ṣiṣe lati inu iṣupọ ki o tun tẹ wọn sii, bii awọn apa ofo ti o ti pari aaye. Pupọ akoko diẹ sii ju ti a fẹ lọ. Ewu wa ti apa kan tabi aini pipe ti iṣupọ naa. 

Awọn ipinnu:

  • Lori gbogbo awọn olupin cassandra, ko ju 60% ti aaye lori ipin kọọkan yẹ ki o gba. 
  • Wọn yẹ ki o kojọpọ ni ko ju 50% Sipiyu lọ.
  • O yẹ ki o ko gbagbe nipa igbero agbara ati pe o nilo lati ronu nipasẹ paati kọọkan, da lori awọn pato rẹ.
  • Awọn apa diẹ sii ninu iṣupọ, dara julọ. Awọn olupin ti o ni iye kekere ti data ni a kojọpọ ni iyara, ati iru iṣupọ kan rọrun lati sọji. 

Ibi keji - “Data parẹ lati ibi ipamọ iye-bọtini ti consul”

Fun wiwa iṣẹ, awa, bii ọpọlọpọ, lo consul. Ṣugbọn a tun lo iye-bọtini rẹ fun ifilelẹ alawọ-bulu ti monolith. O tọju alaye nipa awọn ṣiṣan ti n ṣiṣẹ ati aiṣiṣẹ, eyiti o yipada awọn aaye lakoko imuṣiṣẹ. Fun idi eyi, iṣẹ imuṣiṣẹ kan ni a kọ ti o ṣe ajọṣepọ pẹlu KV. Ni aaye kan, data lati KV ti sọnu. Mu pada lati iranti, ṣugbọn pẹlu nọmba kan ti awọn aṣiṣe. Bi abajade, lakoko ikojọpọ, fifuye lori awọn ṣiṣan oke ni a pin kaakiri, ati pe a gba ọpọlọpọ awọn aṣiṣe 502 nitori awọn ẹhin ẹhin ti o pọ ju lori Sipiyu. Bi abajade, a gbe lati consul KV si postgres, lati ibi ti ko rọrun pupọ lati yọ wọn kuro.  

Awọn ipinnu:

  • Awọn iṣẹ laisi aṣẹ eyikeyi ko yẹ ki o ni data pataki si iṣẹ ti aaye naa. Fun apẹẹrẹ, ti o ko ba ni aṣẹ ni ES, yoo dara lati kọ wiwọle si ni ipele nẹtiwọki lati ibi gbogbo nibiti ko nilo, fi awọn ti o yẹ nikan silẹ, ati tun ṣeto action.destructive_requires_name: otitọ.
  • Ṣe adaṣe afẹyinti rẹ ati ẹrọ imularada ni ilosiwaju. Fun apẹẹrẹ, ṣe iwe afọwọkọ ni ilosiwaju (fun apẹẹrẹ, ni Python) ti o le ṣe afẹyinti ati mimu-pada sipo.

Ibi akọkọ - “Captain Unvive” 

Ni aaye kan, a ṣe akiyesi pinpin ailopin ti fifuye lori awọn ṣiṣan nginx ni awọn ọran nibiti awọn olupin 10+ wa ni ẹhin. Nitori otitọ pe iyipo-robin firanṣẹ awọn ibeere lati 1st si oke ti o kẹhin ni ibere, ati atungbejade nginx kọọkan bẹrẹ, awọn ṣiṣan akọkọ nigbagbogbo gba awọn ibeere diẹ sii ju awọn iyokù lọ. Bi abajade, wọn ṣiṣẹ losokepupo ati gbogbo aaye naa jiya. Eyi di akiyesi siwaju sii bi iye ijabọ ti pọ si. Nìkan ṣe imudojuiwọn nginx lati mu ki ID ko ṣiṣẹ - a nilo lati tunṣe opo kan ti koodu lua ti ko mu kuro lori ẹya 1.15 (ni akoko yẹn). A ni lati patch nginx 1.14.2 wa, ti n ṣafihan atilẹyin laileto sinu rẹ. Eyi yanju iṣoro naa. Kokoro yii bori ẹka “Captain Non-Oviousness”.

Awọn ipinnu:

O jẹ igbadun pupọ ati igbadun lati ṣawari kokoro yii). 

  • Ṣeto ibojuwo rẹ ki o ṣe iranlọwọ fun ọ lati wa iru awọn iyipada ni iyara. Fun apẹẹrẹ, o le lo ELK lati ṣe atẹle rps lori ẹhin kọọkan ti oke oke, ṣe atẹle akoko esi wọn lati oju wiwo ti nginx. Ni ọran yii, eyi ṣe iranlọwọ fun wa lati ṣe idanimọ iṣoro naa. 

Bi abajade, pupọ julọ awọn ikuna ni a le yago fun pẹlu ọna ti o ni itara diẹ sii si ohun ti o n ṣe. A gbọdọ ranti nigbagbogbo ofin Murphy: Ohunkohun ti o le ṣe aṣiṣe yoo jẹ aṣiṣe, ki o si kọ irinše da lori o. 

orisun: www.habr.com

Fi ọrọìwòye kun