VasarÄ tradicionÄli samazinÄs gan iepirkumu aktivitÄte, gan web projektu infrastruktÅ«ras izmaiÅu intensitÄte, stÄsta Captain Evidence. Tikai tÄpÄc, ka pat IT cilvÄki dažreiz dodas atvaļinÄjumÄ. Un arÄ« CTO. Jo grÅ«tÄk klÄjas tiem, kas paliek amatÄ, taÄu tagad runa nav par to: iespÄjams, tieÅ”i tÄpÄc vasara ir labÄkais laiks, lai apsvÄrtu esoÅ”o rezervÄciju shÄmu un izstrÄdÄtu plÄnu tÄs uzlaboÅ”anai. Un Å”ajÄ jums bÅ«s noderÄ«ga Jegora Andrejeva pieredze no
Veidojot rezerves vietas, rezervÄjot ir vairÄkas lamatas, kurÄs var iekrist. Un tos Ä«sti nevar sist. Un sagrauj mÅ«s Å”ajÄ visÄ, tÄpat kÄ daudzÄs citÄs lietÄs, perfekcionisms un ... slinkums. MÄs cenÅ”amies visu-visu-visu padarÄ«t perfektu, bet jums tas nav jÄdara perfekti! Jums ir jÄdara tikai noteiktas lietas, bet jÄdara tÄs pareizi, jÄnoved tÄs lÄ«dz galam, lai tÄs darbotos normÄli.
KļūmjpÄrlÄce nav kaut kÄda jautra, jautra ālai tÄ bÅ«tuā lieta; tÄ ir lieta, kurai vajadzÄtu darÄ«t tieÅ”i vienu - samazinÄt dÄ«kstÄves laiku, lai serviss, uzÅÄmums zaudÄtu mazÄk naudas. Un visÄs rezervÄÅ”anas metodÄs es iesaku domÄt Å”ÄdÄ kontekstÄ: kur ir nauda?
PirmÄ lamatas: veidojot lielas, uzticamas sistÄmas un veicot dublÄÅ”anu, mÄs samazinÄm negadÄ«jumu skaitu. Tas ir briesmÄ«gs malds. Veicot atlaiÅ”anu, mÄs, visticamÄk, palielinÄsim negadÄ«jumu skaitu. Un, ja mÄs visu darÄ«sim pareizi, tad kolektÄ«vi samazinÄsim dÄ«kstÄves laiku. BÅ«s vairÄk negadÄ«jumu, taÄu tie notiks par zemÄkÄm izmaksÄm. Galu galÄ, kas ir rezervÄcija? ir sistÄmas sarežģījums. JebkurÅ” sarežģījums ir slikts: mums ir vairÄk skrÅ«vju, vairÄk zobratu, vÄrdu sakot, vairÄk elementu - un lÄ«dz ar to lielÄka iespÄja salÅ«zt. Un viÅi patieÅ”Äm saplÄ«st. Un tie plÄ«sÄ«s biežÄk. VienkÄrÅ”s piemÄrs: pieÅemsim, ka mums ir vietne ar PHP, MySQL. Un tas steidzami jÄrezervÄ.
Shtosh (c) MÄs Åemam otro vietni, izveidojam identisku sistÄmu... SarežģītÄ«ba kļūst divreiz lielÄka - mums ir divas vienÄ«bas. Un mÄs arÄ« pÄrsÅ«tÄm noteiktu loÄ£iku datu pÄrsÅ«tÄ«Å”anai no vienas vietnes uz otru no augÅ”as - tas ir, datu replikÄcija, statikas kopÄÅ”ana utt. TÄtad replikÄcijas loÄ£ika parasti ir ļoti sarežģīta, un tÄpÄc sistÄmas kopÄjÄ sarežģītÄ«ba var bÅ«t nevis 2, bet 3, 5, 10 reizes lielÄka.
Otrais lamatas: veidojot patieÅ”Äm lielas sarežģītas sistÄmas, mÄs fantazÄjam, ko mÄs galu galÄ vÄlamies iegÅ«t. Voila: mÄs vÄlamies Ä«paÅ”i uzticamu sistÄmu, kas darbojas bez dÄ«kstÄves, pÄrslÄdzas pussekundes laikÄ (vai labÄk, uzreiz) un sÄk Ä«stenot sapÅus. Bet arÄ« Å”eit ir nianse: jo Ä«sÄks ir vÄlamais pÄrslÄgÅ”anas laiks, jo sarežģītÄka kļūst sistÄmas loÄ£ika. Jo grÅ«tÄk mums ir jÄpadara Ŕī loÄ£ika, jo biežÄk sistÄma salÅ«zÄ«s. Un jÅ«s varat nonÄkt ļoti nepatÄ«kamÄ situÄcijÄ: mÄs cenÅ”amies samazinÄt dÄ«kstÄves laiku, bet patiesÄ«bÄ mÄs visu sarežģījam, un, ja kaut kas noiet greizi, dÄ«kstÄves laiks bÅ«s ilgÄks. Å eit jÅ«s bieži pieÄ·erat sevi pie domas: Å”eit ... labÄk nebÅ«tu rezervÄt. BÅ«tu labÄk, ja tas darbotos atseviŔķi un ar skaidru dÄ«kstÄvi.
KÄ ar to var cÄ«nÄ«ties? Mums ir jÄbeidz melot sev, jÄbeidz glaimot, ka mÄs tÅ«lÄ«t bÅ«vÄsim kosmosa kuÄ£i, bet adekvÄti jÄsaprot, cik ilgi projekts var nogulties. Un saskaÅÄ ar Å”o maksimÄlo laiku mÄs izvÄlÄsimies, ar kÄdÄm metodÄm mÄs palielinÄsim mÅ«su sistÄmas uzticamÄ«bu.
Ir pienÄcis laiks "stÄstiem no f" ... no dzÄ«ves, protams.
PiemÄrs numur viens
IedomÄjieties pilsÄtas N cauruļu velmÄÅ”anas rÅ«pnÄ«cas Nr.1 āāvizÄ«tkartes vietni. Tur ar milzÄ«giem burtiem rakstÄ«ts - PIPE ROLLING PLANT Nr.1. Nedaudz zemÄks ir sauklis: "MÅ«su caurules ir apaļÄkÄs caurules N." Un apakÅ”Ä ir izpilddirektora tÄlruÅa numurs un viÅa vÄrds. MÄs saprotam, ka jums ir nepiecieÅ”ams rezervÄt - tÄ ir ļoti svarÄ«ga lieta! SÄksim saprast, no kÄ tas sastÄv. Html-statika - tas ir, pÄris bildes, kur Ä£enerÄlis, patiesÄ«bÄ, pie pirts galda ar savu partneri apspriež kÄdu nÄkamo darÄ«jumu. MÄs sÄkam domÄt par dÄ«kstÄvi. NÄk prÄtÄ: tev vajag nogulÄt piecas minÅ«tes, ne vairÄk. Un tad ir jautÄjums: cik daudz pÄrdoÅ”anas Å”ajÄ mÅ«su vietnÄ bija kopumÄ? Cik daudz? Ko nozÄ«mÄ ānulleā? Un tas nozÄ«mÄ: jo visus Äetrus darÄ«jumus pÄdÄjÄ gada laikÄ Ä£enerÄlis veicis pie viena galda, ar tiem paÅ”iem cilvÄkiem, ar kuriem viÅi iet uz pirti, sÄž pie galda. Un mÄs saprotam, ka pat tad, ja vietne nogulÄs uz dienu, nekas briesmÄ«gs nebÅ«s.
Pamatojoties uz ievadÄ«to, ir diena, lai izceltu Å”o stÄstu. SÄkam domÄt par atlaiÅ”anas shÄmu. Un Å”im piemÄram mÄs izvÄlamies ideÄlÄko atlaiÅ”anas shÄmu: mÄs neizmantojam atlaiÅ”anu. Visu Å”o lietu jebkurÅ” admins paceļ pusstundas laikÄ ar dÅ«mu pauzÄm. UzstÄdiet tÄ«mekļa serveri, ielieciet failus - tas arÄ« viss. Tas darbosies. Nav ko skatÄ«ties, nav kam pievÄrst Ä«paÅ”u uzmanÄ«bu. Tas ir, secinÄjums no piemÄra numur viens ir diezgan acÄ«mredzams: pakalpojumi, kuriem nav nepiecieÅ”ams dublÄt, nav jÄdublÄ.
PiemÄrs numur divi
UzÅÄmuma blogs: tur ziÅas raksta speciÄli apmÄcÄ«ti cilvÄki, tÄpÄc piedalÄ«jÄmies tÄdÄ un tÄdÄ izstÄdÄ, bet izlaidÄm vÄl vienu jaunu produktu utt. PieÅemsim, ka tas ir standarta PHP ar WordPress, nelielu datu bÄzi un nedaudz statisku. Protams, atkal nÄk prÄtÄ, ka nekÄdÄ gadÄ«jumÄ nevajadzÄtu gulÄt - "ne vairÄk kÄ piecas minÅ«tes!", Tas arÄ« viss. Bet padomÄsim tÄlÄk. Ko dara Å”is emuÄrs? Tie nÄk no Yandex, no Google dažiem pieprasÄ«jumiem, organiskajiem produktiem. Lieliski. Vai tam ir kÄds sakars ar pÄrdoÅ”anu? Ieskats: nav Ä«sti. ReklÄmas datplÅ«sma tiek novirzÄ«ta uz galveno vietni, kas atrodas citÄ datorÄ. SÄksim domÄt par emuÄra rezervÄÅ”anas shÄmu. LabÄ nozÄ«mÄ tas jÄpaceļ pÄris stundu laikÄ, un bÅ«tu jauki tam sagatavoties. BÅ«tu saprÄtÄ«gi paÅemt maŔīnu citÄ datu centrÄ, uzrullÄt tajÄ vidi, tas ir, tÄ«mekļa serveri, PHP, WordPress, MySQL un atstÄt to izslÄgtu. BrÄ«dÄ«, kad saprotam, ka viss ir salÅ«zis, ir jÄizdara divas lietas - jÄizripina mysql dump lÄ«dz 50 metriem, tas pÄc minÅ«tes lidos tur, un no tur esoÅ”Äs rezerves izritinÄt noteiktu skaitu bilžu. Tas ir arÄ« tur, ne Dievs nezina, cik daudz. TÄtad pusstundas laikÄ viss paceļas. JebkÄdas replikÄcijas, vai Dievs piedod, automÄtiska kļūmjpÄrlÄce. SecinÄjums: to, ko mÄs varam Ätri izvilkt no rezerves, nav nepiecieÅ”ams rezervÄt.
TreÅ”ais piemÄrs, grÅ«tÄks
Interneta veikals. PhP ar atvÄrtu sirdi ir nedaudz noformÄts, mysql ar stabilu pamatu. Diezgan daudz statikas (galu galÄ interneta veikalÄ ir skaistas HD bildes un tas viss), Redis sesijai un Elasticsearch meklÄÅ”anai. MÄs sÄkam domÄt par dÄ«kstÄvi. Un Å”eit, protams, ir acÄ«mredzams, ka interneta veikals nevar nesÄpÄ«gi nogulÄt ne dienu. Galu galÄ, jo ilgÄk tas atrodas, jo vairÄk naudas mÄs zaudÄjam. Ir vÄrts paÄtrinÄt. Cik daudz? DomÄju, ja kÄdu stundu nogulÄsim, neviens traks nekļūs. JÄ, mÄs kaut ko zaudÄsim, bet, ja sÄksim bÅ«t dedzÄ«gi, bÅ«s tikai sliktÄk. NosakÄm atļautÄ dÄ«kstÄves stundu shÄmu.
KÄ to var rezervÄt? AutomaŔīna ir vajadzÄ«ga jebkurÄ gadÄ«jumÄ: stunda laika ir diezgan maz. Mysql: te jau vajadzÄ«ga replikÄcija, dzÄ«vÄ replikÄcija, jo pÄc stundas 100 GB visdrÄ«zÄk neiekļūs dumpÄ. Statika, bildes: atkal stundas laikÄ 500 GB var nepaspÄt pievienoties. TÄpÄc labÄk ir uzreiz kopÄt attÄlus. Redis: Å”eit lietas kļūst interesantas. Sesijas atrodas RedisÄ ā mÄs nevaram to vienkÄrÅ”i paÅemt un aprakt. Jo nebÅ«s ļoti labi: visi lietotÄji tiks izrakstÄ«ti, grozi tiks iztukÅ”oti utt. CilvÄki bÅ«s spiesti atkÄrtoti ievadÄ«t savu lietotÄjvÄrdu un paroli, un daudzi cilvÄki var atdalÄ«ties un nepabeigt pirkumu. Atkal konversija samazinÄsies. No otras puses, Redis ir atjauninÄts, ar pÄdÄjiem pieteicÄjiem lietotÄjiem, iespÄjams, arÄ« nav vajadzÄ«gs. Un labs kompromiss ir Åemt Redis un atjaunot to no dublÄjuma vakar vai, ja to darÄt katru stundu, pirms stundas. Par laimi, tÄ atjaunoÅ”ana no dublÄjuma ir viena faila kopÄÅ”ana. Un visinteresantÄkais stÄsts ir Elasticsearch. KurÅ” kÄdreiz radÄ«ja MySQL replikÄciju? Vai kÄds kÄdreiz ir paÅÄmis Elasticsearch replikÄciju? Un pÄc kÄ viÅa normÄli strÄdÄja? Ko es domÄju: mÄs savÄ sistÄmÄ redzam noteiktu entÄ«tiju. Tas ir sava veida noderÄ«gi, bet sarežģīti.
GrÅ«ti tÄdÄ ziÅÄ, ka mÅ«su kolÄÄ£iem inženieriem ar to nav pieredzes. Vai arÄ« ir slikta pieredze. Vai arÄ« mÄs saprotam, ka Ŕī ir diezgan jauna tehnoloÄ£ija ar niansÄm vai mitrumu. MÄs domÄjam... SasodÄ«ts, elastÄ«ba arÄ« ir veselÄ«ga, arÄ« tÄs atjaunoÅ”ana no dublÄjuma prasa ilgu laiku, ko man darÄ«t? MÄs saprotam, ka elastÄ«gais mÅ«su gadÄ«jumÄ tiek izmantots meklÄÅ”anai. KÄ mÅ«su tieÅ”saistes veikals pÄrdod? MÄs ejam pie tirgotÄjiem un jautÄjam, no kurienes nÄk cilvÄki. ViÅi atbild: "90% no Yandex tirgus nonÄk tieÅ”i produkta kartÄ." Un vai nu viÅi to pÄrk, vai nepÄrk. TÄpÄc 10% lietotÄju ir nepiecieÅ”ama meklÄÅ”ana. Un, lai saglabÄtu elastÄ«gu replikÄciju, it Ä«paÅ”i starp dažÄdiem datu centriem dažÄdÄs zonÄs, patieÅ”Äm ir daudz nianÅ”u. Kura izeja? MÄs Åemam elastÄ«go gumiju rezervÄtÄ vietÄ un ar to neko nedarÄm. Ja lieta ievilksies, mÄs to varam pacelt kaut kad vÄlÄk, bet tas nav droÅ”i. Faktiski plus vai mÄ«nus secinÄjums ir viens: pakalpojumus, kas neietekmÄ naudu, mÄs atkal nerezervÄjam. Lai Ä·Äde bÅ«tu vienkÄrÅ”a.
PiemÄrs numur Äetri, vÄl grÅ«tÄk
Integrators: ziedu pÄrdoÅ”ana, taksometra izsaukÅ”ana, preÄu pÄrdoÅ”ana, vispÄr jebkas. Nopietna lieta, kas strÄdÄ 24/7 lielam lietotÄju skaitam. Ar pilnvÄrtÄ«gu interesantu steku, kur ir interesantas bÄzes, risinÄjumi, liela slodze, un galvenais, guļot ilgÄk par 5 minÅ«tÄm viÅam sÄp. Ne tikai un ne tik daudz tÄpÄc, ka cilvÄki nepirks, bet tÄpÄc, ka cilvÄki redzÄs, ka Ŕī lieta nedarbojas, viÅi bÅ«s sarÅ«gtinÄti un otrreiz var neatnÄkt vispÄr.
LABI. Piecas minÅ«tes. Ko mÄs ar Å”o darÄ«sim? Å ajÄ gadÄ«jumÄ pieauguÅ”o veidÄ mÄs veidojam Ä«stu rezerves vietni ar visu naudu, ar visu un visu replikÄciju un, iespÄjams, pat automatizÄjot maksimÄlo pÄreju uz Å”o vietni. Un papildus tam jums ir jÄatceras, ka ir jÄveic viena svarÄ«ga lieta: faktiski jÄuzraksta pÄrslÄgÅ”anas noteikumi. RegulÄjums, pat ja jums viss un viss ir automatizÄts, var bÅ«t ļoti vienkÄrÅ”s. No sÄrijÄm āpalaist tÄdu un tÄdu iespÄjamo skriptuā, ānospiediet tÄdu un tÄdu izvÄles rÅ«tiÅu 53. marÅ”rutÄā un tÄ tÄlÄk - bet tam vajadzÄtu bÅ«t kaut kÄdam precÄ«zam darbÄ«bu sarakstam.
Un Ŕķiet, ka viss ir skaidrs. ReplikÄcijas pÄrslÄgÅ”ana ir triviÄls uzdevums, pretÄjÄ gadÄ«jumÄ tÄ pÄrslÄgsies pati. PÄrrakstiet domÄna vÄrdu dns - no tÄs paÅ”as sÄrijas. ProblÄma ir tÄda, ka tad, kad Å”Äds projekts krÄ«t, iestÄjas panika, un tam var tikt pakļauti pat stiprÄkie, bÄrdaini administratori. Bez skaidras norÄdes āatver terminÄli, nÄc Å”urp, mÅ«su servera adrese joprojÄm ir Å”Ädaā reanimÄcijai atvÄlÄto 5 minÅ«Å”u periodu ir grÅ«ti izturÄt. Nu, plus, kad mÄs izmantojam Å”o regulÄjumu, ir viegli salabot, piemÄram, dažas izmaiÅas infrastruktÅ«rÄ un attiecÄ«gi mainÄ«t regulÄjumu.
Nu, ja rezervÄÅ”anas sistÄma ir ļoti sarežģīta un kÄdÄ brÄ«dÄ« esam pieļÄvuÅ”i kļūdu, tad varam nolikt savu rezerves vietni un papildus pÄrvÄrst datus par Ä·irbi abÄs vietnÄs - tas bÅ«s ļoti skumji.
PiemÄrs piektais pilns hardcore
Starptautisks pakalpojums ar simtiem miljonu lietotÄju visÄ pasaulÄ. Visas pastÄvoÅ”Äs laika joslas, liela slodze ar maksimÄlo Ätrumu, jÅ«s nevarat apgulties. MinÅ«te ā un bÅ«s skumji. Ko darÄ«t? Rezerve, atkal, pilnÄ«bÄ. MÄs izdarÄ«jÄm visu, kas tika minÄts iepriekÅ”ÄjÄ piemÄrÄ, un nedaudz vairÄk. IdeÄla pasaule, un mÅ«su infrastruktÅ«ra ir saskaÅÄ ar visiem IaaC devops. Tas ir, viss parasti ir git, un vienkÄrÅ”i nospiediet pogu.
Kas trÅ«kst? Viens ir mÄcÄ«Å”ana. Bez tiem nevar iztikt. Å Ä·iet, ka viss ir ideÄli, mÄs visu kontrolÄjam. Nospiežam pogu, viss notiek. Pat ja tÄ ir taisnÄ«ba ā un mÄs saprotam, ka tas tÄ nav ā mÅ«su sistÄma mijiedarbojas ar dažÄm citÄm sistÄmÄm. PiemÄram, tas ir dns no marÅ”ruta 53, s3 krÄtuve, integrÄcija ar kÄdu api. MÄs nevaram paredzÄt visu Å”ajÄ spekulatÄ«vajÄ eksperimentÄ. Un, kamÄr mÄs patieÅ”Äm neizvilksim slÄdzi, mÄs nezinÄm, vai tas darbosies vai nÄ.
Tas laikam arÄ« viss. Neesiet slinki un nepÄrcentieties. Un lai darba laiks ir ar jums!
Avots: www.habr.com