Isu takapona sei kuwedzera kwakanyanya kwex10 mutoro kure uye ndedzipi mhedziso dzatakatora

Mhoro, Habr! Isu tanga tichirarama mumamiriro ezvinhu anonakidza kwemwedzi mishoma yapfuura uye ndinoda kugovera nyaya yedu yekusimudzira zvivakwa. Munguva ino, SberMarket yakakura mumirairo 4 nguva uye yakatanga sevhisi mumaguta 17 matsva. Kukura kuri kuwedzera kwekuda kwekutakura grocery kwaida kuti tikwire zvivakwa zvedu. Verenga pamusoro pezvinonyanya kufadza uye zvinobatsira mhedziso pasi pekucheka.

Isu takapona sei kuwedzera kwakanyanya kwex10 mutoro kure uye ndedzipi mhedziso dzatakatora

Zita rangu ndiDima Bobylev, ini ndiri technical director weSberMarket. Sezvo iyi ndiyo yekutanga positi pa blog yedu, ndichataura mazwi mashoma pamusoro pangu nekambani. Kudonha kwekupedzisira ndakatora chikamu mumakwikwi evatungamiriri vechidiki veRunet. Kumakwikwi I akanyora nyaya pfupi nezvekuti isu paSberMarket tinoona sei tsika yemukati uye nzira yekusimudzira basa. Uye kunyangwe ndisina kukwanisa kuhwina mukwikwidzi, ndakazvigadzirira misimboti yekuvandudza kweIT ecosystem.

Paunenge uchitonga timu, zvakakosha kuti unzwisise uye uwane chiyero pakati pezvinoda bhizinesi uye zvinodiwa zveumwe neumwe mugadziri. Iye zvino SberMarket iri kukura ka13 pagore pagore, uye izvi zvinokanganisa chigadzirwa, zvinoda kuti igare ichiwedzera huwandu uye kukurumidza kwekusimudzira. Zvisinei neizvi, isu tinopa nguva yakakwana kune vanogadzira yekutanga ongororo uye yemhando yekodhi. Iyo yakaumbwa nzira inobatsira kwete chete mukugadzira chigadzirwa chinoshanda, asiwo mukuwedzera kwayo kuwedzera uye kusimudzira. Nekuda kwekukura uku, SberMarket yatove mutungamiriri pakati pemasevhisi ekutumira magirosari: tinoendesa anenge zviuru gumi nezvisere zveodha pazuva zuva rega rega, kunyangwe pakutanga kwaFebruary kwaive ne18.

Isu takapona sei kuwedzera kwakanyanya kwex10 mutoro kure uye ndedzipi mhedziso dzatakatora
Rimwe zuva, mutengi akakumbira mufambisi weSberMarket kuti amuunzire magirosari asingabatike - pamhanza chaipo.

Asi ngatifambire mberi kune zvakanangana. Mumwedzi mishoma yapfuura, tanga tichishingairira kuwedzera zvivakwa zvekambani yedu. Ichi chinodiwa chakatsanangurwa nekunze uye mukati mezvinhu. Pamwe chete nekuwedzera kwenzvimbo yevatengi, nhamba yezvitoro zvakabatana yakakura kubva pa90 pakutanga kwegore kusvika kune anopfuura 200 pakati paMay. Isu, hongu, takanga takagadzirira, takachengeta hukuru hwezvivakwa, uye isu takaverenga pamusoro pekugona kwekukwira kwakatwasuka uye kwakachinjika kuyera kwemashini ese chaiwo akabatwa muYandex gore. Zvisinei, muitiro wakaratidza kuti: β€œChinhu chiri chose chinogona kushata, chichakanganisika.” Uye nhasi ndinoda kugovera anonyanya kufadza mamiriro akaitika mumavhiki ano. Ndinovimba kuti chiitiko chedu chichabatsira kwauri.

Muranda akagadzirira zvakakwana kurwa

Kunyangwe denda risati ratanga, takanga takatarisana nekuwedzera kwenhamba yezvikumbiro kumaseva edu ekumashure. Maitiro ekuodha magirosari ekuendesa kumba akatanga kuwedzera, uye nekuunzwa kwematanho ekutanga ekuzviparadzanisa nevamwe nekuda kweCOVID-19, basa rakakura zvakanyanya zuva rese. Paive nechido chekukurumidzira kuburitsa maseva makuru edhatabhesi huru uye kuendesa zvimwe zvekuverenga zvikumbiro kune replica maseva (muranda).

Isu takagadzirira danho iri pachine nguva, uye 2 maseva evaranda akange atotangwa kune maneuver akadaro. Iwo ainyanya kushandiswa kuita batch mabasa ekugadzira ruzivo ruzivo rwekuchinjana data nevadyidzani. Aya maitiro akagadzira mumwe mutoro uye aive akanyatso kutorwa kubva muequation mwedzi mishoma yapfuura. 

Sezvo kudzokorora kwakaitika paMuranda, isu takanamatira kune iyo pfungwa yekuti maapplication anogona kungoshanda navo mukuverenga chete modhi. The Disaster Recovery Plan yaifungidzira kuti kana pakaitika njodzi, tinogona kungoisa Muranda panzvimbo yaTenzi uye kuchinja zvose kunyora uye kuverenga zvikumbiro kuMuranda. Nekudaro, isu taidawo kushandisa replicas kune zvinodiwa nedhipatimendi reanalytics, saka maseva haana kuchinjika zvachose kuti averenge chimiro chete, asi mugadziri wega wega aive neseti yevashandisi, uye vamwe vaive nekodzero dzekunyora kuchengetedza mhedzisiro yekuverenga yepakati.

Kusvika kune imwe nhanho yekuremerwa, isu takanga tine tenzi akakwana kune zvese kunyora nekuverenga pakugadzirisa http zvikumbiro. Pakati paKurume, Sbermarket payakazofunga kushandura zvachose kuenda kubasa kure, RPS yedu yakatanga kukura zvakanyanya. Vatengi vedu vazhinji vakapinda mukuzviparadzanisa nevamwe kana kushanda kubva kumba, izvo zvakakanganisa zviratidzo zvedu zvebasa.

Kuita kwaβ€œtenzi” kwakanga kusingachakwani, saka takatanga kuendesa zvimwe zvikumbiro zvekuverenga zvakanyanya kumufananidzo wacho. Kuendesa pachena zvikumbiro zvekunyora kuna tenzi uye kuverenga zvikumbiro kumuranda, takashandisa ruby ​​​​gem "Octopus" Isu takagadzira mushandisi akakosha ane _readonly postfix asina kodzero yekunyora. Asi nekuda kwekukanganisa mukugadzirisa kweimwe yevaenzi, zvimwe zvezvikumbiro zvekunyora zvakaenda kune server server pachinzvimbo chemushandisi aive nekodzero dzakakodzera.

Dambudziko harina kuzviratidza pakarepo, nekuti ... mutoro wakawedzerwa wakawedzera kusarira kwevaranda. Kusapindirana kwedata kwakawanikwa mangwanani apo, mushure mekupinza kunze kweusiku, varanda havana "kubata" tenzi. Isu takati izvi zvakakonzerwa nekuremerwa kwesevhisi pachayo uye nekutengesa kune chekuita nekuvhurwa kwezvitoro zvitsva. Asi kutumira data nekunonoka kwemaawa akawanda kwaisagamuchirwa, uye isu takachinja maitiro kune yechipiri yekuongorora muranda, nekuti yaiveΠΎzviwanikwa zvakakura uye hazvina kuremerwa nezvikumbiro zvekuverenga (ndiwo matsananguriro atakaita isu pachedu kushomeka kwekudzokorora lag).

Patakaona zvikonzero zve "kupararira" kwemuranda mukuru, iyo yekuongorora yakanga yatokundikana nekuda kwechikonzero chimwe chete. Kunyangwe kuvepo kwemasevha maviri ekuwedzera kwatakaronga kuendesa mutoro kana tenzi kutadza, nekuda kwekukanganisa kwakaitika zvakazoitika kuti pakanga pasina iripo panguva yakaoma.

Asi sezvo isu tisina kungorasa dhatabhesi (iyo yekudzoreredza panguva iyoyo yakatora anenge maawa mashanu), asiwo snapshot ye master server, takakwanisa kuvhura replica mukati maawa maviri. Chokwadi, mushure meizvi takatarisana nerogi rekudzokorora richitenderera kwenguva yakareba (nekuti maitiro anomhanya mune imwechete-tambo mode, asi iyo inyaya yakasiyana zvachose).

Mhedziso: Mushure mechiitiko chakadaro, zvakava pachena kuti zvaive zvakafanira kusiya tsika yekudzikamisa kunyora kwevashandisi uye kuzivisa sevha yese kuverenga chete. Neiyi nzira, hapana mubvunzo kuti replicas ichave iripo panguva dzakaoma.

Kugadzirisa kunyange mubvunzo mumwe unorema kunogona kudzosa dhatabhesi kuhupenyu

Kunyangwe isu tichigara tichivandudza katalog pane saiti, zvikumbiro zvatakatumira kumaseva evaranda zvakabvumira kuderera kushoma kubva kuna Tenzi. Nguva yatakawana nekubvisa dambudziko revaranda "kamwe kamwe vachisiya chinhambwe" chaive chinopfuura "chipingamupinyi chepfungwa" (panguva iyi mitengo ingadai yakagadziridzwa, uye vatengi vangadai vakaona data rekare), uye isu takamanikidzwa chinja zvikumbiro zvese kune main database server . Somugumisiro, nzvimbo yacho yainonoka ... asi zvishoma yakashanda. Uye apo Muranda akange achipora, isu takanga tisina sarudzo kunze kwekugadzirisa. 

Panguva iyo maseva evaranda aipora, maminetsi akafamba zvishoma nezvishoma, Tenzi akaramba akaremerwa, uye takakanda zvese zvedu mukugadzirisa mabasa anoshanda maererano ne "Pareto Rule": isu takasarudza zvikumbiro zveTOP zvinoburitsa huwandu hwemutoro ndokutanga kugadzirisa. . Izvi zvakaitwa pakarepo.

Mhedzisiro inonakidza yaive yekuti MySQL, yakatakurwa kusvika pakugona, yakapindura kunyange kudiki kuvandudzwa mumatanho. Kugadzirisa akati wandei emibvunzo iyo yakangoburitsa 5% yemutoro wese kwatoratidza inooneka CPU mutoro. Nekuda kweizvozvo, takakwanisa kupa chinogamuchirwa chezviwanikwa kuti Tenzi ashande nedhatabhesi uye kuwana nguva yakakodzera yekudzorera replicas. 

Mhedziso: Kunyangwe diki optimization inobvumidza iwe "kurarama" pasi pekuremerwa kwemaawa akati wandei. Izvi zvakangokwana kuti isu tidzorere maseva ane replicas. Nenzira, isu tichakurukura tekinoroji yedivi remubvunzo optimization mune imwe yeanotevera mapositi. Saka ndokumbira unyore kubhurogi redu kana ukaona richibatsira.

Ronga kutariswa kwemaitiro evashandirwi

Isu tinogadzira maodha kubva kune vatengi, uye nekudaro masevhisi edu anogara achidyidzana neyechitatu-bato APIs - aya ndiwo magedhi ekutumira SMS, mapuratifomu ekubhadhara, masisitimu ekufambisa, geocoder, Federal Tax Service uye mamwe akawanda masisitimu. Uye apo mutoro wakatanga kukura nekukasira, takatanga kupinda muAPI mipimo yemasevhisi evamwe vedu, izvo zvatakanga tisina kumbofunga nezvazvo.

Kupfuura zvisingatarisirwi quotas yemasevhisi emubatsiri kunogona kutungamira kune yako nguva yekudzikira. MaAPI mazhinji anovharisa vatengi vanodarika miganhu, uye mune dzimwe nguva, zvikumbiro zvakawandisa zvinogona kuremedza kugadzirwa kwemumwe wako. 

Semuenzaniso, apo nhamba yekutakura yakawedzera, masevhisi aiperekedza haana kukwanisa kuita mabasa ekuaparadzira uye kuona nzira. Somugumisiro, zvakazoitika kuti mirairo yakaitwa, asi sevhisi yakagadzira nzira haina kushanda. Zvinofanira kutaurwa kuti vatengesi vedu vakaita zvisingaite pasi pemamiriro ezvinhu aya, uye kupindirana kwakajeka kwechikwata kwakabatsira kubhadhara kutadza kwebasa kwenguva pfupi. Asi hazvigoneke kugadzirisa huwandu hwakadai hwemirairo nemaoko nguva dzese, uye mushure menguva yakati taizotarisana nemukaha usingagamuchirike pakati pemirairo uye kuurayiwa kwavo. 

Matanho akati wandei esangano akatorwa uye basa rakanyatsorongeka rechikwata rakabatsira kuwana nguva isu tichibvumirana pamamiriro ezvinhu matsva uye takamirira kuvandudzwa kwemabasa kubva kune vamwe vanobatana. Kune mamwe maAPI anozvirumbidza kutsungirira kwakanyanya uye mitengo yakashata kana paine traffic yakanyanya. Semuenzaniso, pakutanga takashandisa imwe inozivikanwa mepu API kuona kero yenzvimbo yekutumira. Asi pakupera kwemwedzi takagamuchira bhiri rakarongeka rinenge mamiriyoni maviri rubles. Mushure maizvozvi, vakasarudza kukurumidza kuitsiva. Ini handiite zvekushambadza, asi ndichataura kuti mari yedu yakadzikira zvakanyanya.
Isu takapona sei kuwedzera kwakanyanya kwex10 mutoro kure uye ndedzipi mhedziso dzatakatora

Mhedziso: Izvo zvakakosha kuti utarise mamiriro ekushanda eese masevhisi evashandi pamwe nekuachengeta mupfungwa. Kunyange kana nhasi zvichiita sokuti β€œdzine muganhu mukuru” kwauri, izvi hazvirevi kuti mangwana hadzizovi chipingamupinyi pakukura. Uye, zvechokwadi, zviri nani kubvumirana pamusoro pemari yemari yekuwedzera zvikumbiro zvebasa mberi. 

Dzimwe nguva zvinoitika kuti "Unoda imwe goridhe"(c) hazvibatsiri

Isu takajaira "gags" mudura guru kana pamasevha ekushandisa, asi kana uchiyera, matambudziko anogona kuoneka kwaasingatarisirwe.Kutsvaga-manyoro akazara pasaiti, tinoshandisa iyo Apache Solr injini. Sezvo mutoro wakawedzera, takaona kuderera kwenguva yekupindura, uye sevha processor mutoro watosvika 100%. Chii chingave chakareruka - ngatipei mudziyo une Solr zvimwe zviwanikwa.

Panzvimbo pekuwedzera kwekuita kunotarisirwa, sevha "yakafa". Yakabva yangotakura pa100% ichibva yadaira zvishoma nezvishoma. Pakutanga takanga tine 2 cores uye 2 GB ye RAM. Isu takasarudza kuita zvinowanzobatsira - isu takapa sevha 8 cores uye 32 GB. Zvese zvakatonyanya kuipa (tichakuudza chaizvo kuti sei uye nei mune yakaparadzana positi). 

Mukufamba kwemazuva mashoma, takaona kuomesesa kwenyaya iyi uye takawana kuita kwakaringana ne8 cores uye 32 GB. Izvi zvinogadzirisa zvinotibvumira kuti tirambe tichiwedzera mutoro nhasi, izvo zvakakosha zvikuru, nokuti kukura hakusi muvatengi chete, asiwo muhuwandu hwezvitoro zvakabatana - mumwedzi miviri nhamba yavo yakapetwa kaviri. 

Mhedziso: Mitoo yakajairika senge "kuwedzera simbi" haishande nguva dzose. Saka kana uchiyera chero sevhisi, unofanirwa kuve nekunzwisisa kwakanaka kwemashandisiro ainoita zviwanikwa uye kuyedza kushanda kwayo mumamiriro matsva pamberi. 

Stateless ndiyo kiyi yekureruka yakachinjika kuyera

Kazhinji, timu yedu inotevera nzira inozivikanwa: masevhisi haafanire kunge aine nyika yemukati (isina nyika) uye anofanirwa kuzvimiririra pane nharaunda yekuuraya. Izvi zvakatibvumira kuti tigone kutsungirira kukura kwemutoro nekungoyera kuyera. Asi isu takanga tine sevhisi imwe chete yakasarudzika - mubati wemabasa akareba ekumashure. Akanga achibatanidzwa mukutumira email uye sms, kugadzirisa zviitiko, kugadzira zvokudya, kupinza mitengo uye mashizha, nekugadzirisa mifananidzo. Zvakaitika kuti zvinoenderana nekuchengetwa kwefaira kwenzvimbo uye yaive mune imwe kopi. 

Kana huwandu hwemabasa mumutsara we processor hwawedzera (uye izvi zvakangoitika nekuwedzera kwenhamba yemirairo), kuita kwemugadziri paive ne processor uye faira rekuchengetedza rakave chinhu chinomisa. Nekuda kweizvozvo, kuvandudza iyo assortment nemitengo, kutumira zviziviso kune vashandisi, uye mamwe akawanda akakosha mabasa akange akamira mumutsetse akamira. Chikwata cheOps chakakurumidza kutamisa faira kuchengetedza kuenda kuS3-senge network yekuchengetedza, uye izvi zvakatibvumira kusimudza akati wandei machina ane simba kuyera yekumashure basa processor.

Mhedziso: Mutemo usina Stateless unofanirwa kucherechedzwa kune ese maficha pasina kusarudzika, kunyangwe zvikaita sekuti "hatizokwanisa kuramba pano." Zviri nani kupedza nguva shoma pakuronga zvakanaka mashandiro ehurongwa hwese pane kukurumidza kunyora kodhi uye kugadzirisa basa rakaremerwa.

7 nheyo dzekukura kwakanyanya

Kunyangwe kuvepo kwehumwe huwandu, isu takatsika pane akati wandei kukanganisa mukukura. Munguva iyi, nhamba yemirairo yakawedzera kupfuura 4 nguva. Iye zvino isu tave kuendesa zvinodarika zviuru gumi nezvinomwe zvemaodha pazuva mumaguta makumi matanhatu nemaviri uye kuronga kuwedzera geography zvakatowedzera - muhafu yekutanga ye17 sevhisi inotarisirwa kutangwa muRussia yose. Kuti tikwanise kurarama nebasa riri kukura, tichifunga nezvemakoni edu atozara, takagadzira 000 misimboti yekushanda mumamiriro ekukura nguva dzose:

  1. Chiitiko manejimendi. Isu takagadzira bhodhi muJira, uko chiitiko chega chega chinoratidzwa muchimiro chetikiti. Izvi zvichabatsira mukuisa pamberi uye kuita mabasa ane chekuita nechiitiko. Mushure mezvose, muchidimbu, hazvisi kutyisa kukanganisa, asi zvinotyisa kukanganisa kaviri panguva imwe chete. Kune izvo zviitiko apo zviitiko zvinodzokorora chikonzero chisati chagadziriswa, mirayiridzo yekuita inofanira kunge yakagadzirira, nokuti panguva dzekutakura mutoro zvakakosha kuita nekumhanya kwemheni.
  2. Kuongorora inodiwa kune zvese zvivakwa zvinhu pasina kusarudzika. Yakanga iri kuvonga kwaari kuti takakwanisa kufanotaura kukura kwemutoro uye kunyatsosarudza "mabhodhoro" ekutanga kubviswa. Zvingangodaro, pasi pemutoro wakakwirira, zvose zvausina kumbofunga nezvazvo zvichaputsika kana kutanga kuderera. Naizvozvo, zvakanakisa kugadzira zviziviso zvitsva nekukurumidza mushure mezviitiko zvekutanga kuitika kuitira kuti utarise uye uzvitarisire.
  3. Zviziviso zvakarurama zvinongodiwa kana mutoro unowedzera zvakanyanya. Kutanga, ivo vanofanira kuzivisa chii chaizvo chatyoka. Chechipiri, hapafanirwe kuve nenyevero dzakawanda, nekuti kuwanda kweasina-yakakosha chenjedzo kunotungamirira mukuregeredza nyevero dzese zvachose.
  4. Zvikumbiro zvinofanirwa kunge zvisina chirevo. Tine chokwadi chekuti hapafanirwe kusara pane mutemo uyu. Tinoda rusununguko rwakakwana kubva kunharaunda yenguva yekumhanya. Kuti uite izvi, unogona kuchengeta data yakagovaniswa mune dhatabhesi kana, semuenzaniso, zvakananga muS3. Zvichiri nani, tevera mitemo. https://12factor.net. Munguva yekuwedzera kwakanyanya munguva, hapana nzira yekukwirisa iyo kodhi, uye iwe uchafanirwa kutarisana nemutoro nekuwedzera zvakananga zviwanikwa zvekombuta uye yakachinjika kuyera.
  5. Quotas uye kushanda kwemabasa ekunze. Nekukura kwakakurumidza, dambudziko rinogona kusimuka kwete chete muzvivakwa zvako, asiwo mune yekunze sevhisi. Chinhu chinonyanya kutsamwisa ndechekuti izvi zvikaitika kwete nekuda kwekutadza, asi nekuda kwekusvika kumatunhu kana miganhu. Saka masevhisi ekunze anofanira kuyera sezvaunoita. 
  6. Kupatsanura maitiro uye mitsetse. Izvi zvinobatsira zvakanyanya kana paine kuvharika pane imwe yemasuwo. Isu tingadai tisina kusangana nekunonoka mukufambiswa kwedata dai mitsetse yeSMS yakazara isina kukanganisa kuchinjana kwezviziviso pakati pehurongwa hweruzivo. Uye zvingava nyore kuwedzera nhamba yevashandi kana vakashanda vakaparadzana.
  7. Chokwadi chemari. Kana paine kuputika kwekukura mukuyerera kwe data, hapana nguva yekufunga nezve tariff uye kunyoreswa. Asi iwe unofanirwa kuvarangarira, kunyanya kana iwe uri kambani diki. Muridzi wechero API, pamwe nemupi wako wekutambira, anogona kuunza bhiri rakakura. Saka unofanira kuverenga zvibvumirano zvakanyatsonaka.

mhedziso

Kwete pasina kurasikirwa, asi isu takapona padanho iri, uye nhasi tinoedza kuomerera kune ese misimboti inowanikwa, uye muchina wega wega unokwanisa kuwedzera nyore x4 kuita kuti utsungirire zvimwe zviitiko zvisingatarisirwi. 

Mune zvinotevera zvinotumirwa, isu tichagovana ruzivo rwedu mukuongorora kuderedzwa kwekuita muApache Solr, uye zvakare kutaura nezve optimization yemubvunzo uye mabatiro ekuita neFederal Tax Service kunobatsira kambani kuchengetedza mari. Nyorera kune yedu blog kuti usarase chero chinhu, uye tiudze mune zvakataurwa kana iwe uine matambudziko akafanana panguva yekukura kwetraffic.

Isu takapona sei kuwedzera kwakanyanya kwex10 mutoro kure uye ndedzipi mhedziso dzatakatora

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Wakamboona kudzikira / kudzikira mubasa nekuda kwekuwedzera kwakanyanya kwemutoro nekuda kwe:

  • 55,6%Kusakwanisa kukurumidza kuwedzera computing zviwanikwa10

  • 16,7%Hosting provider infrastructure limits3

  • 33,3%Miganhu yechitatu-bato APIs6

  • 27,8%Kutyorwa kwemisimboti isingaverengeki yemashandisirwo avo5

  • 88,9%Non-optimal code of own services16

18 vashandisi vakavhota. 6 vashandisi vakaramba.

Source: www.habr.com

Voeg