{"id":53442,"date":"2019-12-02T00:00:00","date_gmt":"2019-12-01T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/legacy-servisy-v-vashej-infrastrukture"},"modified":"2020-02-18T14:01:20","modified_gmt":"2020-02-18T11:01:20","slug":"legacy-servisy-v-vashej-infrastrukture","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"Legacy slu\u017eby ve va\u0161\u00ed infrastruktu\u0159e","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj! Jmenuji se Pa\u0161a \u010cernjak, jsem hlavn\u00ed v\u00fdvoj\u00e1\u0159 v QIWI a dnes chci mluvit o nevyhnuteln\u00e9m. O Legacy.<\/p>\n<p>Za\u010dn\u011bme ot\u00e1zkou: co je to Legacy slu\u017eba? Legacy slu\u017eba je slu\u017eba, kterou v\u00fdvoj\u00e1\u0159 u\u017e t\u00fdden\/m\u011bs\u00edc\/rok neaktualizoval? Nebo je to slu\u017eba napsan\u00e1 m\u00e9n\u011b zku\u0161en\u00fdm program\u00e1torem, nap\u0159\u00edklad v\u00e1mi, ale p\u0159ed rokem? A nyn\u00ed jste lep\u0161\u00ed a zku\u0161en\u011bj\u0161\u00ed. Nebo snad Legacy slu\u017eba je ta, kterou jste se rozhodli u\u017e nikdy neaktualizovat a postupn\u011b p\u0159ipravujete jej\u00ed n\u00e1hradu? V ka\u017ed\u00e9m p\u0159\u00edpad\u011b, nechat takovou slu\u017ebu bez dohledu a neaktualizovat ji \u2014 to je \u010dasovan\u00e1 bomba, kter\u00e1 m\u016f\u017ee v budoucnu vybuchnout.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"Legacy slu\u017eby ve va\u0161\u00ed infrastruktu\u0159e\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Ne\u017e se pust\u00edme do toho, jak v QIWI pracujeme s na\u0161imi Legacy slu\u017ebami, pov\u00edm v\u00e1m, jak jsme ud\u011blali po\u0159\u00e1dek se slu\u017ebami v Pen\u011b\u017eence. Jsem ji\u017e dva roky odpov\u011bdn\u00fd za jej\u00ed funk\u010dnost. Pokud nastane n\u011bjak\u00fd probl\u00e9m, v\u017edy mi zavolaj\u00ed jako prvn\u00ed. Obvykle nem\u00e1m odvahu volat n\u011bkomu jin\u00e9mu ve 23 hodin, tak\u017ee jsem se musel usadit a vy\u0159\u00eddit v\u0161echny slu\u017eby na\u0161eho dom\u00e9nov\u00e9ho jm\u00e9na. <\/p>\n<p>Ale j\u00e1, jako ka\u017ed\u00fd \u010dlov\u011bk, r\u00e1d sp\u00edm v noci, tak\u017ee jsem se sna\u017eil vy\u0159e\u0161it provoz: \u201eChlapi, pro\u010d mi vol\u00e1te?\u201c. Na co\u017e jsem dostal celkem lakonickou odpov\u011b\u010f: \u201eA komu jin\u00e9mu?\u201c. Proto\u017ee j\u00e1 slu\u017eby oprav\u00edm, a nav\u00edc kluci prost\u011b nev\u011bd\u00ed, komu zavolat.<\/p>\n<p>Na jedn\u00e9 z retrospektiv t\u00fdmu backendu Pen\u011b\u017eenky jsme se rozhodli, \u017ee pot\u0159ebujeme vytvo\u0159it tabulku, kter\u00e1 bude obsahovat seznam na\u0161ich slu\u017eeb, mikroslu\u017eeb a monolit\u016f pen\u011b\u017eenky spolu s odpov\u011bdn\u00fdmi osobami. Tabulky jsou obecn\u011b u\u017eite\u010dn\u00e9, v rozumn\u00fdch mez\u00edch.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKrom\u011b informac\u00ed o tom, kdo za co odpov\u00edd\u00e1, tam byly odpov\u011bdi na ot\u00e1zky: kdo je vlastn\u00edk slu\u017eby, kdo je odpov\u011bdn\u00fd za jej\u00ed rozvoj, architekturu a \u017eivotn\u00ed cyklus. Lid\u00e9, kte\u0159\u00ed jsou za tuto slu\u017ebu zodpov\u011bdn\u00ed \u2014 to jsou lid\u00e9, kte\u0159\u00ed ji mohou v p\u0159\u00edpad\u011b pot\u0159eby opravit. Vlastn\u00edk slu\u017eby m\u00e1 pr\u00e1vo ponechat +2 v commitech, zodpov\u011bdn\u00ed se tak\u00e9 mus\u00ed nutn\u011b z\u00fa\u010dastnit revize, ne\u017e tato slu\u017eba p\u0159ijme nov\u00fd commit.<\/p>\n<p>\u010cas plynul, za\u010daly se uplat\u0148ovat nov\u00e9 praktiky, nap\u0159\u00edklad migrace do Kubernetes, r\u016fzn\u00e9 checkstyle, spotbugs, ktlint, existence log\u016f v Kibana, autodiscovery slu\u017eeb nam\u00edsto p\u0159\u00edm\u00e9ho zad\u00e1v\u00e1n\u00ed adres a dal\u0161\u00ed u\u017eite\u010dnosti. A v\u0161ude na\u0161e tabulka umo\u017e\u0148ovala udr\u017eovat aktu\u00e1lnost na\u0161ich slu\u017eeb. Pro n\u00e1s to byl jak\u00fdsi checklist, kter\u00fd \u0159\u00edkal, \u017ee tato slu\u017eba tohle um\u00ed, ale toto zat\u00edm ne. Ale \u0161li jsme d\u00e1l, uv\u011bdomuj\u00edc si, \u017ee n\u00e1m chyb\u00ed informace o na\u0161ich slu\u017eb\u00e1ch, kter\u00e9 sledujeme, kde le\u017e\u00ed zdrojov\u00e9 k\u00f3dy slu\u017eby, kde se spou\u0161t\u011bj\u00ed \u00fakoly pro sestaven\u00ed v TeamCity, jak se nasazuj\u00ed, kde se uchov\u00e1vaj\u00ed zdrojov\u00e9 k\u00f3dy end2end test\u016f, fotografie o architektu\u0159e, o p\u0159ijat\u00fdch rozhodnut\u00edch. Ide\u00e1ln\u011b bychom cht\u011bli, aby v\u0161echny tyto informace n\u011bkde le\u017eely a byly po ruce, kdy\u017e je pot\u0159eba. Proto se na\u0161e tabulka stala v\u00fdchoz\u00edm bodem pro hled\u00e1n\u00ed informac\u00ed.<\/p>\n<p>Ale QIWI, i kdy\u017e si zachov\u00e1v\u00e1 ducha startupu, je velk\u00e1 spole\u010dnost. U\u017e m\u00e1me 12 let a t\u00fdmy se m\u011bn\u00ed: lid\u00e9 odch\u00e1zej\u00ed, lid\u00e9 p\u0159ich\u00e1zej\u00ed, formuj\u00ed se nov\u00e9 t\u00fdmy. A zjistili jsme na sv\u00e9m dom\u00e9n\u011b n\u011bkolik slu\u017eeb, kter\u00e9 jsme zd\u011bdili. N\u011bco p\u0159i\u0161lo s v\u00fdvoj\u00e1\u0159i z jin\u00fdch t\u00fdm\u016f, n\u011bco se prost\u011b n\u011bjak nep\u0159\u00edmo vztahovalo k Pen\u011b\u017eence, tak\u017ee slu\u017eba nyn\u00ed z\u016fst\u00e1v\u00e1 na na\u0161em rozpo\u010dtu. Pro\u010d se zab\u00fdvat t\u00edm, co a jak funguje? Slu\u017eba funguje, a m\u00e1me produktov\u00e9 funkce, kter\u00e9 je nutn\u00e9 ur\u010dit\u011b implementovat.<\/p>\n<h2>Jak to b\u00fdv\u00e1<\/h2>\n<p>\nAle v ur\u010dit\u00e9m okam\u017eiku zjist\u00edme, \u017ee slu\u017eba p\u0159estala plnit svou funkci, n\u011bco se pokazilo \u2014 co d\u011blat v takov\u00e9 situaci? Slu\u017eba prost\u011b p\u0159estala fungovat. \u00dapln\u011b. A zjistili jsme o tom, p\u0159edev\u0161\u00edm n\u00e1hodou, a za druh\u00e9, a\u017e po \u0161esti m\u011bs\u00edc\u00edch. Tak to b\u00fdv\u00e1. Jedin\u00e9, co jsme v\u011bd\u011bli \u2014 na jak\u00fdch virtu\u00e1ln\u00edch stroj\u00edch je slu\u017eba nasazena, kde le\u017e\u00ed jej\u00ed zdrojov\u00e9 k\u00f3dy, a to je v\u0161echno. Ud\u011bl\u00e1me git clone a pono\u0159\u00edme se do my\u0161lenek \u010dlov\u011bka, kter\u00fd to psal p\u0159ed n\u011bkolika lety, ale co vid\u00edme? \u017d\u00e1dn\u00fd n\u00e1m zn\u00e1m\u00fd Spring Boot, i kdy\u017e jsme si na v\u0161echno zvykli, m\u00e1me p\u0159ece full stack a n\u011bco podobn\u00e9ho. Mo\u017en\u00e1 tam je Spring Framework? A ukazuje se, \u017ee ne.<\/p>\n<p>Chlapec, kter\u00fd to v\u0161echno napsal, byl p\u0159\u00edsn\u00fd a psal v\u0161e \u010dist\u011b v Jav\u011b. Pro v\u00fdvoj\u00e1\u0159e nen\u00ed obvykl\u00fdch n\u00e1stroj\u016f a vznik\u00e1 my\u0161lenka \u2014 bylo by dobr\u00e9 to v\u0161echno p\u0159epsat. V\u017edy\u0165 m\u00e1me mikroservisy, a z ka\u017ed\u00e9ho toasteru se oz\u00fdv\u00e1 pov\u011bdom\u00e9 \"Chlapci, mikroservisy jsou to, co pot\u0159ebujete!\". Pokud se n\u00e1hodou n\u011bco pokaz\u00ed, m\u016f\u017eete si v klidu vz\u00edt jak\u00fdkoli jazyk a v\u0161echno bude skv\u011bl\u00e9.<\/p>\n<p>Zaj\u00edmav\u00e9 je, \u017ee te\u010f nem\u00e1me zadavatele, kter\u00fd by byl zodpov\u011bdn\u00fd za tuto slu\u017ebu. Jak\u00e9 m\u011bl obchodn\u00ed po\u017eadavky, co by tato slu\u017eba m\u011bla vlastn\u011b d\u011blat? A slu\u017eba je \u00fazce integrov\u00e1na do va\u0161ich obchodn\u00edch proces\u016f. <\/p>\n<p>A te\u010f mi \u0159ekn\u011bte, jak jednoduch\u00e9 je p\u0159epsat slu\u017ebu, kdy\u017e nezn\u00e1te jej\u00ed obchodn\u00ed po\u017eadavky? Jak se loguje slu\u017eba, nen\u00ed jasn\u00e9, jestli existuj\u00ed n\u011bjak\u00e9 metriky \u2014 to tak\u00e9 nev\u00edme. Jak\u00e9 jsou, pokud n\u011bjak\u00e9 existuj\u00ed \u2014 t\u00edm m\u00e9n\u011b v\u00edme. A p\u0159itom v slu\u017eb\u011b je obrovsk\u00e9 mno\u017estv\u00ed t\u0159\u00edd s nejasnou obchodn\u00ed logikou. N\u011bco se ukl\u00e1d\u00e1 do n\u011bjak\u00e9 datab\u00e1ze, o kter\u00e9 zat\u00edm tak\u00e9 nic nev\u00edme. <\/p>\n<h2>Kde za\u010d\u00edt?<\/h2>\n<p>\nOd toho nejlogi\u010dt\u011bj\u0161\u00edho \u2014 od existence test\u016f. Tam je obvykle naps\u00e1na alespo\u0148 n\u011bjak\u00e1 logika a m\u016f\u017eeme u\u010dinit z\u00e1v\u011bry o tom, co se d\u011bje. Te\u010f je popul\u00e1rn\u00ed TDD, ale vid\u00edme, \u017ee p\u0159ed p\u011bti lety to bylo prakticky stejn\u00e9 jako te\u010f: t\u00e9m\u011b\u0159 \u017e\u00e1dn\u00e9 unit testy, a ty n\u00e1m tak\u00e9 nic ne\u0159eknou. No krom\u011b n\u011bjak\u00e9 kontroly, jak se podepisuje n\u011bjak\u00fd xml s n\u011bjak\u00fdm vlastn\u00edm certifik\u00e1tem.<\/p>\n<p>Nebylo mo\u017en\u00e9 pochopit nic podle k\u00f3du, a tak jsme se rozhodli pod\u00edvat, co se d\u011bje na virtu\u00e1ln\u00edm stroji. Otev\u0159eli jsme logy slu\u017eby a na\u0161li v nich chybu http klienta; samopodepsan\u00fd certifik\u00e1t, kter\u00fd byl zabudov\u00e1n do zdroj\u016f aplikace, byl bezmocn\u011b pro\u0161l\u00fd. Spojili jsme se s na\u0161imi analytiky, po\u017e\u00e1dali o nov\u00fd certifik\u00e1t, ten n\u00e1m byl vystaven a slu\u017eba znovu funguje. Zd\u00e1lo by se, \u017ee je t\u00edm v\u0161e vy\u0159e\u0161eno. Anebo ne? Slu\u017eba st\u00e1le funguje a pln\u00ed ur\u010ditou funkci, kterou pot\u0159ebujeme pro na\u0161e podnik\u00e1n\u00ed. M\u00e1me ur\u010dit\u00e9 standardy pro v\u00fdvoj aplikac\u00ed, kter\u00e9 pravd\u011bpodobn\u011b m\u00e1te tak\u00e9. Nap\u0159\u00edklad, neskladovat logy na nodu v adres\u00e1\u0159i, ale ukl\u00e1dat je do n\u011bjak\u00e9ho \u00falo\u017ei\u0161t\u011b, jako je Elastic, a sledovat je v Kibana. M\u016f\u017eeme zm\u00ednit tak\u00e9 zlat\u00e9 metriky. Tedy z\u00e1t\u011b\u017e na slu\u017ebu, po\u010det po\u017eadavk\u016f na slu\u017ebu, zda je \u017eiv\u00e1 \u010di nikoliv, jak prob\u00edh\u00e1 jej\u00ed HealthCheck. V nejlep\u0161\u00edm p\u0159\u00edpad\u011b tyto metriky pomohou zjistit, kdy ji lze s klidn\u00fdm sv\u011bdom\u00edm vy\u0159adit z provozu a zapomenout na ni jako na zl\u00fd sen.<\/p>\n<h2>Co d\u011blat<\/h2>\n<p>\nProto p\u0159id\u00e1v\u00e1me tuto starou slu\u017ebu do tabulky, a pak jdeme hledat mezi v\u00fdvoj\u00e1\u0159i dobrovoln\u00edky, kte\u0159\u00ed se t\u00e9 slu\u017eby ujmou a uvedou ji do po\u0159\u00e1dku: nap\u00ed\u0161ou alespo\u0148 n\u011bjak\u00e9 informace o slu\u017eb\u011b, p\u0159idaj\u00ed odkazy na dashboardy v Grafan\u011b, na \u00fakoly pro sestaven\u00ed, a pochop\u00ed, jak nasadit aplikaci, nebudou p\u0159ece ru\u010dn\u011b plnit soubory pomoc\u00ed FTP. <\/p>\n<p>Hlavn\u00ed je, jak dlouho tato u\u017eite\u010dn\u00e1 dobrovolnick\u00e1 aktivita zabere \u010dasu? Jeden sprint pro v\u00edce \u010di m\u00e9n\u011b zku\u0161en\u00e9ho v\u00fdvoj\u00e1\u0159e, nap\u0159\u00edklad, b\u011bhem 20% technick\u00e9ho dluhu. A kolik \u010dasu bylo pot\u0159eba k pochopen\u00ed cel\u00e9 zakotven\u00e9 logiky komunikace s n\u011bjak\u00fdm st\u00e1tn\u00edm syst\u00e9mem, zav\u00e9st jej na nov\u011bj\u0161\u00ed technologie? Na to se nezaru\u010duji, mo\u017en\u00e1 m\u011bs\u00edc, mo\u017en\u00e1 i dva pracovn\u00ed doby t\u00fdmu. To \u0159\u00edk\u00e1m na z\u00e1klad\u011b zku\u0161enost\u00ed s integrac\u00ed s n\u011bjakou novou slu\u017ebou v sou\u010dasn\u00e9 dob\u011b.<\/p>\n<p>Z\u00e1rove\u0148 v\u0161ak \u017e\u00e1dn\u00fd v\u00fdstup obchodn\u00ed hodnoty \u2014 v\u016fbec \u017e\u00e1dn\u00fd. Vz\u00edt slu\u017ebu pod podporu a utratit na to trochu \u010dasu \u2014 to je v po\u0159\u00e1dku. Ale po na\u0161ich standardn\u00edch tanc\u00edch se slu\u017ebou jsme ji p\u0159idali do tabulky, p\u0159idali o n\u00ed informace a mo\u017en\u00e1 ji n\u011bkdy p\u0159ep\u00ed\u0161eme. Ale te\u010f odpov\u00edd\u00e1 na\u0161im standard\u016fm pracovn\u00edch slu\u017eeb.<\/p>\n<p>Na z\u00e1v\u011br bych cht\u011bl shrnout ur\u010dit\u00e9 pl\u00e1ny, co d\u011blat se star\u00fdmi slu\u017ebami. <\/p>\n<p><b>P\u0159episovat legacy od nuly \u2014 \u0161patn\u00fd n\u00e1pad.<\/b><br \/>\nOpravdu, nen\u00ed t\u0159eba o tom p\u0159em\u00fd\u0161let. Je jasn\u00e9, \u017ee byste cht\u011bli, aby to m\u011blo n\u011bjak\u00e9 v\u00fdhody, ale obvykle to nikdo, v\u010detn\u011b v\u00e1s samotn\u00fdch, nepot\u0159ebuje.<\/p>\n<p><b>P\u0159\u00edru\u010dka<\/b><br \/>\nVykopejte zdrojov\u00e9 k\u00f3dy sv\u00fdch aplikac\u00ed, vytvo\u0159te p\u0159\u00edru\u010dku, ve kter\u00e9 bude uvedeno, co a kde le\u017e\u00ed a jak funguje. Tak\u00e9 tam zahr\u0148te popis projektu (podm\u00ednkov\u00fd readme.md), abyste rychle pochopili, kde jsou logy a metriky. V\u00fdvoj\u00e1\u0159, kter\u00fd se s t\u00edm po v\u00e1s bude zab\u00fdvat, v\u00e1m bude jen d\u011bkovat.<\/p>\n<p><b>Rozum\u011bjte dom\u00e9n\u011b<\/b><br \/>\nPokud vlastn\u00edte n\u011bjakou dom\u00e9nu, sna\u017ete se m\u00edt p\u0159ehled. Zn\u00ed to ban\u00e1ln\u011b, ano, ale ne ka\u017ed\u00fd sleduje to, aby slu\u017eby byly v jednotn\u00e9m stylu. A ve skute\u010dnosti je pr\u00e1ce v jednom standardu v\u00fdrazn\u011b jednodu\u0161\u0161\u00ed.<\/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\">Co d\u011bl\u00e1te se sv\u00fdm legacy?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>P\u0159episujeme to od nuly, to je spr\u00e1vn\u011b12<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">52.6%<\/strong>T\u00e9m\u011b\u0159 to sam\u00e9, co vy20<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>Nem\u00e1me \u017e\u00e1dn\u00e9 legacy, jsme skv\u011bl\u00ed4<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Nap\u00ed\u0161u to do koment\u00e1\u0159\u016f2<\/p>\n<\/li>\n<\/ul>\n<p>    Hlasovalo 38 u\u017eivatel\u016f. Zdr\u017eelo se 20 u\u017eivatel\u016f.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441? Legacy-\u0441\u0435\u0440\u0432\u0438\u0441 \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043a\u0430\u0441\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u043d\u0435\u0434\u0435\u043b\u044e\/\u043c\u0435\u0441\u044f\u0446\/\u0433\u043e\u0434? \u0418\u043b\u0438 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043c\u0435\u043d\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432\u0430\u043c\u0438, \u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434? \u0410 \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0432\u044b \u043a\u0440\u0443\u0447\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":53443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53442","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! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\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\/legacy-servisy-v-vashej-infrastrukture\" \/>\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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture\" \/>\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=\"2019-12-01T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:20+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\udd47Legacy slu\u017eby ve va\u0161\u00ed infrastruktu\u0159e | ProHoster","description":"Ahoj! Jmenuji se Pa\u0161a \u010cernyak, jsem vedouc\u00ed v\u00fdvoj\u00e1\u0159 v QIWI a dnes chci mluvit o nevyhnuteln\u00e9m. O Legacy. Za\u010dneme ot\u00e1zkou: co je to Legacy slu\u017eba?","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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":"2019-12-01T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53442","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":"2026-01-24 07:23:42","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:25:27","updated":"2026-01-24 07:23:42","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\/53442","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=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}