{"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\/hu\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"\u00d6r\u00f6k\u00f6lt szolg\u00e1ltat\u00e1sok az infrastrukt\u00far\u00e1j\u00e1ban","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3! A nevem Pasha Csernyak, f\u0151 fejleszt\u0151 a QIWI-n\u00e9l, \u00e9s ma az elker\u00fclhetetlenr\u0151l szeretn\u00e9k besz\u00e9lni. Az \u00d6r\u00f6ks\u00e9gr\u0151l.<\/p>\n<p>Kezdj\u00fck azzal a k\u00e9rd\u00e9ssel: mi az az \u00d6r\u00f6ks\u00e9g-szolg\u00e1ltat\u00e1s? Az \u00d6r\u00f6ks\u00e9g-szolg\u00e1ltat\u00e1s egy olyan szolg\u00e1ltat\u00e1s, amelyhez a fejleszt\u0151 egy hete\/h\u00f3napja\/\u00e9ve nem ny\u00falt? Vagy egy olyan szolg\u00e1ltat\u00e1s, amelyet egy kev\u00e9sb\u00e9 tapasztalt programoz\u00f3, p\u00e9ld\u00e1ul konkr\u00e9tan te \u00edrt\u00e1l, de egy \u00e9ve? Mostanra viszont jobb \u00e9s tapasztaltabb lett\u00e9l. Vagy az \u00d6r\u00f6ks\u00e9g-szolg\u00e1ltat\u00e1s az, amit \u00fagy d\u00f6nt\u00f6tt\u00e9l, hogy soha t\u00f6bb\u00e9 nem commit\u00e1lsz, \u00e9s lassan k\u00e9sz\u00edtesz neki egy cser\u00e9t? Mindenesetre, egy ilyen szolg\u00e1ltat\u00e1st figyelmen k\u00edv\u00fcl hagyni \u00e9s nem friss\u00edteni \u2013 ez egy id\u0151z\u00edtett bomba, ami k\u00e9s\u0151bb felrobbanhat.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"\u00d6r\u00f6k\u00f6lt szolg\u00e1ltat\u00e1sok az infrastrukt\u00far\u00e1j\u00e1ban\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Miel\u0151tt r\u00e1t\u00e9rn\u00e9nk arra, hogyan dolgozunk mi a QIWI-n\u00e9l az \u00d6r\u00f6ks\u00e9g-szolg\u00e1ltat\u00e1sainkkal, elmondom, hogyan rendszerezt\u00fck a szolg\u00e1ltat\u00e1sokat a P\u00e9nzt\u00e1rc\u00e1n\u00e1l. M\u00e1r k\u00e9t \u00e9ve \u00e9n felelek a m\u0171k\u00f6d\u00e9s\u00e9\u00e9rt. Ha b\u00e1rmilyen probl\u00e9ma mer\u00fcl fel, mindig el\u0151sz\u00f6r hozz\u00e1m telefon\u00e1lnak. \u00c1ltal\u00e1ban nem el\u00e9g b\u00e1tornak \u00e9rzem magam ahhoz, hogy 11 \u00f3rakor este m\u00e1snak telefon\u00e1ljak, \u00edgy h\u00e1t le kellett \u00fcln\u00f6m, \u00e9s foglalkoznom kellett a domain\u00fcnk \u00f6sszes szolg\u00e1ltat\u00e1s\u00e1val. <\/p>\n<p>De \u00e9n, mint minden ember, szeretek \u00e9jszaka aludni, ez\u00e9rt pr\u00f3b\u00e1ltam kider\u00edteni a probl\u00e9m\u00e1k ok\u00e1t: \u201eFi\u00fak, mi\u00e9rt h\u00edvj\u00e1tok engem?\u201d. Erre egy meglehet\u0151sen t\u00f6m\u00f6r v\u00e1laszt kaptam: \u201eH\u00e1t kinek m\u00e1snak?\u201d. Mert \u00e9n jav\u00edtom a szolg\u00e1ltat\u00e1sokat, \u00e9s a fi\u00fak egyszer\u0171en nem tudj\u00e1k, kinek kellene telefon\u00e1lniuk.<\/p>\n<p>Ez\u00e9rt a P\u00e9nzt\u00e1rca backend csapat\u00e1nak egyik retrospekt\u00edv \u00e9rtekezlet\u00e9n eld\u00f6nt\u00f6tt\u00fck, hogy \u00f6ssze kellene \u00e1ll\u00edtani egy t\u00e1bl\u00e1zatot, amelyen a szolg\u00e1ltat\u00e1saink, mikroszolg\u00e1ltat\u00e1saink \u00e9s monolitjaink list\u00e1ja tal\u00e1lhat\u00f3, valamint az ezek\u00e9rt felel\u0151s szem\u00e9lyek. A t\u00e1bl\u00e1zatok \u00e1ltal\u00e1ban hasznosak, \u00e9sszer\u0171 keretek k\u00f6z\u00f6tt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nA felel\u0151ss\u00e9gi inform\u00e1ci\u00f3k mellett a t\u00e1bl\u00e1zat v\u00e1laszokat is tartalmazott a k\u00f6vetkez\u0151 k\u00e9rd\u00e9sekre: ki a szolg\u00e1ltat\u00e1s birtokosa, ki felel\u0151s a fejl\u0151d\u00e9s\u00e9\u00e9rt, az architekt\u00far\u00e1\u00e9rt \u00e9s az \u00e9letciklus\u00e1\u00e9rt. Azok az emberek, akik felel\u0151sek a szolg\u00e1ltat\u00e1s\u00e9rt \u2013 \u0151k azok, akik sz\u00fcks\u00e9g eset\u00e9n meg tudj\u00e1k jav\u00edtani. A szolg\u00e1ltat\u00e1s birtokosa jogosult +2-t hagyni a commitokban, a felel\u0151s\u00f6knek is k\u00f6telez\u0151 r\u00e9szt venni\u00fck a fel\u00fclvizsg\u00e1latban, miel\u0151tt a szolg\u00e1ltat\u00e1s \u00faj commitot fogadna el.<\/p>\n<p>Id\u0151 telt el, \u00faj gyakorlatok kezdtek teret nyerni, mint p\u00e9ld\u00e1ul a Kubernetes-be val\u00f3 migr\u00e1l\u00e1s, k\u00fcl\u00f6nf\u00e9le ellen\u0151rz\u00e9sek, spotbugs, ktlint, logok l\u00e9trehoz\u00e1sa Kibana-ban, szolg\u00e1ltat\u00e1sok autodiscovery-ja k\u00f6zvetlen IP-c\u00edmek megad\u00e1sa helyett \u00e9s m\u00e1s hasznos dolgok. \u00c9s mindenhol a t\u00e1bl\u00e1zatunk lehet\u0151v\u00e9 tette a szolg\u00e1ltat\u00e1saink aktu\u00e1lis \u00e1llapot\u00e1nak tart\u00e1s\u00e1t. Sz\u00e1munkra ez egyfajta ellen\u0151rz\u0151 lista, amely azt mondja, hogy ez a szolg\u00e1ltat\u00e1s tudja ezt csin\u00e1lni, de azt m\u00e9g nem. De tov\u00e1bb l\u00e9pt\u00fcnk, meg\u00e9rtve, hogy hi\u00e1nyzik az inform\u00e1ci\u00f3 a szolg\u00e1ltat\u00e1sainkr\u00f3l, amiket nyomon k\u00f6vet\u00fcnk, hol tal\u00e1lhat\u00f3k a szolg\u00e1ltat\u00e1s forr\u00e1sai, hol futnak a TeamCity-ben a build feladatok, hogyan vannak telep\u00edtve, hol t\u00e1rolj\u00e1k a v\u00e9gpontt\u00f3l v\u00e9gpontig tesztek forr\u00e1sait, architekt\u00far\u00e1val kapcsolatos f\u00e9nyk\u00e9pek, az elfogadott d\u00f6nt\u00e9sek. Ide\u00e1lis esetben szeretn\u00e9nk, ha minden inform\u00e1ci\u00f3 valahol el\u00e9rhet\u0151 lenne, amikor sz\u00fcks\u00e9g van r\u00e1. Ez\u00e9rt a t\u00e1bl\u00e1zatunk lett az inform\u00e1ci\u00f3keres\u00e9s kiindul\u00e1si pontja.<\/p>\n<p>De a QIWI, b\u00e1r meg\u0151rzi a startup szellem\u00e9t, m\u00e1r egy nagy c\u00e9g. M\u00e1r 12 \u00e9ve m\u0171k\u00f6d\u00fcnk, \u00e9s a csapatok folyamatosan v\u00e1ltoznak: emberek t\u00e1voznak, emberek \u00e9rkeznek, \u00faj csapatok alakulnak. R\u00e1j\u00f6tt\u00fcnk, hogy a saj\u00e1t domain\u00fcnk\u00f6n t\u00f6bb olyan szolg\u00e1ltat\u00e1s van, amelyeket \u00f6r\u00f6k\u00f6lt\u00fcnk. Valami \u00e1tker\u00fclt m\u00e1s csapatok fejleszt\u0151it\u0151l, valami pedig valamilyen k\u00f6zvetett form\u00e1ban kapcsol\u00f3dott a P\u00e9nzt\u00e1rc\u00e1hoz, \u00edgy most ez a szolg\u00e1ltat\u00e1s a mi birtokunkban van. Mi\u00e9rt kellene megfejten\u00fcnk, hogy mi m\u0171k\u00f6dik \u00e9s hogyan? A szolg\u00e1ltat\u00e1s m\u0171k\u00f6dik, \u00e9s vannak olyan term\u00e9kdolgok, amiket mindenk\u00e9ppen meg kell val\u00f3s\u00edtani.<\/p>\n<h2>Ahogy lenni szokott<\/h2>\n<p>\nDe egy id\u0151pontban r\u00e1j\u00f6v\u00fcnk, hogy a szolg\u00e1ltat\u00e1s elvesz\u00edti a funkci\u00f3j\u00e1t, valami elromlott \u2014 mi a teend\u0151 ilyen helyzetben? A szolg\u00e1ltat\u00e1s egyszer\u0171en le\u00e1llt. Teljesen. \u00c9s ezt el\u0151sz\u00f6r is v\u00e9letlen\u00fcl, m\u00e1sodsorban pedig f\u00e9l \u00e9v m\u00falva tudjuk meg. Igen, ilyen el\u0151fordul. Az egyetlen dolog, amit tudtunk \u2014 milyen virtu\u00e1lis g\u00e9peken van telep\u00edtve a szolg\u00e1ltat\u00e1s, hol tal\u00e1lhat\u00f3k a forr\u00e1sai, ennyi. Legy\u00e1rtunk egy git clone-t, \u00e9s elm\u00e9lyed\u00fcnk annak a szem\u00e9lynek a gondolataiban, aki ezt p\u00e1r \u00e9ve \u00edrta, de mit l\u00e1tunk? Sehol semmi ismer\u0151s Spring Boot, pedig m\u00e1r hozz\u00e1szoktunk a dolgokhoz, hiszen full stack vagyunk meg hasonl\u00f3k. Tal\u00e1n van ott Spring Framework? De nincs.<\/p>\n<p>A sr\u00e1c, aki mindezt \u00edrta, kem\u00e9ny volt \u00e9s mindent tiszta Java nyelven \u00edrt. Nincsenek megszokott eszk\u00f6z\u00f6k a fejleszt\u0151k sz\u00e1m\u00e1ra, \u00e9s felmer\u00fcl az \u00f6tlet \u2014 ezt mind \u00fajra kellene \u00edrni. Hiszen nek\u00fcnk vannak mikroszolg\u00e1ltat\u00e1saink, \u00e9s minden keny\u00e9rpir\u00edt\u00f3b\u00f3l hallatszik a szok\u00e1sos: \"Fi\u00fak, a mikroszolg\u00e1ltat\u00e1sokra van sz\u00fcks\u00e9getek!\". Ha valami nem stimmel, nyugodtan el\u0151vehet b\u00e1rmilyen nyelvet, \u00e9s minden rendben lesz.<\/p>\n<p>A helyzet az, hogy jelenleg nincs megrendel\u0151nk, aki felel\u0151s lenne ez\u00e9rt a szolg\u00e1ltat\u00e1s\u00e9rt. Milyen \u00fczleti k\u00f6vetelm\u00e9nyei voltak, mit kellene egy\u00e1ltal\u00e1n tennie ennek a szolg\u00e1ltat\u00e1snak? A szolg\u00e1ltat\u00e1s szorosan integr\u00e1lva van az \u00fczleti folyamataidba. <\/p>\n<p>Most mondj\u00e1tok meg, mennyire egyszer\u0171 \u00e1t\u00edrni egy szolg\u00e1ltat\u00e1st an\u00e9lk\u00fcl, hogy ismern\u00e9nk az \u00fczleti k\u00f6vetelm\u00e9nyeket? A szolg\u00e1ltat\u00e1s logol\u00e1sa nem egy\u00e9rtelm\u0171, hogy vannak-e metrik\u00e1k \u2014 nem tudni. Milyenek, ha vannak \u2014 az m\u00e9g ink\u00e1bb ismeretlen. R\u00e1ad\u00e1sul a szolg\u00e1ltat\u00e1sban hatalmas mennyis\u00e9g\u0171, hom\u00e1lyos \u00fczleti logik\u00e1t tartalmaz\u00f3 oszt\u00e1ly tal\u00e1lhat\u00f3. Valami bemegy egy adatb\u00e1zisba, amir\u0151l szint\u00e9n m\u00e9g nem tudunk semmit. <\/p>\n<h2>Honnan kezdj\u00fck?<\/h2>\n<p>\nA leglogikusabb dologgal \u2014 a tesztek megl\u00e9t\u00e9vel. Ott \u00e1ltal\u00e1ban van valamilyen logika, \u00e9s levonhat\u00f3k k\u00f6vetkeztet\u00e9sek arr\u00f3l, hogy mi zajlik. Jelenleg divatos a TDD, de l\u00e1tjuk, hogy \u00f6t \u00e9vvel ezel\u0151tt minden gyakorlatilag ugyanezen a szinten \u00e1llt: alig volt unit-teszt, \u00e9s nem is mondanak r\u00f3la sokat. Kiv\u00e9ve tal\u00e1n valami ellen\u0151rz\u00e9st, hogy hogy \u00edrunk al\u00e1 egy xml-t valamilyen egyedi tan\u00fas\u00edtv\u00e1nnyal.<\/p>\n<p>A k\u00f3d alapj\u00e1n nem tudtunk sok mindent meg\u00e9rteni, ez\u00e9rt megn\u00e9zt\u00fck, mi t\u00f6rt\u00e9nik a virtu\u00e1lis g\u00e9pen. Megnyitottuk a szolg\u00e1ltat\u00e1s napl\u00f3it, \u00e9s tal\u00e1ltunk benne egy HTTP kliens hib\u00e1t, a saj\u00e1t al\u00e1\u00edr\u00e1s\u00fa tan\u00fas\u00edtv\u00e1ny, amely a programban volt be\u00e9p\u00edtve, sajnos lej\u00e1rt. Kapcsolatba l\u00e9pt\u00fcnk az elemz\u0151inkkel, \u0151k k\u00e9rtek egy \u00faj tan\u00fas\u00edtv\u00e1nyt, amit ki is adtak, \u00e9s a szolg\u00e1ltat\u00e1s \u00fajra m\u0171k\u00f6dik. \u00dagy t\u0171nik, hogy a dolog itt v\u00e9get \u00e9r, vagy m\u00e9gsem? A szolg\u00e1ltat\u00e1s m\u0171k\u00f6dik, ell\u00e1t valamilyen funkci\u00f3t, amely sz\u00fcks\u00e9ges a v\u00e1llalkoz\u00e1sunk sz\u00e1m\u00e1ra. Vannak bizonyos alkalmaz\u00e1sfejleszt\u00e9si sztenderdjeink, amelyek val\u00f3sz\u00edn\u0171leg \u00d6n\u00f6kn\u00e9l is l\u00e9teznek. P\u00e9ld\u00e1ul nem t\u00e1rolni a napl\u00f3kat a noden egy mapp\u00e1ban, hanem valamilyen t\u00e1rol\u00f3ban, mint az Elastic, \u00e9s Kibana-n n\u00e9zni \u0151ket. Eml\u00edthetj\u00fck az aranymetrik\u00e1kat is. Teh\u00e1t a terhel\u00e9s a szolg\u00e1ltat\u00e1son, a szolg\u00e1ltat\u00e1sra \u00e9rkez\u0151 k\u00e9r\u00e9sek sz\u00e1ma, \u00e9l-e m\u00e9g, hogyan halad a HealthCheck. Mindenesetre ezek a metrik\u00e1k seg\u00edtenek megtudni, mikor lehet nyugodt lelkiismerettel kivonni a forgalomb\u00f3l, \u00e9s elfelejteni, mint egy rossz \u00e1lmot.<\/p>\n<h2>Mi a teend\u0151<\/h2>\n<p>\nEz\u00e9rt egy ilyen r\u00e9gi szolg\u00e1ltat\u00e1st hozz\u00e1adunk a t\u00e1bl\u00e1zathoz, majd keres\u00fcnk \u00f6nk\u00e9ntes fejleszt\u0151ket, akik foglalkoznak a szolg\u00e1ltat\u00e1ssal \u00e9s rendbe rakj\u00e1k: \u00edrnak r\u00f3la legal\u00e1bb valamilyen inform\u00e1ci\u00f3t, hozz\u00e1adj\u00e1k a Grafana-dashbordok linkjeit, a build feladatokat, \u00e9s meg\u00e9rtik, hogyan lehet telep\u00edteni az alkalmaz\u00e1st, nem k\u00e9zzel ftp-n kereszt\u00fcl felt\u00f6lteni a f\u00e1jlokat. <\/p>\n<p>A legfontosabb \u2014 mennyi id\u0151t vesz ig\u00e9nybe mindez a hasznos \u00f6nk\u00e9ntes tev\u00e9kenys\u00e9g? Egy sprint egy valamivel tapasztaltabb fejleszt\u0151 sz\u00e1m\u00e1ra, p\u00e9ld\u00e1ul a 20%-os technikai ad\u00f3ss\u00e1g idej\u00e9n. De mennyi id\u0151be telt meg\u00e9rteni az \u00f6sszetett logik\u00e1t egy \u00e1llami rendszerrel val\u00f3 kommunik\u00e1ci\u00f3r\u00f3l, \u00e9s \u00fajabb technol\u00f3gi\u00e1kra \u00e1t\u00e1ll\u00edtani? Erre nem v\u00e1llalkozom, lehet, hogy egy h\u00f3nap, de ak\u00e1r k\u00e9t h\u00f3nap is a csapat munk\u00e1j\u00e1b\u00f3l. Ezt a tapasztalat alapj\u00e1n mondom, amikor egy \u00faj szolg\u00e1ltat\u00e1ssal integr\u00e1l\u00f3dtam.<\/p>\n<p>Ugyanakkor a v\u00e1llalkoz\u00e1s \u00e9rt\u00e9k\u00e9nek kimenetele \u2014 semennyi. Teljesen. A szolg\u00e1ltat\u00e1s t\u00e1mogat\u00e1s\u00e1nak \u00e1tv\u00e9tele \u00e9s egy kis id\u0151 elt\u00f6lt\u00e9se rajta \u2014 norm\u00e1lis. De a szolg\u00e1ltat\u00e1ssal v\u00e9gzett szok\u00e1sos t\u00e1ncaink ut\u00e1n felvett\u00fck a t\u00e1bl\u00e1zatba, hozz\u00e1adtunk inform\u00e1ci\u00f3t r\u00f3la, \u00e9s lehet, hogy egyszer \u00e1t\u00edrjuk. De most m\u00e1r megfelel a szolg\u00e1ltat\u00e1sok munkam\u00f3dszereinek.<\/p>\n<p>\u00d6sszefoglalva, szeretn\u00e9m \u00f6sszefoglalni egy tervet, mit tegy\u00fcnk a Legacy-szolg\u00e1ltat\u00e1sokkal. <\/p>\n<p><b>A legacy \u00fajra\u00edr\u00e1sa a null\u00e1r\u00f3l \u2014 rossz \u00f6tlet.<\/b><br \/>\nKomolyan, nem is \u00e9rdemes ezen gondolkodni. Nyilv\u00e1nval\u00f3, hogy lenne n\u00e9h\u00e1ny el\u0151ny, de \u00e1ltal\u00e1ban senkinek, m\u00e9g mag\u00e1nak is, nincs sz\u00fcks\u00e9ge r\u00e1.<\/p>\n<p><b>K\u00e9zik\u00f6nyv<\/b><br \/>\n\u00c1ss\u00e1k el\u0151 az alkalmaz\u00e1saik forr\u00e1sk\u00f3dj\u00e1t, k\u00e9sz\u00edtsenek egy k\u00e9zik\u00f6nyvet, amelyben meg van jel\u00f6lve, hogy mi hol tal\u00e1lhat\u00f3 \u00e9s hogyan m\u0171k\u00f6dik. Ide \u00edrj\u00e1k a projekt le\u00edr\u00e1s\u00e1t (k\u00f6r\u00fclbel\u00fcl readme.md), hogy gyorsan meg\u00e9rts\u00e9k, hol tal\u00e1lj\u00e1k a napl\u00f3kat \u00e9s a metrik\u00e1kat. Az a fejleszt\u0151, aki ut\u00e1nuk foglalkozik ezekkel, csak h\u00e1l\u00e1s lesz.<\/p>\n<p><b>\u00c9rtse a dom\u00e9nt<\/b><br \/>\nHa birtokol egy domaint, pr\u00f3b\u00e1lja meg figyelemmel k\u00f6vetni. Hangzik klis\u00e9sen, igen, de nem mindenki \u00fcgyel arra, hogy a szolg\u00e1ltat\u00e1sok egyform\u00e1n m\u0171k\u00f6djenek. Pedig egy szabv\u00e1nyos k\u00f6rnyezetben dolgozni sokkal egyszer\u0171bb.<\/p>\n<p class=\"for_users_only_msg\">Csak a regisztr\u00e1lt felhaszn\u00e1l\u00f3k vehetnek r\u00e9szt a szavaz\u00e1son. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">K\u00e9rem, jelentkezzen be.<\/a><\/noindex>, k\u00e9rem.<\/p>\n<h2 class=\"default-block__polling-title\">Mit csin\u00e1l a legacy-j\u00e9vel?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>\u00dajra \u00edrom az alapokt\u00f3l, ez a helyes megold\u00e1s12<\/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>Majdnem ugyanaz, mint \u00f6n\u00e920<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>Nincs legacy-nk, \u00fcgyesek vagyunk4<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Meg\u00edrom a megjegyz\u00e9sekben2<\/p>\n<\/li>\n<\/ul>\n<p>    38 felhaszn\u00e1l\u00f3 szavazott. 20 felhaszn\u00e1l\u00f3 tart\u00f3zkodott.<br \/>\n<br \/>Forr\u00e1s: <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\/hu\/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=\"hu_HU\" \/>\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\/hu\/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-szolg\u00e1ltat\u00e1sok az \u00f6n infrastrukt\u00far\u00e1j\u00e1ban | ProHoster","description":"Hell\u00f3! A nevem Pasha Csernyak, vezet\u0151 fejleszt\u0151 vagyok a QIWI-n\u00e9l, \u00e9s ma a elker\u00fclhetetlenr\u0151l szeretn\u00e9k besz\u00e9lni. A Legacy-r\u0151l. Kezdj\u00fck azzal a k\u00e9rd\u00e9ssel: mi az a Legacy-szolg\u00e1ltat\u00e1s?","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/53442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}