{"id":83188,"date":"2020-05-29T07:43:02","date_gmt":"2020-05-29T05:43:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali"},"modified":"2020-05-29T07:43:02","modified_gmt":"2020-05-29T05:43:02","slug":"kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali","title":{"rendered":"Jak jsme zvl\u00e1dli n\u00e1hl\u00fd desetin\u00e1sobn\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme si z toho vzali.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj, Habr! Posledn\u00ed p\u00e1r m\u011bs\u00edc\u016f jsme \u017eili v opravdu zaj\u00edmav\u00e9 situaci, a r\u00e1d bych se pod\u011blil o n\u00e1\u0161 p\u0159\u00edb\u011bh o \u0161k\u00e1lov\u00e1n\u00ed infrastruktury. B\u011bhem t\u00e9to doby SberMarket zv\u00fd\u0161il objedn\u00e1vky \u010dty\u0159ikr\u00e1t a spustil slu\u017ebu ve 17 nov\u00fdch m\u011bstech. Explozivn\u00ed r\u016fst popt\u00e1vky po dod\u00e1n\u00ed potravin si vy\u017e\u00e1dal od n\u00e1s roz\u0161\u00ed\u0159en\u00ed infrastruktury. O t\u011bch nejzaj\u00edmav\u011bj\u0161\u00edch a u\u017eite\u010dn\u00fdch z\u00e1v\u011brech \u010dt\u011bte pod katem.<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme zvl\u00e1dli n\u00e1hl\u00fd desetin\u00e1sobn\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme si z toho vzali.\" src=\"\/wp-content\/uploads\/2020\/05\/5f39f66f5dfd298e55821777dfad427d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nJmenuji se Dima Bobyljev, jsem technick\u00fd \u0159editel SberMarketu. Proto\u017ee je to prvn\u00ed p\u0159\u00edsp\u011bvek v na\u0161em blogu, r\u00e1d bych \u0159ekl n\u011bkolik slov o sob\u011b a o spole\u010dnosti. Minulou podzim jsem se \u00fa\u010dastnil sout\u011b\u017ee mlad\u00fdch l\u00eddr\u016f Runetu. Pro sout\u011b\u017e jsem <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/dmitry.bobylev\/posts\/2785495564804338\">napsal kr\u00e1tk\u00fd p\u0159\u00edb\u011bh<\/a><\/noindex> o tom, jak my v SberMarketu vid\u00edme vnit\u0159n\u00ed kulturu a p\u0159\u00edstup k rozvoji slu\u017eby. A i kdy\u017e jsme v sout\u011b\u017ei nevyhr\u00e1li, dok\u00e1zal jsem si v\u00fdsti\u017en\u011b formulovat hlavn\u00ed principy rozvoje IT ekosyst\u00e9mu. <\/p>\n<p>P\u0159i \u0159\u00edzen\u00ed t\u00fdmu je d\u016fle\u017eit\u00e9 ch\u00e1pat a nach\u00e1zet rovnov\u00e1hu mezi pot\u0159ebami byznysu a pot\u0159ebami ka\u017ed\u00e9ho konkr\u00e9tn\u00edho v\u00fdvoj\u00e1\u0159e. V sou\u010dasnosti SberMarket roste 13kr\u00e1t rok od roku a to ovliv\u0148uje produkt, co\u017e vy\u017eaduje neust\u00e1l\u00e9 zvy\u0161ov\u00e1n\u00ed objem\u016f a rychlosti v\u00fdvoje. I p\u0159esto vy\u010dle\u0148ujeme dostatek \u010dasu v\u00fdvoj\u00e1\u0159\u016fm na p\u0159edb\u011b\u017enou anal\u00fdzu a kvalitn\u00ed psan\u00ed k\u00f3du. Stanoven\u00fd p\u0159\u00edstup pom\u00e1h\u00e1 nejen p\u0159i vytv\u00e1\u0159en\u00ed funguj\u00edc\u00edho produktu, ale tak\u00e9 p\u0159i jeho dal\u0161\u00edm roz\u0161i\u0159ov\u00e1n\u00ed a rozvoji. V d\u016fsledku takov\u00e9ho r\u016fstu se SberMarket ji\u017e stal l\u00eddrem mezi slu\u017ebami dod\u00e1n\u00ed potravin: denn\u011b doru\u010dujeme p\u0159ibli\u017en\u011b 18 tis\u00edc objedn\u00e1vek, i kdy\u017e na za\u010d\u00e1tku \u00fanora jich bylo asi 3500.<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme zvl\u00e1dli n\u00e1hl\u00fd desetin\u00e1sobn\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme si z toho vzali.\" src=\"\/wp-content\/uploads\/2020\/05\/48e964525f86f368f703dc8149f281b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Jednou klient po\u017e\u00e1dal kur\u00fdra SberMarketu, aby mu potraviny dodal bezkontaktn\u011b \u2014 p\u0159\u00edmo na balkon.<\/i><\/p>\n<p>Ale poj\u010fme k detail\u016fm. V posledn\u00edch n\u011bkolika m\u011bs\u00edc\u00edch jsme aktivn\u011b roz\u0161i\u0159ovali infrastrukturu na\u0161\u00ed spole\u010dnosti. Tato pot\u0159eba byla vysv\u011btlena vn\u011bj\u0161\u00edmi a vnit\u0159n\u00edmi faktory. Sou\u010dasn\u011b s roz\u0161i\u0159ov\u00e1n\u00edm klientsk\u00e9 z\u00e1kladny vzrostl po\u010det p\u0159ipojen\u00fdch obchod\u016f z 90 na za\u010d\u00e1tku roku na v\u00edce ne\u017e 200 do poloviny kv\u011btna. P\u0159ipravili jsme se na to, rezervovali jsme hlavn\u00ed infrastrukturu a po\u010d\u00edtali jsme s mo\u017enost\u00ed vertik\u00e1ln\u00edho a horizont\u00e1ln\u00edho \u0161k\u00e1lov\u00e1n\u00ed v\u0161ech virtu\u00e1ln\u00edch stroj\u016f um\u00edst\u011bn\u00fdch v cloudu Yandex. Av\u0161ak praxe uk\u00e1zala: \u201eV\u0161echno, co se m\u016f\u017ee pokazit, se pokaz\u00ed.\u201c A dnes se chci pod\u011blit o nejzaj\u00edmav\u011bj\u0161\u00ed situace, kter\u00e9 nastaly v t\u011bchto t\u00fddnech. Douf\u00e1m, \u017ee na\u0161e zku\u0161enosti budou pro v\u00e1s u\u017eite\u010dn\u00e9.<\/p>\n<h3>Slave je pln\u011b p\u0159ipraven.<\/h3>\n<p>\nJe\u0161t\u011b p\u0159ed za\u010d\u00e1tkem pandemie jsme se setkali s rostouc\u00edm po\u010dtem po\u017eadavk\u016f na na\u0161e backend servery. Trend objedn\u00e1vat produkty s doru\u010den\u00edm dom\u016f za\u010dal z\u00edsk\u00e1vat na s\u00edle, a s p\u0159ijet\u00edm prvn\u00edch opat\u0159en\u00ed sebez\u00e1dr\u017en\u00e9ho chov\u00e1n\u00ed v souvislosti s COVID-19 se z\u00e1t\u011b\u017e dramaticky zvy\u0161ovala po cel\u00fd den. Objevila se pot\u0159eba rychle uvolnit master servery hlavn\u00ed datab\u00e1ze a p\u0159esunout \u010d\u00e1st \u010dtec\u00edch po\u017eadavk\u016f na replikov\u00e9 servery (slave).<\/p>\n<p>Na tento krok jsme se p\u0159edem p\u0159ipravili a pro takov\u00fd man\u00e9vr u\u017e byly spu\u0161t\u011bny 2 slave servery. Na t\u011bchto serverech se p\u0159ev\u00e1\u017en\u011b prov\u00e1d\u011bly d\u00e1vkov\u00e9 \u00fakoly generov\u00e1n\u00ed informa\u010dn\u00edch feed\u016f pro v\u00fdm\u011bnu dat s partnery. Tyto procesy vytv\u00e1\u0159ely zbyte\u010dn\u00e9 zat\u00ed\u017een\u00ed a zcela opr\u00e1vn\u011bn\u011b byly vy\u0159azeny \"z po\u010d\u00edt\u00e1n\u00ed\" o p\u00e1r m\u011bs\u00edc\u016f d\u0159\u00edve.\u00a0<\/p>\n<p>Proto\u017ee na Slave prob\u00edhala replikace, dr\u017eeli jsme se koncepce, \u017ee aplikace mohou pracovat s nimi pouze v re\u017eimu pouze pro \u010dten\u00ed. Pl\u00e1n obnovy po hav\u00e1rii p\u0159edpokl\u00e1dal, \u017ee v p\u0159\u00edpad\u011b katastrofy budeme moci jednodu\u0161e p\u0159ipojit Slave m\u00edsto Master a p\u0159epnout v\u0161echny po\u017eadavky na z\u00e1pis a \u010dten\u00ed na Slave. Nicm\u00e9n\u011b jsme tak\u00e9 cht\u011bli pou\u017e\u00edvat repliky pro pot\u0159eby analytick\u00e9ho odd\u011blen\u00ed, a proto servery nebyly zcela p\u0159evedeny do stavu pouze pro \u010dten\u00ed, a na ka\u017ed\u00e9m hostiteli byl vlastn\u00ed soubor u\u017eivatel\u016f, z nich\u017e n\u011bkte\u0159\u00ed m\u011bli pr\u00e1va z\u00e1pisu pro uchov\u00e1n\u00ed meziv\u00fdsledk\u016f v\u00fdpo\u010dt\u016f.<\/p>\n<p>Do ur\u010dit\u00e9 \u00farovn\u011b zat\u00ed\u017een\u00ed n\u00e1m sta\u010dil master jak pro z\u00e1pis, tak pro \u010dten\u00ed p\u0159i zpracov\u00e1n\u00ed http po\u017eadavk\u016f. V polovin\u011b b\u0159ezna, pr\u00e1v\u011b kdy\u017e Sbermarket se rozhodl p\u0159ej\u00edt na pln\u011b vzd\u00e1lenou pr\u00e1ci, za\u010dal u n\u00e1s mnohon\u00e1sobn\u00fd n\u00e1r\u016fst RPS. \u010c\u00edm d\u00e1l v\u00edc na\u0161ich klient\u016f p\u0159e\u0161lo do izolace nebo na home office, co\u017e se odrazilo na ukazatel\u00edch zat\u00ed\u017een\u00ed.<\/p>\n<p>V\u00fdkon mastera p\u0159estal sta\u010dit, a proto jsme za\u010dali p\u0159esouvat \u010d\u00e1st nejvyt\u00ed\u017een\u011bj\u0161\u00edch \u010dtec\u00edch po\u017eadavk\u016f na replikaci. Pro transparentn\u00ed sm\u011brov\u00e1n\u00ed z\u00e1pisov\u00fdch po\u017eadavk\u016f na master a \u010dtec\u00edch na slave jsme pou\u017eili ruby gem \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/thiagopradi\/octopus\">Octopus<\/a><\/noindex>\u201c. Vytvo\u0159ili jsme speci\u00e1ln\u00edho u\u017eivatele s postfixem _readonly bez z\u00e1pisov\u00fdch pr\u00e1v. Ale kv\u016fli chyb\u011b v konfiguraci jednoho z hostitel\u016f \u010d\u00e1st z\u00e1pisov\u00fdch po\u017eadavk\u016f ode\u0161la na slave server pod jm\u00e9nem u\u017eivatele, kter\u00fd m\u011bl odpov\u00eddaj\u00edc\u00ed pr\u00e1va.<\/p>\n<p>Probl\u00e9m se neprojevil hned, proto\u017ee zv\u00fd\u0161en\u00e9 zat\u00ed\u017een\u00ed zv\u00fd\u0161ilo zpo\u017ed\u011bn\u00ed slaves. Nekonzistence dat byla odhalena r\u00e1no, kdy\u017e po no\u010dn\u00edch importech slaves \u201enedohnaly\u201c master. P\u0159ipsali jsme to na vysok\u00e9 zat\u00ed\u017een\u00ed samotn\u00e9 slu\u017eby a importy spojen\u00e9 s otev\u0159en\u00edm nov\u00fdch obchod\u016f. Ale poskytovat data se n\u011bkolikahodinov\u00fdm zpo\u017ed\u011bn\u00edm bylo nep\u0159\u00edpustn\u00e9, a tak jsme p\u0159epnuli procesy na druh\u00e9ho analytick\u00e9ho slave, proto\u017ee m\u011bl v\u011bt\u0161\u00ed zdroje a nebyl zat\u00ed\u017een \u010dtec\u00edmi po\u017eadavky (co\u017e jsme si vysv\u011btlili jako nep\u0159\u00edtomnost zpo\u017ed\u011bn\u00ed replikace).<strong>o<\/strong>Kdy\u017e jsme se vypo\u0159\u00e1dali s p\u0159\u00ed\u010dinami \u201erozp\u00edn\u00e1n\u00ed\u201c hlavn\u00edho slave, analytick\u00fd u\u017e byl mimo provoz ze stejn\u00e9ho d\u016fvodu. I kdy\u017e jsme m\u011bli dva dal\u0161\u00ed servery, na kter\u00e9 jsme pl\u00e1novali p\u0159esunout z\u00e1t\u011b\u017e v p\u0159\u00edpad\u011b hav\u00e1rie mastera, kv\u016fli otravn\u00e9 chyb\u011b se uk\u00e1zalo, \u017ee v kritick\u00e9m okam\u017eiku nen\u00ed \u017e\u00e1dn\u00fd.<\/p>\n<p>Ale proto\u017ee jsme d\u011blali nejen dump datab\u00e1ze (obnova v tu chv\u00edli trvala asi 5 hodin), ale tak\u00e9 snapshot master serveru, poda\u0159ilo se n\u00e1m spustit replikaci b\u011bhem 2 hodin. I kdy\u017e n\u00e1s po tom \u010dekalo nahr\u00e1v\u00e1n\u00ed replikace po dlouhou dobu (proto\u017ee proces prob\u00edh\u00e1 v jednovl\u00e1knov\u00e9m re\u017eimu, ale to je u\u017e \u00fapln\u011b jin\u00fd p\u0159\u00edb\u011bh).<\/p>\n<p>Jeliko\u017e jsme prov\u00e1d\u011bli nejen dump datab\u00e1ze (obnova na ten okam\u017eik trvala p\u0159ibli\u017en\u011b 5 hodin), ale i snapshot master serveru, poda\u0159ilo se n\u00e1m spustit replikaci b\u011bhem 2 hodin. Pravda, po tom n\u00e1s \u010dekalo n\u011bkolikahodinov\u00e9 p\u0159ehr\u00e1v\u00e1n\u00ed replikace (proto\u017ee proces prob\u00edh\u00e1 v jednovl\u00e1knov\u00e9m re\u017eimu, ale to u\u017e je \u00fapln\u011b jin\u00fd p\u0159\u00edb\u011bh).<\/p>\n<blockquote><p><strong>V\u00fdstup:<\/strong> Po takov\u00e9m incidentu bylo jasn\u00e9, \u017ee je pot\u0159eba vzd\u00e1t se praxe omezov\u00e1n\u00ed z\u00e1pisu pro u\u017eivatele a vyhl\u00e1sit cel\u00fd server jako pouze pro \u010dten\u00ed. P\u0159i takov\u00e9m p\u0159\u00edstupu si m\u016f\u017eete b\u00fdt jisti, \u017ee repliky budou k dispozici v kritick\u00fdchmomentech.<\/p><\/blockquote>\n<p><\/p>\n<h3>Optimalizace i jednoho n\u00e1ro\u010dn\u00e9ho dotazu m\u016f\u017ee \"vr\u00e1tit k \u017eivotu\" datab\u00e1zi.<\/h3>\n<p>\nI kdy\u017e neust\u00e1le aktualizujeme katalog na webu, dotazy, kter\u00e9 jsme sm\u011b\u0159ovali na Slave servery, vykazovaly m\u00edrn\u00e9 zpo\u017ed\u011bn\u00ed za Masterem. \u010cas, za kter\u00fd jsme objevili a odstranili probl\u00e9m \"n\u00e1hle poodstupuj\u00edc\u00edch\" slaves, byl del\u0161\u00ed ne\u017e \"psychologick\u00e1 bari\u00e9ra\" (b\u011bhem t\u00e9to doby mohlo doj\u00edt k aktualizaci cen a klienti by vid\u011bli zastaral\u00e9 \u00fadaje), a byli jsme nuceni p\u0159epnout v\u0161echny dotazy na hlavn\u00ed datab\u00e1zov\u00fd server. V\u00fdsledkem bylo, \u017ee web fungoval pomalu... ale alespo\u0148 fungoval. A zat\u00edmco se Slave zotavoval, nic jin\u00e9ho n\u00e1m nezbylo ne\u017e optimalizace.\u00a0<\/p>\n<p>Zat\u00edmco se Slave servery zotavovaly, minuty se t\u00e1hly pomalu, Master byl p\u0159et\u00ed\u017een a my jsme soust\u0159edili v\u0161echny s\u00edly na optimalizaci aktivn\u00edch \u00faloh podle \"Pravidla Paretova\": vybrali jsme TOP dotazy, kter\u00e9 zp\u016fsobovaly v\u011bt\u0161inu z\u00e1t\u011b\u017ee, a za\u010dali ladit. To se d\u011blalo p\u0159\u00edmo \"za letu\".<\/p>\n<p>Zaj\u00edmav\u00fd efekt spo\u010d\u00edval v tom, \u017ee MySQL, kter\u00e9 bylo p\u0159epln\u011bn\u00e9, reagovalo na i sebemen\u0161\u00ed zlep\u0161en\u00ed proces\u016f. Optimalizace p\u00e1r dotaz\u016f, kter\u00e9 zp\u016fsobovaly pouze 5 % celkov\u00e9 z\u00e1t\u011b\u017ee, u\u017e prok\u00e1zala viditeln\u00e9 uvoln\u011bn\u00ed CPU. V d\u016fsledku toho jsme byli schopni zajistit p\u0159ijatelnou rezervu zdroj\u016f pro pr\u00e1ci Mastera s datab\u00e1z\u00ed a z\u00edskat pot\u0159ebn\u00fd \u010das pro obnoven\u00ed replik.\u00a0<\/p>\n<blockquote><p><strong>V\u00fdstup:<\/strong> I mal\u00e9 optimalizace umo\u017e\u0148uj\u00ed \"p\u0159e\u017e\u00edt\" p\u0159i p\u0159et\u00ed\u017een\u00ed po dobu n\u011bkolika hodin. To n\u00e1m p\u0159esn\u011b sta\u010dilo na \u010das pot\u0159ebn\u00fd k obnoven\u00ed server\u016f s replikami. Mimochodem, technickou str\u00e1nku optimalizace dotaz\u016f probereme v jednom z n\u00e1sleduj\u00edc\u00edch p\u0159\u00edsp\u011bvk\u016f. Tak se p\u0159ihlaste k na\u0161emu blogu, pokud by to pro v\u00e1s mohlo b\u00fdt u\u017eite\u010dn\u00e9.<\/p><\/blockquote>\n<p><\/p>\n<h3>Zajist\u011bte monitoring funk\u010dnosti partnersk\u00fdch slu\u017eeb.<\/h3>\n<p>\nZab\u00fdv\u00e1me se zpracov\u00e1n\u00edm objedn\u00e1vek od klient\u016f, a proto na\u0161e slu\u017eby neust\u00e1le spolupracuj\u00ed s extern\u00edmi API \u2013 co\u017e jsou br\u00e1ny pro odes\u00edl\u00e1n\u00ed SMS, platebn\u00ed platformy, syst\u00e9my routov\u00e1n\u00ed, geokodery, slu\u017eby FNS a mnoho dal\u0161\u00edch syst\u00e9m\u016f. A kdy\u017e zat\u00ed\u017een\u00ed za\u010dalo rychle r\u016fst, za\u010dali jsme nar\u00e1\u017eet na limity API na\u0161ich partner\u016f, o kter\u00fdch jsme p\u0159edt\u00edm ani neuva\u017eovali.<\/p>\n<p>Ne\u010dekan\u00e9 p\u0159ekro\u010den\u00ed kv\u00f3t partnersk\u00fdch slu\u017eeb m\u016f\u017ee v\u00e9st k v\u00fdpadk\u016fm va\u0161ich vlastn\u00edch. Mnoh\u00e1 API blokuj\u00ed klienty, kte\u0159\u00ed p\u0159ekra\u010duj\u00ed limity, a v n\u011bkter\u00fdch p\u0159\u00edpadech m\u016f\u017ee p\u0159ebytek po\u017eadavk\u016f p\u0159et\u00ed\u017eit produkci u partnera.\u00a0<\/p>\n<p>Nap\u0159\u00edklad v dob\u011b r\u016fstu po\u010dtu dod\u00e1vek prov\u00e1zej\u00edc\u00ed slu\u017eby nezvl\u00e1daly \u00fakoly jejich rozd\u011blen\u00ed a ur\u010dov\u00e1n\u00ed tras. V\u00fdsledkem bylo, \u017ee objedn\u00e1vky byly uskute\u010dn\u011bny, ale slu\u017eba vytv\u00e1\u0159ej\u00edc\u00ed trasu nefungovala. Je t\u0159eba \u0159\u00edct, \u017ee na\u0161i logistici ud\u011blali prakticky nemo\u017en\u00e9 za t\u011bchto podm\u00ednek, a jasn\u00e1 spolupr\u00e1ce t\u00fdmu pomohla kompenzovat do\u010dasn\u00e9 v\u00fdpadky slu\u017eeb. Ale takov\u00e9 mno\u017estv\u00ed \u017e\u00e1dost\u00ed nen\u00ed mo\u017en\u00e9 neust\u00e1le zpracov\u00e1vat ru\u010dn\u011b, a po n\u011bjak\u00e9 dob\u011b bychom se setkali s nep\u0159ijateln\u00fdm rozpor mezi objedn\u00e1vkami a jejich pln\u011bn\u00edm.\u00a0<\/p>\n<p>Byl p\u0159ijat celkov\u00fd sled organiza\u010dn\u00edch opat\u0159en\u00ed a sou\u010dinn\u00e1 pr\u00e1ce kolektivu pomohla z\u00edskat \u010das, zat\u00edmco jsme vyjedn\u00e1vali o nov\u00fdch podm\u00ednk\u00e1ch a \u010dekali na modernizaci slu\u017eeb od n\u011bkter\u00fdch partner\u016f. Existuj\u00ed tak\u00e9 jin\u00e1 API, kter\u00e1 pot\u011b\u0161\u00ed vysokou odolnost\u00ed a neuv\u011b\u0159iteln\u00fdmi sazbami v p\u0159\u00edpad\u011b vysok\u00e9ho provozu. Nap\u0159\u00edklad zpo\u010d\u00e1tku jsme pou\u017e\u00edvali jedno zn\u00e1m\u00e9 mapov\u00e9 API pro ur\u010dov\u00e1n\u00ed adresy m\u00edsta dod\u00e1n\u00ed. Ale na konci m\u011bs\u00edce jsme dostali \u00fa\u010det t\u00e9m\u011b\u0159 na 2 miliony rubl\u016f. Po tom jsme se rozhodli jej rychle nahradit. Nebudu se v\u011bnovat reklam\u011b, ale \u0159eknu, \u017ee na\u0161e n\u00e1klady se v\u00fdrazn\u011b sn\u00ed\u017eily. <br \/>\n<img decoding=\"async\" alt=\"Jak jsme zvl\u00e1dli n\u00e1hl\u00fd desetin\u00e1sobn\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme si z toho vzali.\" src=\"\/wp-content\/uploads\/2020\/05\/17f821051ec5fe2786e1b29cc2b057f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p><strong>V\u00fdstup: <\/strong>Je nutn\u00e9 neust\u00e1le monitorovat podm\u00ednky pr\u00e1ce v\u0161ech partnersk\u00fdch slu\u017eeb a m\u00edt je na pam\u011bti. I kdy\u017e se m\u016f\u017ee dnes zd\u00e1t, \u017ee maj\u00ed \"velkou rezervu\", to neznamen\u00e1, \u017ee z\u00edtra se nestanou p\u0159ek\u00e1\u017ekou r\u016fstu. A samoz\u0159ejm\u011b, je lep\u0161\u00ed domluvit se na finan\u010dn\u00edch podm\u00ednk\u00e1ch zv\u00fd\u0161en\u00fdch po\u017eadavk\u016f na slu\u017ebu p\u0159edem.\u00a0<\/p><\/blockquote>\n<p><\/p>\n<h3>N\u011bkdy se st\u00e1v\u00e1, \u017ee \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=KWPjQiwz-cM\">pot\u0159eba v\u00edce zlata<\/a><\/noindex>\" (c) nepom\u00e1h\u00e1<\/h3>\n<p>\nJsme zvykl\u00ed na \u201e\u00fazk\u00e1 m\u00edsta\u201c v hlavn\u00ed datab\u00e1zi nebo na aplika\u010dn\u00edch serverech, ale p\u0159i \u0161k\u00e1lov\u00e1n\u00ed se probl\u00e9my mohou projevit i tam, kde je neo\u010dek\u00e1v\u00e1me. Pro fulltextov\u00e9 vyhled\u00e1v\u00e1n\u00ed na na\u0161em webu pou\u017e\u00edv\u00e1me engine Apache Solr. S n\u00e1r\u016fstem z\u00e1t\u011b\u017ee jsme zaznamenali pokles doby odezvy a zat\u00ed\u017een\u00ed procesoru serveru dos\u00e1hlo 100 %. Co m\u016f\u017ee b\u00fdt jednodu\u0161\u0161\u00ed \u2014 d\u00e1me kontejneru s Solr v\u00edce prost\u0159edk\u016f.<\/p>\n<p>M\u00edsto o\u010dek\u00e1van\u00e9ho n\u00e1r\u016fstu v\u00fdkonu server jednodu\u0161e \u201eum\u0159el\u201c. Okam\u017eit\u011b se zat\u00ed\u017eil na 100 % a reagoval je\u0161t\u011b pomaleji. P\u016fvodn\u011b jsme m\u011bli 2 j\u00e1dra a 2 GB RAM. Rozhodli jsme se ud\u011blat to, co obvykle pom\u00e1h\u00e1 \u2014 dali jsme serveru 8 jader a 32 GB. V\u0161echno se stalo mnohem hor\u0161\u00ed (jak a pro\u010d, vysv\u011btl\u00edme v samostatn\u00e9m p\u0159\u00edsp\u011bvku).\u00a0<\/p>\n<p>B\u011bhem n\u011bkolika dn\u00ed jsme pronikli do detail\u016f t\u00e9to v\u011bci a dos\u00e1hli optim\u00e1ln\u00edho v\u00fdkonu p\u0159i 8 j\u00e1drech a 32 GB. Tato konfigurace n\u00e1m umo\u017e\u0148uje i nad\u00e1le zvy\u0161ovat z\u00e1t\u011b\u017e, co\u017e je velmi d\u016fle\u017eit\u00e9, proto\u017ee r\u016fst prob\u00edh\u00e1 nejen u klient\u016f, ale i u po\u010dtu p\u0159ipojen\u00fdch obchod\u016f \u2014 b\u011bhem 2 m\u011bs\u00edc\u016f se jejich po\u010det zdvojn\u00e1sobil.\u00a0<\/p>\n<blockquote><p><strong>V\u00fdstup: <\/strong>Standardn\u00ed metody jako \u201ep\u0159id\u00e1n\u00ed v\u00edce hardwaru\u201c nefunguj\u00ed v\u017edy. Tak\u017ee p\u0159i \u0161k\u00e1lov\u00e1n\u00ed jak\u00e9hokoli slu\u017eby je d\u016fle\u017eit\u00e9 dob\u0159e rozum\u011bt, jak vyu\u017e\u00edv\u00e1 zdroje, a p\u0159edem testovat jej\u00ed fungov\u00e1n\u00ed v nov\u00fdch podm\u00ednk\u00e1ch.\u00a0\n<\/p><\/blockquote>\n<p><\/p>\n<h3>Stateless \u2014 kl\u00ed\u010d k jednoduch\u00e9mu horizont\u00e1ln\u00edmu \u0161k\u00e1lov\u00e1n\u00ed<\/h3>\n<p>\nCelkov\u011b se n\u00e1\u0161 t\u00fdm dr\u017e\u00ed zn\u00e1m\u00e9ho p\u0159\u00edstupu: slu\u017eby by nem\u011bly m\u00edt vnit\u0159n\u00ed stav (stateless) a m\u011bly by b\u00fdt nez\u00e1visl\u00e9 na prost\u0159ed\u00ed, ve kter\u00e9m b\u011b\u017e\u00ed. To n\u00e1m umo\u017enilo sn\u00e1\u0161et n\u00e1r\u016fst z\u00e1t\u011b\u017ee jednoduch\u00fdm horizont\u00e1ln\u00edm \u0161k\u00e1lov\u00e1n\u00edm. M\u011bli jsme v\u0161ak jednu v\u00fdjimku \u2013 zpracovatele dlouh\u00fdch pozad\u00ed \u00faloh. Ten se zab\u00fdval odes\u00edl\u00e1n\u00edm e-mail\u016f a SMS, zpracov\u00e1n\u00edm ud\u00e1lost\u00ed, generov\u00e1n\u00edm feed\u016f, importem cen a sklad\u016f a zpracov\u00e1n\u00edm obr\u00e1zk\u016f. Tak se stalo, \u017ee byl z\u00e1visl\u00fd na lok\u00e1ln\u00edm souborov\u00e9m \u00falo\u017ei\u0161ti a existoval v jedin\u00e9 instanci.\u00a0<\/p>\n<p>Kdy\u017e vzrostl po\u010det \u00faloh ve front\u011b zpracovatele (co\u017e se p\u0159irozen\u011b stalo s r\u016fstem po\u010dtu objedn\u00e1vek), v\u00fdkon hostitele, na kter\u00e9m b\u011b\u017eel zpracovatel a \u00falo\u017ei\u0161t\u011b soubor\u016f, se stal limituj\u00edc\u00edm faktorem. V d\u016fsledku toho se zastavilo aktualizov\u00e1n\u00ed sortimentu a cen, odes\u00edl\u00e1n\u00ed notifikac\u00ed u\u017eivatel\u016fm a mnoho dal\u0161\u00edch kritick\u00fdch funkc\u00ed, kter\u00e9 uv\u00edzly ve front\u011b. T\u00fdm ops rychle migroval \u00falo\u017ei\u0161t\u011b soubor\u016f do S3-podobn\u00e9ho s\u00ed\u0165ov\u00e9ho \u00falo\u017ei\u0161t\u011b, co\u017e n\u00e1m umo\u017enilo nasadit n\u011bkolik v\u00fdkonn\u00fdch stroj\u016f pro \u0161k\u00e1lov\u00e1n\u00ed zpracovatele pozad\u00ed.<\/p>\n<blockquote><p><strong>V\u00fdstup: <\/strong>Pravidlo Stateless je nutn\u00e9 dodr\u017eovat pro v\u0161echny komponenty bez v\u00fdjimky, i kdy\u017e se zd\u00e1, \u017ee 'se tu ur\u010dit\u011b nezasekneme'. Rad\u011bji investujte trochu \u010dasu do spr\u00e1vn\u00e9 organizace pr\u00e1ce v\u0161ech syst\u00e9m\u016f, ne\u017e abyste pak ve sp\u011bchu p\u0159episovali k\u00f3d a opravovali slu\u017ebu, kter\u00e1 za\u017e\u00edv\u00e1 p\u0159et\u00ed\u017een\u00ed.<\/p><\/blockquote>\n<p><\/p>\n<h2>7 princip\u016f pro intenzivn\u00ed r\u016fst<\/h2>\n<p>\nNavzdory dostupnosti dal\u0161\u00edch kapacit jsme v pr\u016fb\u011bhu r\u016fstu narazili na n\u011bkolik probl\u00e9m\u016f. Po\u010det objedn\u00e1vek se za tuto dobu zv\u00fd\u0161il v\u00edce ne\u017e \u010dty\u0159ikr\u00e1t. Nyn\u00ed u\u017e denn\u011b doru\u010dujeme v\u00edce ne\u017e 17 000 objedn\u00e1vek v 62 m\u011bstech a pl\u00e1nujeme je\u0161t\u011b v\u00edce roz\u0161\u00ed\u0159it na\u0161e geografick\u00e9 pokryt\u00ed - v prvn\u00ed polovin\u011b roku 2020 o\u010dek\u00e1v\u00e1me spu\u0161t\u011bn\u00ed slu\u017eby po cel\u00e9 Evrop\u011b. Abyste se vyrovnali se rostouc\u00edm zat\u00ed\u017een\u00edm, a to i s ohledem na ji\u017e nabyt\u00e9 zku\u0161enosti, stanovili jsme si 7 z\u00e1kladn\u00edch princip\u016f fungov\u00e1n\u00ed v podm\u00ednk\u00e1ch st\u00e1l\u00e9ho r\u016fstu:<\/p>\n<ol>\n<li><strong>Incident management<\/strong>. Vytvo\u0159ili jsme desku v Jira, kde je ka\u017ed\u00fd incident zaznamen\u00e1n jako tiket. To pom\u016f\u017ee fakticky prioritizovat a vykon\u00e1vat \u00fakoly souvisej\u00edc\u00ed s incidentem. V podstat\u011b nen\u00ed d\u011bsiv\u00e9 ud\u011blat chybu - d\u011bsiv\u00e9 je ud\u011blat stejnou chybu dvakr\u00e1t. Pro p\u0159\u00edpady, kdy se incidenty opakuj\u00ed d\u0159\u00edve, ne\u017e se poda\u0159\u00ed odstranit p\u0159\u00ed\u010dinu, by m\u011bla b\u00fdt p\u0159ipravena instrukce k akci, proto\u017ee b\u011bhem vysok\u00e9 z\u00e1t\u011b\u017ee je d\u016fle\u017eit\u00e9 reagovat bleskov\u011b.<\/li>\n<li><strong>Monitoring <\/strong>je vy\u017eadov\u00e1n pro v\u0161echny prvky infrastruktury bez v\u00fdjimky. Pr\u00e1v\u011b d\u00edky n\u011bmu jsme byli schopni p\u0159edpov\u011bd\u011bt n\u00e1r\u016fst zat\u00ed\u017een\u00ed a spr\u00e1vn\u011b vybrat \"\u00fazk\u00e1 m\u00edsta\" pro priorizaci odstran\u011bn\u00ed. P\u0159i vysok\u00e9m zat\u00ed\u017een\u00ed se pravd\u011bpodobn\u011b rozbije nebo za\u010dne zpomalovat v\u0161echno, co by v\u00e1s v\u016fbec nenapadlo. Proto je nejlep\u0161\u00ed vytv\u00e1\u0159et nov\u00e9 alarmy hned po prvn\u00edch incidentech, abychom je monitorovali a p\u0159edv\u00eddali.<\/li>\n<li><strong>Spr\u00e1vn\u00e9 alarmy<\/strong> jsou naprosto nezbytn\u00e9 p\u0159i rychl\u00e9m n\u00e1r\u016fstu zat\u00ed\u017een\u00ed. Za prv\u00e9, m\u011bly by hl\u00e1sit, co p\u0159esn\u011b se rozbilo. Za druh\u00e9, alarm\u016f by nem\u011blo b\u00fdt mnoho, proto\u017ee p\u0159em\u00edra nekritick\u00fdch alarm\u016f vede k ignorov\u00e1n\u00ed v\u0161ech upozorn\u011bn\u00ed obecn\u011b.<\/li>\n<li><strong>Aplikace by m\u011bly b\u00fdt stateless. <\/strong>Ujistili jsme se, \u017ee pro toto pravidlo by nem\u011bly existovat \u017e\u00e1dn\u00e9 v\u00fdjimky. Je nutn\u00e1 \u00fapln\u00e1 nez\u00e1vislost na b\u011bhov\u00e9m prost\u0159ed\u00ed. Pro to m\u016f\u017eete uchov\u00e1vat sd\u00edlen\u00e1 data v DB nebo nap\u0159\u00edklad p\u0159\u00edmo v S3. Je\u0161t\u011b l\u00e9pe je \u0159\u00eddit se pravidly<noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/ru\/\"> https:\/\/12factor.net<\/a><\/noindex>. B\u011bhem rychl\u00e9ho n\u00e1r\u016fstu nen\u00ed \u010das na optimalizaci k\u00f3du a s n\u00e1kladem se mus\u00edte vypo\u0159\u00e1dat p\u0159\u00edm\u00fdm zv\u00fd\u0161en\u00edm v\u00fdpo\u010detn\u00edch zdroj\u016f a horizont\u00e1ln\u00edm \u0161k\u00e1lov\u00e1n\u00edm.<\/li>\n<li><strong>Kv\u00f3ty a v\u00fdkon extern\u00edch slu\u017eeb. <\/strong>P\u0159i rychl\u00e9m n\u00e1r\u016fstu m\u016f\u017ee probl\u00e9m vzniknout nejen ve va\u0161\u00ed infrastruktu\u0159e, ale i v extern\u00ed slu\u017eb\u011b. Nejd\u011bsiv\u011bj\u0161\u00ed je, kdy\u017e k tomu dojde ne kv\u016fli selh\u00e1n\u00ed, ale kv\u016fli dosa\u017een\u00ed kv\u00f3t nebo limit\u016f. Extern\u00ed slu\u017eby by se m\u011bly \u0161k\u00e1lovat stejn\u011b dob\u0159e, jak se \u0161k\u00e1lujete vy sami.\u00a0<\/li>\n<li><strong>D\u011blen\u00ed proces\u016f a front. <\/strong>To velmi pom\u00e1h\u00e1, kdy\u017e se na jednom z bran stane zaseknut\u00ed. Nebyli bychom \u010delili zpo\u017ed\u011bn\u00edm v p\u0159enosu dat, kdyby zapln\u011bn\u00e9 fronty pro odes\u00edl\u00e1n\u00ed SMS nebr\u00e1nily v\u00fdm\u011bn\u011b ozn\u00e1men\u00ed mezi informa\u010dn\u00edmi syst\u00e9my. A tak\u00e9 by bylo snaz\u0161\u00ed zv\u00fd\u0161it po\u010det pracovn\u00edk\u016f, kdyby pracovali odd\u011blen\u011b.<\/li>\n<li><strong>Finan\u010dn\u00ed realita.<\/strong> Kdy\u017e doch\u00e1z\u00ed k explozivn\u00edmu n\u00e1r\u016fstu datov\u00fdch tok\u016f, nen\u00ed \u010das p\u0159em\u00fd\u0161let o tarifech a p\u0159edplatn\u00fdch. Ale je pot\u0159eba na n\u011b myslet, zejm\u00e9na pokud jste mal\u00e1 spole\u010dnost. Vysok\u00fd \u00fa\u010det m\u016f\u017ee vystavit vlastn\u00edk jak\u00e9hokoli API, stejn\u011b jako v\u00e1\u0161 poskytovatel hostingu. Tak\u017ee je d\u016fle\u017eit\u00e9 \u010d\u00edst smlouvy pe\u010dliv\u011b.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Z\u00e1v\u011br<\/h2>\n<p>\nNebyli jsme bez ztr\u00e1t, ale tento f\u00e1zi jsme p\u0159ekonali a dnes se sna\u017e\u00edme dr\u017eet v\u0161ech nalezen\u00fdch z\u00e1sad, p\u0159i\u010dem\u017e ka\u017ed\u00e9 za\u0159\u00edzen\u00ed m\u00e1 mo\u017enost snadn\u00e9ho zv\u00fd\u0161en\u00ed v\u00fdkonu a\u017e 4x, abychom zvl\u00e1dli n\u011bkter\u00e9 ne\u010dekan\u00e9 situace.\u00a0<\/p>\n<p>V p\u0159\u00ed\u0161t\u00edch p\u0159\u00edsp\u011bvc\u00edch se pod\u011bl\u00edme o sv\u00e9 zku\u0161enosti s vy\u0161et\u0159ov\u00e1n\u00edm poklesu v\u00fdkonu v Apache Solr a tak\u00e9 se zam\u011b\u0159\u00edme na optimalizaci dotaz\u016f a na to, jak spolupr\u00e1ce s FNS pom\u00e1h\u00e1 firm\u011b \u0161et\u0159it pen\u00edze. Sledujte n\u00e1\u0161 blog, abyste nic nezme\u0161kali, a pod\u011blte se v koment\u00e1\u0159\u00edch o va\u0161e podobn\u00e9 nep\u0159\u00edjemnosti b\u011bhem r\u016fstu provozu.<\/p>\n<p><img decoding=\"async\" alt=\"Jak jsme zvl\u00e1dli n\u00e1hl\u00fd desetin\u00e1sobn\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme si z toho vzali.\" src=\"\/wp-content\/uploads\/2020\/05\/fdc2a770333c6ec1df83cea302c78254.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p class=\"for_users_only_msg\">Pouze registrovan\u00ed u\u017eivatel\u00e9 se mohou \u00fa\u010dastnit ankety. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">P\u0159ihlaste se<\/a><\/noindex>, pros\u00edm.<\/p>\n<h2 class=\"default-block__polling-title\">Setkali jste se n\u011bkdy s zpomalen\u00edm \/ v\u00fdpadkem slu\u017eby p\u0159i n\u00e1hl\u00e9m n\u00e1r\u016fstu z\u00e1t\u011b\u017ee kv\u016fli:<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">55,6%<\/strong>Nemo\u017enosti rychle p\u0159idat v\u00fdpo\u010detn\u00ed zdroje10<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">16,7%<\/strong>Limit\u016fm infrastruktury hostingov\u00e9ho poskytovatele3<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">33,3%<\/strong>Limit\u016fm extern\u00edch API6<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">27,8%<\/strong>Poru\u0161en\u00ed princip\u016f stateless va\u0161ich aplikac\u00ed5<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">88,9%<\/strong>Neoptimizovanosti k\u00f3du vlastn\u00edch slu\u017eeb16<\/p>\n<\/li>\n<\/ul>\n<p>    Hlasovalo 18 u\u017eivatel\u016f. Zdr\u017eelo se 6 u\u017eivatel\u016f.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sbermarket\/blog\/504224\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043c\u044b \u043f\u0440\u043e\u0436\u0438\u043b\u0438 \u0432 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0438 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441\u043a\u0435\u0439\u043b\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0421\u0431\u0435\u0440\u041c\u0430\u0440\u043a\u0435\u0442 \u0432\u044b\u0440\u043e\u0441 \u0432 \u0437\u0430\u043a\u0430\u0437\u0430\u0445 \u0432 4 \u0440\u0430\u0437\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 17 \u043d\u043e\u0432\u044b\u0445 \u0433\u043e\u0440\u043e\u0434\u0430\u0445. \u0412\u0437\u0440\u044b\u0432\u043d\u043e\u0439 \u0440\u043e\u0441\u0442 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b \u043e\u0442 \u043d\u0430\u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u041e \u0441\u0430\u043c\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0432\u044b\u0432\u043e\u0434\u0430\u0445 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83189,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83188","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043c\u044b \u043f\u0440\u043e\u0436\u0438\u043b\u0438 \u0432 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0438 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441\u043a\u0435\u0439\u043b\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 \u0440\u0435\u0437\u043a\u0438\u0439 \u0440\u043e\u0441\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 x10 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043a\u0435 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043c\u044b \u043f\u0440\u043e\u0436\u0438\u043b\u0438 \u0432 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0438 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441\u043a\u0435\u0439\u043b\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-29T05:43:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-29T05:43:02+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak jsme p\u0159e\u017eili n\u00e1hl\u00fd n\u00e1r\u016fst z\u00e1t\u011b\u017ee x10 na d\u00e1lku a jak\u00e9 z\u00e1v\u011bry jsme u\u010dinili | ProHoster","description":"Ahoj, Habr! Posledn\u00ed dva m\u011bs\u00edce jsme pro\u017eili v velmi zaj\u00edmav\u00e9 situaci a cht\u011bl bych se pod\u011blit o n\u00e1\u0161 p\u0159\u00edb\u011bh o \u0161k\u00e1lov\u00e1n\u00ed infrastruktury.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 \u0440\u0435\u0437\u043a\u0438\u0439 \u0440\u043e\u0441\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 x10 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043a\u0435 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043c\u044b \u043f\u0440\u043e\u0436\u0438\u043b\u0438 \u0432 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0438 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441\u043a\u0435\u0439\u043b\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-my-perezhili-rezkij-rost-nagruzki-x10-na-udalenke-i-kakie-vyvody-sdelali","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-29T05:43:02+00:00","article:modified_time":"2020-05-29T05:43:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83188","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:23:30","updated":"2022-10-05 13:38:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/83188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=83188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/83188\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/83189"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=83188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=83188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=83188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}