{"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\/ro\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"Servicii Legacy \u00een infrastructura dumneavoastr\u0103","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun\u0103! M\u0103 numesc Pa\u0219a Cernyak, sunt dezvoltator principal la QIWI, \u0219i ast\u0103zi vreau s\u0103 discut despre inevitabil. Despre Legacy.<\/p>\n<p>S\u0103 \u00eencepem cu o \u00eentrebare: ce este un serviciu Legacy? Este un serviciu la care dezvoltatorul nu a mai intervenit de o s\u0103pt\u0103m\u00e2n\u0103\/lun\u0103\/an? Sau este un serviciu scris de un programator mai pu\u021bin experimentat, de exemplu, de c\u0103tre tine, dar acum un an? Acum e\u0219ti mult mai bun \u0219i mai experimentat. Sau, de fapt, serviciul Legacy este acela pe care ai decis s\u0103 nu-l mai actualizezi niciodat\u0103 \u0219i, treptat, \u00eel preg\u0103te\u0219ti pentru \u00eenlocuire? \u00cen orice caz, l\u0103sarea unui astfel de serviciu neactualizat este o bomb\u0103 cu ceas care poate exploda mai t\u00e2rziu.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"Servicii Legacy \u00een infrastructura dumneavoastr\u0103\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\u00cenainte de a trece la modul \u00een care noi, la QIWI, ne gestion\u0103m serviciile Legacy, voi povesti cum am organizat serviciile din Portofel. De doi ani m\u0103 ocup de func\u021bionarea acestuia. Dac\u0103 exist\u0103 vreo problem\u0103, \u00eentotdeauna m\u0103 sun\u0103 prima dat\u0103 pe mine. De obicei, nu am \u00eendr\u0103zneala s\u0103 sun pe altcineva la ora 11 seara, a\u0219a c\u0103 a trebuit s\u0103 m\u0103 a\u0219ez \u0219i s\u0103 \u00eemi dau seama de toate serviciile domeniului nostru. <\/p>\n<p>Dar eu, ca orice om, \u00eemi place s\u0103 dorm noaptea, a\u0219a c\u0103 am \u00eencercat s\u0103 \u00een\u021beleg situa\u021bia: \u201eDe ce m\u0103 suna\u021bi pe mine?\u201d. La care am primit un r\u0103spuns destul de concis: \u201eCui altcuiva s\u0103-i spunem?\u201d. Pentru c\u0103 eu repar serviciile, iar b\u0103ie\u021bii pur \u0219i simplu nu \u0219tiu cui s\u0103 \u00eei telefoneze.<\/p>\n<p>Prin urmare, la una dintre retrospectivele echipei de backend a Portofelului, am decis c\u0103 trebuie s\u0103 facem un tabel cu lista serviciilor noastre, microservicelor \u0219i monolitilor din portofel, precum \u0219i cu persoanele responsabile pentru acestea. Tabelele sunt foarte utile, \u00een limite rezonabile.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPe l\u00e2ng\u0103 informa\u021biile despre cine este responsabil pentru ce, acolo erau \u0219i r\u0103spunsuri la \u00eentreb\u0103rile: cine este proprietarul serviciului, cine r\u0103spunde de dezvoltarea acestuia, de arhitectur\u0103 \u0219i de ciclul s\u0103u de via\u021b\u0103. Oamenii responsabili pentru acest serviciu sunt cei care pot s\u0103-l repare \u00een cazul \u00een care este nevoie. Proprietarul serviciului are dreptul de a l\u0103sa +2 \u00een commite, iar cei responsabili trebuie s\u0103 fie prezen\u021bi la revizuire \u00eenainte ca acest serviciu s\u0103 accepte un nou commit.<\/p>\n<p>Timpul a trecut, au \u00eenceput s\u0103 se aplice noi practici, cum ar fi migrarea \u00een Kubernetes, diverse checkstyle, spotbugs, ktlint, existen\u021ba logurilor \u00een Kibana, autodiscovery al serviciilor \u00een loc de a specifica adresele direct \u0219i alte utilit\u0103\u021bi. \u0218i peste tot, tabelul nostru a permis men\u021binerea actualiz\u0103rii serviciilor noastre. Pentru noi, acesta este un fel de checklist care ne spune c\u0103 acest serviciu poate face asta, dar nu poate face asta. Dar am avansat, \u00een\u021beleg\u00e2nd c\u0103 ne lipse\u0219te informa\u021bia despre serviciile noastre pe care le monitoriz\u0103m, unde sunt sursele serviciului, unde se desf\u0103\u0219oar\u0103 sarcinile de compilare \u00een TeamCity, cum sunt implementate, unde sunt stocate sursele testelor end2end, fotografiile despre arhitectur\u0103, despre deciziile luate. \u00cen ideal, ne-ar pl\u0103cea ca toat\u0103 aceast\u0103 informa\u021bie s\u0103 fie undeva stocat\u0103 \u0219i la \u00eendem\u00e2n\u0103 atunci c\u00e2nd avem nevoie. De aceea, tabelul nostru a devenit punctul de pornire pentru c\u0103utarea informa\u021biilor.<\/p>\n<p>Dar QIWI, de\u0219i p\u0103streaz\u0103 spiritul unei start-up, este o companie mare. Avem deja 12 ani \u0219i echipele se schimb\u0103: oameni pleac\u0103, oameni vin, se formeaz\u0103 noi echipe. \u0218i am descoperit pe domeniul nostru c\u00e2teva servicii, mo\u0219tenite de la al\u021bii. Unele au venit cu dezvoltatorii din alte echipe, altele au fost indirect legate de Portofel, a\u0219a c\u0103 acum serviciul este \u00een bilan\u021bul nostru. S\u0103 ne ocup\u0103m de ceea ce \u0219i cum func\u021bioneaz\u0103 \u2014 de ce? Serviciul func\u021bioneaz\u0103, iar noi avem caracteristici de produs care trebuie neap\u0103rat implementate.<\/p>\n<h2>Cum se \u00eent\u00e2mpl\u0103 uneori<\/h2>\n<p>\nDar, la un moment dat, descoperim c\u0103 serviciul \u00eenceteaz\u0103 s\u0103 \u00ee\u0219i \u00eendeplineasc\u0103 func\u021bia, ceva s-a stricat \u2014 ce s\u0103 facem \u00een aceast\u0103 situa\u021bie? Serviciul pur \u0219i simplu a \u00eencetat s\u0103 func\u021bioneze. Complet. \u0218i am aflat despre asta, \u00een primul r\u00e2nd, accidental, iar \u00een al doilea r\u00e2nd, dup\u0103 \u0219ase luni. A\u0219a se \u00eent\u00e2mpl\u0103. Singurul lucru pe care \u00eel \u0219tim este pe ce virtualiz\u0103ri este desf\u0103\u0219urat serviciul, unde se afl\u0103 sursele acestuia \u0219i cam at\u00e2t. Facem git clone \u0219i ne ad\u00e2ncim \u00een g\u00e2ndurile persoanei care a scris asta acum c\u00e2\u021biva ani, dar ce vedem? Niciun Spring Boot cunoscut pentru noi, de\u0219i ne-am obi\u0219nuit cu toate acestea, avem full stack \u0219i toate cele. Poate c\u0103 exist\u0103 Spring Framework? Dar nu.<\/p>\n<p>Tipul care a scris toate acestea a fost sever \u0219i a scris totul \u00een Java pur. Nu exist\u0103 instrumente obi\u0219nuite pentru dezvoltatori, iar ideea este c\u0103 ar trebui s\u0103 refacem totul. Avem microservicii, iar din fiecare pr\u0103jitor de p\u00e2ine se aude familiarul \u201eB\u0103ie\u021bi, microserviciile sunt ceea ce ave\u021bi nevoie!\u201d. Dac\u0103 ceva nu e \u00een regul\u0103, po\u021bi lua oricare limbaj \u0219i totul va fi bine.<\/p>\n<p>Problema este c\u0103 acum nu avem un client care s\u0103 fie responsabil pentru acest serviciu. Care au fost cerin\u021bele de afaceri ale acestuia, ce ar trebui s\u0103 fac\u0103 acest serviciu? \u0218i acest serviciu este integrat str\u00e2ns \u00een procesele voastre de afaceri. <\/p>\n<p>\u0218i acum spune\u021bi-mi, c\u00e2t de simplu este s\u0103 refaci un serviciu f\u0103r\u0103 a cunoa\u0219te cerin\u021bele sale de afaceri? Nu se \u0219tie cum se logheaz\u0103 serviciul, dac\u0103 exist\u0103 metrici - nu se \u0219tie. Care sunt ele, dac\u0103 exist\u0103 - cu at\u00e2t mai pu\u021bin se \u0219tie. \u0218i \u00een acela\u0219i timp, \u00een serviciu exist\u0103 o mul\u021bime de clase cu o logic\u0103 de afaceri neclar\u0103. Ceva ajunge \u00eentr-o baz\u0103 de date despre care nu \u0219tim nimic deocamdat\u0103. <\/p>\n<h2>Cu ce ar trebui s\u0103 \u00eencepem?<\/h2>\n<p>\nCu cel mai logic lucru - cu disponibilitatea testelor. Acolo de obicei se scrie o oarecare logic\u0103 \u0219i se pot trasa concluzii despre ce se \u00eent\u00e2mpl\u0103. Acum este la mod TDD, dar vedem c\u0103 acum 5 ani era aproape la fel ca acum: unit-testele sunt aproape inexistente, iar acestea nu ne vor spune nimic semnificativ. Poate doar s\u0103 verifice cum se semneaz\u0103 un xml cu un certificat personalizat.<\/p>\n<p>Din cod nu am putut \u00een\u021belege nimic, a\u0219a c\u0103 am decis s\u0103 ne uit\u0103m \u00een virtual\u0103. Am deschis logurile serviciului \u0219i am g\u0103sit o eroare a clientului http: certificatul auto-semnat, care fusese inclus \u00een resursele aplica\u021biei, era complet expirat. Ne-am contactat cu anali\u0219tii no\u0219tri, ei ne-au cerut un certificat nou, ne-a fost emis \u0219i serviciul func\u021bioneaz\u0103 din nou. Ar p\u0103rea c\u0103 asta e tot. Dar nu? Totu\u0219i, serviciul func\u021bioneaz\u0103, \u00eendepline\u0219te o anumit\u0103 func\u021bie care este necesar\u0103 pentru afacerea noastr\u0103. Avem anumite standarde de dezvoltare a aplica\u021biilor, care, probabil, sunt \u0219i la voi. De exemplu, s\u0103 nu stoc\u0103m loguri pe nod \u00een folder, ci s\u0103 le p\u0103str\u0103m \u00eentr-un fel de depozit, precum Elasticsearch, \u0219i s\u0103 ne uit\u0103m la ele \u00een Kibana. Putem aminti \u0219i de metricile de aur. Adic\u0103, \u00eenc\u0103rcarea serviciului, num\u0103rul de solicit\u0103ri c\u0103tre serviciu, dac\u0103 este activ sau nu, cum trece testul HealthCheck. Cel pu\u021bin, aceste metrici ne vor ajuta s\u0103 \u0219tim c\u00e2nd s\u0103-l scoatem din exploatare cu con\u0219tiin\u021ba lini\u0219tit\u0103 \u0219i s\u0103-l uit\u0103m ca pe un co\u0219mar.<\/p>\n<h2>Ce s\u0103 fac<\/h2>\n<p>\nA\u0219a c\u0103 ad\u0103ug\u0103m acest vechi serviciu \u00een tabel, iar apoi c\u0103ut\u0103m printre dezvoltatori voluntari care s\u0103 se ocupe de serviciu \u0219i s\u0103-l aduc\u0103 \u00een ordine: s\u0103 scrie c\u00e2teva informa\u021bii despre serviciu, s\u0103 adauge linkuri c\u0103tre dashboard-uri \u00een Grafana, sarcini de construc\u021bie, s\u0103 \u00een\u021beleag\u0103 cum s\u0103 desf\u0103\u0219oare aplica\u021bia, nu s\u0103 arunce manual fi\u0219iere prin FTP. <\/p>\n<p>Cel mai important \u2014 c\u00e2t timp va dura toat\u0103 aceast\u0103 activitate util\u0103 a voluntarilor? O sprint pentru un dezvoltator mai mult sau mai pu\u021bin experimentat, de exemplu, \u00een timpul celor 20% din datoria tehnic\u0103. \u0218i c\u00e2t timp a fost necesar pentru a \u00een\u021belege toat\u0103 logica \u00eenr\u0103d\u0103cinat\u0103 \u00een comunicarea cu un anumit sistem guvernamental, pentru a o aduce la tehnologii mai noi? Nu m\u0103 angajez pe acest subiect, poate o lun\u0103, poate chiar dou\u0103 luni de munc\u0103 a echipei. Asta spun din experien\u021ba integr\u0103rii actuale cu un nou serviciu.<\/p>\n<p>\u00cen acela\u0219i timp, nu exist\u0103 nicio valoare de afaceri generat\u0103 \u2014 deloc. S\u0103 preiei un serviciu \u00een suport \u0219i s\u0103 aloci pu\u021bin timp pentru asta \u2014 e normal. Dar dup\u0103 dansurile noastre standard cu serviciul, l-am ad\u0103ugat \u00een tabel, am ad\u0103ugat informa\u021bii despre el \u0219i, poate, c\u00e2ndva, \u00eel vom rescrie. Dar acum acoper\u0103 standardele noastre de operare a serviciilor.<\/p>\n<p>Ca rezultat, a\u0219 dori s\u0103 ajung la un plan, ce s\u0103 facem cu serviciile legacy. <\/p>\n<p><b>Rescrierea legacy-ului de la zero \u2014 o idee proast\u0103<\/b><br \/>\nSerios, nu trebuie s\u0103 te g\u00e2nde\u0219ti prea mult la asta. E clar c\u0103 ar fi pl\u0103cut, \u0219i se pot observa unele avantaje, dar de obicei nu este necesar nim\u0103nui, inclusiv \u021bie.<\/p>\n<p><b>Manual<\/b><br \/>\nScoate\u021bi la iveal\u0103 codurile surs\u0103 ale aplica\u021biilor voastre, crea\u021bi un manual \u00een care s\u0103 fie specificat ce se afl\u0103 \u0219i unde, precum \u0219i cum func\u021bioneaz\u0103, ad\u0103uga\u021bi acolo o descriere a proiectului (un fel de readme.md), astfel \u00eenc\u00e2t s\u0103 \u00een\u021belege\u021bi rapid unde se afl\u0103 jurnalele \u0219i metricile. Dezvoltatorul care va lucra la acestea dup\u0103 voi v\u0103 va mul\u021bumi.<\/p>\n<p><b>\u00cen\u021belege\u021bi domeniul<\/b><br \/>\nDac\u0103 de\u021bine\u021bi un domeniu, \u00eencerca\u021bi s\u0103 fi\u021bi la curent. Sun\u0103 banal, da, dar nu toat\u0103 lumea se asigur\u0103 c\u0103 serviciile sunt uniforme. A lucra conform unui singur standard este de fapt mult mai simplu.<\/p>\n<p class=\"for_users_only_msg\">Numai utilizatorii \u00eenregistra\u021bi pot participa la sondaj. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Conecta\u021bi-v\u0103<\/a><\/noindex>, v\u0103 rug\u0103m.<\/p>\n<h2 class=\"default-block__polling-title\">Ce face\u021bi cu vechile aplica\u021bii?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>Scriu de la zero, a\u0219a este mai bine<\/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>Aproape la fel ca \u0219i tine<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>Nu avem vechituri, suntem minuna\u021bi<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Voi scrie \u00een comentarii<\/p>\n<\/li>\n<\/ul>\n<p>    Au votat 38 de utilizatori. 20 s-au ab\u021binut.<br \/>\n<br \/>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Serviciile Legacy \u00een infrastructura ta | ProHoster","description":"Bun\u0103! Numele meu este Pa\u0219a Cernyak, sunt dezvoltator principal la QIWI \u0219i ast\u0103zi vreau s\u0103 discut despre inevitabil. Despre Legacy. \u00cencepem cu \u00eentrebarea: ce este un serviciu Legacy?","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/53442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}