{"id":42175,"date":"2019-03-18T00:00:00","date_gmt":"2019-03-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem"},"modified":"2020-02-18T13:45:00","modified_gmt":"2020-02-18T10:45:00","slug":"evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednoho dne jsem se rozhodl napsat \u010dl\u00e1nek o dod\u00e1vce v podob\u011b Docker kontejner\u016f a deb bal\u00ed\u010dk\u016f, ale kdy\u017e jsem za\u010dal, n\u011bjak jsem se dostal do d\u00e1vn\u00fdch \u010das\u016f prvn\u00edch osobn\u00edch po\u010d\u00edta\u010d\u016f a dokonce kalkula\u010dek. Nam\u00edsto such\u00fdch srovn\u00e1n\u00ed Dockeru a deb jsem nakonec sepsal \u00favahy o evoluci, kter\u00e9 v\u00e1m nyn\u00ed p\u0159edkl\u00e1d\u00e1m.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nJak\u00fdkoli produkt, a\u0165 u\u017e je jak\u00fdkoli, se mus\u00ed n\u011bjak dostat na produk\u010dn\u00ed servery, mus\u00ed b\u00fdt nastaven a spu\u0161t\u011bn. O tom bude tento \u010dl\u00e1nek.<\/p>\n<p>Budu p\u0159em\u00fd\u0161let v historick\u00e9m kontextu, \"co vid\u00edm \u2014 o tom zp\u00edv\u00e1m\", co jsem vid\u011bl, kdy\u017e jsem teprve za\u010d\u00ednal ps\u00e1t k\u00f3d, a co pozoruji nyn\u00ed, co pou\u017e\u00edv\u00e1me v sou\u010dasnosti a pro\u010d. \u010cl\u00e1nek si neklade za c\u00edl b\u00fdt komplexn\u00edm v\u00fdzkumem, n\u011bkter\u00e9 aspekty jsou opomenuty, je to m\u016fj osobn\u00ed pohled na to, co bylo a co je te\u010f.<\/p>\n<p>Tak\u017ee, v d\u00e1vn\u00fdch dobr\u00fdch \u010dasech\u2026 nejran\u011bj\u0161\u00ed zp\u016fsob dod\u00e1n\u00ed, kter\u00fd jsem za\u017eil \u2014 byly magnetofonov\u00e9 kazety. M\u011bl jsem po\u010d\u00edta\u010d BK-0010.01\u2026<\/p>\n<h2>\u00c9ra kalkula\u010dek<\/h2>\n<p>\nNe, byl tu je\u0161t\u011b d\u0159\u00edv\u011bj\u0161\u00ed moment, byl tu je\u0161t\u011b kalkula\u010dkov\u00fd model <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">MK-61<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">MK-52<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> Tak\u017ee kdy\u017e jsem m\u011bl <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-61\">MK-61<\/a><\/noindex>, byl zp\u016fsob p\u0159enosu programu oby\u010dejn\u00fd \u010dtvere\u010dkovan\u00fd list pap\u00edru, na kter\u00e9m byl naps\u00e1n program, kter\u00fd se p\u0159i nutnosti spou\u0161t\u011bl ru\u010dn\u011b do kalkula\u010dky. Chce\u0161 si zahr\u00e1t (ano, i na t\u00e9to p\u0159edpotopn\u00ed kalkula\u010dce byly hry) \u2014 sedne\u0161 si a nap\u00ed\u0161e\u0161 program do kalkula\u010dky. Pochopiteln\u011b, po vypnut\u00ed kalkula\u010dky program zmizel do zapomn\u011bn\u00ed. Krom\u011b vlastnoru\u010dn\u011b napsan\u00fdch k\u00f3d\u016f na pap\u00ed\u0159e byly programy publikov\u00e1ny v \u010dasopisech \"R\u00e1dio\" a \"Technika ml\u00e1de\u017ee\", a tak\u00e9 tisknuty v knih\u00e1ch t\u00e9 doby.<\/p>\n<p>Dal\u0161\u00ed modifikac\u00ed byl kalkula\u010dkov\u00fd model <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%9A-52\">MK-52<\/a><\/noindex>, u n\u011bj u\u017e m\u011bla n\u011bjakou podobu bezenergetick\u00e9ho ukl\u00e1d\u00e1n\u00ed dat. Te\u010f u\u017e nebylo nutn\u00e9 hru nebo program zad\u00e1vat ru\u010dn\u011b, ale po proveden\u00ed n\u011bkolika kouzeln\u00fdch tah\u016f tla\u010d\u00edtky se nahr\u00e1l s\u00e1m.<\/p>\n<p>Objem nejv\u011bt\u0161\u00edho programu v kalkula\u010dce byl 105 krok\u016f, zat\u00edmco velikost trval\u00e9 pam\u011bti v MK-52 byla 512 krok\u016f.<\/p>\n<p>Mimochodem, pokud jsou mezi \u010dten\u00e1\u0159i t\u00e9to \u010dl\u00e1nky fanou\u0161ci t\u011bchto kalkula\u010dek \u2014 p\u0159i psan\u00ed \u010dl\u00e1nku jsem na\u0161el emul\u00e1tor kalkula\u010dky pro Android a programy pro n\u011bj. Vp\u0159ed, do minulosti!<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.cax.pmk.ext\">Emul\u00e1tor MK-61 pro Android<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Katalog program pro MK-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>Kr\u00e1tk\u00e9 odbo\u010den\u00ed k MK-52<\/b> <i>(z wikipedie)<\/i><\/p>\n<p>MK-52 l\u00e9tal do vesm\u00edru na lodi \u201eSoyuz TM-7\u201c. M\u011bl b\u00fdt pou\u017eit pro v\u00fdpo\u010det trajektorie p\u0159ist\u00e1n\u00ed v p\u0159\u00edpad\u011b, \u017ee by selhal palubn\u00ed po\u010d\u00edta\u010d.<\/p>\n<p>Od roku 1988 byl MK-52 s roz\u0161i\u0159uj\u00edc\u00edm pam\u011b\u0165ov\u00fdm blokem \u201eElektronika-Astro\u201c dod\u00e1v\u00e1n na lodi VMF v r\u00e1mci naviga\u010dn\u00edho v\u00fdpo\u010detn\u00edho komplexu. <\/p><\/blockquote>\n<h2>Prvn\u00ed osobn\u00ed po\u010d\u00edta\u010de<\/h2>\n<p><img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> Vra\u0165me se do doby <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%9A_(%D1%81%D0%B5%D0%BC%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BE%D0%B2)\">BK-0010<\/a><\/noindex>. Je jasn\u00e9, \u017ee pam\u011bti tam bylo v\u00edce a zad\u00e1v\u00e1n\u00ed k\u00f3du z pap\u00edru u\u017e bylo zcela nep\u0159ijateln\u00e9 (i kdy\u017e prvn\u00ed dobu jsem to p\u0159esn\u011b tak d\u011blal, proto\u017ee jin\u00fd nosi\u010d prost\u011b nebyl). Hlavn\u00edm m\u00e9diem pro ukl\u00e1d\u00e1n\u00ed a distribuci softwaru se staly audiokazety pro magnetofony.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>Ukl\u00e1d\u00e1n\u00ed na kazet\u011b obvykle prob\u00edhalo jako jeden nebo dva bin\u00e1rn\u00ed soubory, v\u0161e ostatn\u00ed bylo uvnit\u0159. Spolehlivost byla velmi n\u00edzk\u00e1, bylo nutn\u00e9 m\u00edt 2-3 kopie programu. \u010cas na\u010d\u00edt\u00e1n\u00ed tak\u00e9 nebyl povzbudiv\u00fd, nad\u0161enci experimentovali s r\u016fzn\u00fdmi frekven\u010dn\u00edmi k\u00f3dov\u00e1n\u00edmi, aby p\u0159ekonali tyto nedostatky. S\u00e1m jsem se tehdy je\u0161t\u011b profesion\u00e1ln\u00ed v\u00fdvoji softwaru nev\u011bnoval (pokud nepo\u010d\u00edt\u00e1m jednoduch\u00e9 programy v Basicu), tak\u017ee podrobnosti o tom, jak to v\u0161echno uvnit\u0159 fungovalo, bohu\u017eel ne\u0159eknu. Samotn\u00fd fakt, \u017ee na po\u010d\u00edta\u010di byla pouze RAM, v\u011bt\u0161inou ur\u010doval jednoduchost sch\u00e9matu ukl\u00e1d\u00e1n\u00ed dat.<\/p>\n<h2>Objeven\u00ed spolehliv\u00fdch a velk\u00fdch nosi\u010d\u016f informac\u00ed<\/h2>\n<p>\nPozd\u011bji se objevuj\u00ed disketov\u00e9 jednotky, proces kop\u00edrov\u00e1n\u00ed se usnad\u0148uje, zvy\u0161uje se spolehlivost.<br \/>\nAle situace se z\u00e1sadn\u011b m\u011bn\u00ed a\u017e s p\u0159\u00edchodem dostate\u010dn\u011b velk\u00fdch lok\u00e1ln\u00edch \u00falo\u017ei\u0161\u0165 ve form\u011b HDD.<\/p>\n<p>Z\u00e1sadn\u011b se m\u011bn\u00ed typ dod\u00e1vky: objevuj\u00ed se instala\u010dn\u00ed programy, kter\u00e9 \u0159\u00edd\u00ed proces konfigurace syst\u00e9mu a tak\u00e9 jeho \u010di\u0161t\u011bn\u00ed po odstran\u011bn\u00ed, proto\u017ee programy se ne\u010dtou pouze do pam\u011bti, ale ji\u017e se kop\u00edruj\u00ed do lok\u00e1ln\u00edho \u00falo\u017ei\u0161t\u011b, ze kter\u00e9ho je t\u0159eba um\u011bt v p\u0159\u00edpad\u011b pot\u0159eby odstra\u0148ovat nepot\u0159ebn\u00e9.<\/p>\n<p>Sou\u010dasn\u011b se zvy\u0161uje slo\u017eitost dod\u00e1van\u00e9ho softwaru.<br \/>\nPo\u010det soubor\u016f v dod\u00e1vce vzr\u016fst\u00e1 z jednotek na stovky a tis\u00edce, za\u010d\u00ednaj\u00ed konflikty verz\u00ed knihoven a dal\u0161\u00ed radosti, kdy r\u016fzn\u00e9 programy pou\u017e\u00edvaj\u00ed stejn\u00e1 data.<\/p>\n<p><img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> V t\u00e9 dob\u011b jsem je\u0161t\u011b nev\u011bd\u011bl o existenci Linuxu, \u017eil jsem ve sv\u011bt\u011b MS DOS a pozd\u011bji Windows, a programoval jsem v Borland Pascal a Delphi, ob\u010das jsem pokukoval po C++. Pro dod\u00e1v\u00e1n\u00ed produkt\u016f mnoz\u00ed tehdy pou\u017e\u00edvali InstallShield. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">ru.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, kter\u00fd \u00fasp\u011b\u0161n\u011b \u0159e\u0161il v\u0161echny \u00fakoly spojen\u00e9 s nasazen\u00edm a konfigurac\u00ed softwaru.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>Obdob\u00ed internetu<\/h2>\n<p>\nPostupn\u011b se slo\u017eitost softwarov\u00fdch syst\u00e9m\u016f je\u0161t\u011b zv\u00fd\u0161ila, z monolitick\u00fdch a desktopov\u00fdch aplikac\u00ed do\u0161lo k p\u0159echodu na distribuovan\u00e9 syst\u00e9my, tenk\u00e9 klienty a mikroslu\u017eby. Nyn\u00ed je t\u0159eba konfigurovat ji\u017e ne jednu aplikaci, ale jejich soubor, a to tak, aby spolu dob\u0159e fungovaly.<\/p>\n<p>Kompletn\u011b se zm\u011bnila koncepce, p\u0159i\u0161el internet, nastala \u00e9ra cloudov\u00fdch slu\u017eeb. A\u010dkoliv to bylo st\u00e1le na po\u010d\u00e1tku, ve form\u011b webov\u00fdch str\u00e1nek, nikdo o slu\u017eb\u00e1ch p\u0159\u00edli\u0161 nep\u0159em\u00fd\u0161lel. Ale to byl zlomov\u00fd okam\u017eik v pr\u016fmyslu jak v\u00fdvoje, tak dod\u00e1v\u00e1n\u00ed aplikac\u00ed.<\/p>\n<p>V\u0161iml jsem si, \u017ee v tu chv\u00edli do\u0161lo ke zm\u011bn\u011b generac\u00ed v\u00fdvoj\u00e1\u0159\u016f (nebo to bylo jen v m\u00e9m okol\u00ed), a vytvo\u0159il se pocit, \u017ee v\u0161echny star\u00e9 dobr\u00e9 zp\u016fsoby dod\u00e1v\u00e1n\u00ed byly z jednoho okam\u017eiku zapomenuty a v\u0161echno za\u010dalo znovu: cel\u00e1 dod\u00e1vka se za\u010dala prov\u00e1d\u011bt pomoc\u00ed nasazovac\u00edch skript\u016f a nazvali to hrd\u011b \u201eContinuous delivery\u201c. V podstat\u011b za\u010dalo jak\u00e9si obdob\u00ed chaosu, kdy star\u00e9 bylo zapomenuto a nov\u00e9 jednodu\u0161e neexistovalo.<\/p>\n<p>Pamatuji si na \u010dasy, kdy v na\u0161\u00ed spole\u010dnosti, kde jsem tehdy pracoval (nebudu ji jmenovat), m\u00edsto toho, aby se sestaven\u00ed prov\u00e1d\u011blo p\u0159es ant (maven tehdy je\u0161t\u011b nebyl popul\u00e1rn\u00ed nebo v\u016fbec nebyl), lid\u00e9 jednodu\u0161e vytv\u00e1\u0159eli jar v IDE a klidn\u011b ho committovali do SVN. Odpov\u00eddaj\u00edc\u00edm zp\u016fsobem se nasazen\u00ed skl\u00e1dalo z vytahov\u00e1n\u00ed souboru ze SVN a jeho kop\u00edrov\u00e1n\u00ed p\u0159es SSH na pot\u0159ebn\u00fd stroj. Tak jednoduch\u00e9 a primitivn\u00ed.<\/p>\n<p>Ve stejnou dobu dod\u00e1vka jednoduch\u00fdch web\u016f na PHP prob\u00edhala naprosto primitivn\u011b: prost\u00fdm kop\u00edrov\u00e1n\u00edm opraven\u00e9ho souboru p\u0159es FTP na c\u00edlov\u00fd stroj. N\u011bkdy nebylo ani to \u2014 k\u00f3d se upravoval p\u0159\u00edmo na produk\u010dn\u00edm serveru a bylo velk\u00fdm luxusem m\u00edt n\u011bkde z\u00e1lohy.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>RPM a DEB bal\u00ed\u010dky<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>Na druhou stranu, s rozvojem internetu z\u00edskaly st\u00e1le v\u011bt\u0161\u00ed popularitu syst\u00e9my podobn\u00e9 UNIXu, konkr\u00e9tn\u011b jsem v t\u00e9 dob\u011b objevil RedHat Linux 6, zhruba kolem roku 2000. Samoz\u0159ejm\u011b, \u017ee i tam byly ur\u010dit\u00e9 prost\u0159edky pro dod\u00e1v\u00e1n\u00ed softwaru; podle Wikipedie se hlavn\u00ed spr\u00e1vce bal\u00ed\u010dk\u016f RPM objevil v roce 1995 p\u0159i vyd\u00e1n\u00ed RedHat Linux 2.0. A od t\u00e9 doby a\u017e do sou\u010dasnosti je syst\u00e9m dod\u00e1v\u00e1n ve form\u011b RPM bal\u00ed\u010dk\u016f a \u00fasp\u011b\u0161n\u011b existuje a vyv\u00edj\u00ed se.<\/p>\n<p>Distribuce rodiny Debian \u0161ly podobnou cestou a realizovaly dod\u00e1v\u00e1n\u00ed ve form\u011b deb bal\u00ed\u010dk\u016f, co\u017e je tak\u00e9 nem\u011bnn\u00e9 a\u017e do dne\u0161n\u00edch dn\u016f.<\/p>\n<p>Spr\u00e1vci bal\u00ed\u010dk\u016f umo\u017e\u0148uj\u00ed dod\u00e1vat samotn\u00e9 programov\u00e9 produkty, konfigurovat je b\u011bhem instalace, spravovat z\u00e1vislosti mezi r\u016fzn\u00fdmi bal\u00ed\u010dky, prov\u00e1d\u011bt odstra\u0148ov\u00e1n\u00ed produkt\u016f a \u00faklid nepot\u0159ebn\u00e9ho p\u0159i deinstalaci. Tedy v podstat\u011b to je v\u0161echno, co pot\u0159ebujete; proto p\u0159etrvaly n\u011bkolik desetilet\u00ed prakticky beze zm\u011bn.<\/p>\n<p>Cloud p\u0159idal k spr\u00e1vc\u016fm bal\u00ed\u010dk\u016f instalaci nejen z fyzick\u00fdch nosi\u010d\u016f, ale i z cloudov\u00fdch repozit\u00e1\u0159\u016f, ale princip\u00e1ln\u011b se toho moc nezm\u011bnilo.<\/p>\n<p>Je t\u0159eba poznamenat, \u017ee v sou\u010dasn\u00e9 dob\u011b existuj\u00ed ur\u010dit\u00e9 snahy o odklon od deb bal\u00ed\u010dk\u016f a p\u0159echod na snap bal\u00ed\u010dky, ale o tom pozd\u011bji.<\/p>\n<p>Tak\u017ee to nov\u00e9 pokolen\u00ed cloudov\u00fdch v\u00fdvoj\u00e1\u0159\u016f, kter\u00e9 neznalo ani DEB, ani RPM, tak\u00e9 pomalu rostlo, z\u00edsk\u00e1valo zku\u0161enosti, produkty se komplikovaly a byly pot\u0159eba rozumn\u011bj\u0161\u00ed zp\u016fsoby dod\u00e1v\u00e1n\u00ed ne\u017e FTP, bash skripty a podobn\u00e9 studentsk\u00e9 v\u00fdtvory. <br \/>\nA zde vstupuje na sc\u00e9nu Docker, jak\u00e1si sm\u011bs virtualizace, rozd\u011blov\u00e1n\u00ed zdroj\u016f a zp\u016fsobu dod\u00e1v\u00e1n\u00ed. Dnes je to trendy, mladistv\u00e9, ale je skute\u010dn\u011b pot\u0159eba pro v\u0161echno? Je to l\u00e9k na v\u0161echno?<\/p>\n<p>Podle m\u00fdch pozorov\u00e1n\u00ed je velmi \u010dasto Docker nab\u00edzen ne jako rozumn\u00e1 volba, ale jednodu\u0161e proto, \u017ee o n\u011bm, z jedn\u00e9 strany, hovo\u0159\u00ed v komunit\u011b a ti, kdo jej nab\u00edzej\u00ed, ho znaj\u00ed jako jedin\u00e9ho. Na druhou stranu se o star\u00fdch dobr\u00fdch syst\u00e9mech balen\u00ed v\u011bt\u0161inou ml\u010d\u00ed \u2014 existuj\u00ed a d\u011blaj\u00ed svou pr\u00e1ci ti\u0161e a nen\u00e1padn\u011b. V takov\u00e9 situaci vlastn\u011b nen\u00ed na v\u00fdb\u011br \u2014 volba je jasn\u00e1 \u2014 Docker.<\/p>\n<p>Pokus\u00edm se pod\u011blit o zku\u0161enosti, jak u n\u00e1s prob\u00edhalo zav\u00e1d\u011bn\u00ed Dockeru a co z toho nakonec vze\u0161lo.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Vlastn\u00ed skripty<\/h4>\n<p>\nNa za\u010d\u00e1tku byly bash skripty, kter\u00e9 nasazovaly jar archivy na pot\u0159ebn\u00e9 stroje. Tento proces \u0159\u00eddil Jenkins. To \u00fasp\u011b\u0161n\u011b fungovalo, proto\u017ee jar archiv je s\u00e1m o sob\u011b bal\u00ed\u010dkem, kter\u00fd obsahuje t\u0159\u00eddy, zdroje a dokonce i konfiguraci. Pokud do n\u011bj naskl\u00e1d\u00e1te v\u0161e maxim\u00e1ln\u011b, rozbalen\u00ed skriptem nen\u00ed to nejt\u011b\u017e\u0161\u00ed, co je t\u0159eba ud\u011blat.<\/p>\n<p>Ale skripty maj\u00ed n\u011bkolik nev\u00fdhod:<\/p>\n<ul>\n<li> Skripty se obvykle p\u00ed\u0161\u00ed na posledn\u00ed chv\u00edli a jsou tak primitivn\u00ed, \u017ee obsahuj\u00ed pouze jeden nejv\u00fdhodn\u011bj\u0161\u00ed sc\u00e9n\u00e1\u0159. K tomu p\u0159isp\u00edv\u00e1 to, \u017ee v\u00fdvoj\u00e1\u0159 tou\u017e\u00ed po rychl\u00e9 dod\u00e1vce, zat\u00edmco norm\u00e1ln\u00ed skript vy\u017eaduje zna\u010dn\u00e9 mno\u017estv\u00ed zdroj\u016f.<\/li>\n<li> Jako d\u016fsledek p\u0159edchoz\u00edho bodu skripty neobsahuj\u00ed proceduru odinstalace.<\/li>\n<li> Neexistuje stanoven\u00e1 procedura pro upgrade.<\/li>\n<li> P\u0159i p\u0159\u00edchodu nov\u00e9ho produktu je t\u0159eba napsat nov\u00fd skript.<\/li>\n<li> Nen\u00ed zde podpora z\u00e1vislost\u00ed.<\/li>\n<\/ul>\n<p>\nSamoz\u0159ejm\u011b, lze napsat sofistikovan\u00fd skript, ale, jak jsem ji\u017e zm\u00ednil, to vy\u017eaduje \u010das na v\u00fdvoj, a jak je zn\u00e1mo, \u010dasu je v\u017edy nedostatek.<\/p>\n<p>To samoz\u0159ejm\u011b v\u00fdznamn\u011b omezuje pou\u017eit\u00ed tohoto zp\u016fsobu nasazen\u00ed pouze na nejjednodu\u0161\u0161\u00ed syst\u00e9my. Nastal \u010das to zm\u011bnit.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>V ur\u010dit\u00e9m okam\u017eiku k n\u00e1m za\u010dali p\u0159ich\u00e1zet nov\u00ed st\u0159edn\u011b pokro\u010dil\u00ed v\u00fdvoj\u00e1\u0159i pln\u00ed n\u00e1pad\u016f a nad\u0161en\u00ed pro Docker. No, bandera v ruce \u2013 jdeme na to! Byly dv\u011b pokusy. Oba ne\u00fasp\u011b\u0161n\u00e9 \u2013 \u0159ekn\u011bme kv\u016fli velk\u00fdm ambic\u00edm, ale nedostatku skute\u010dn\u00fdch zku\u0161enost\u00ed. M\u011blo se to urychlovat a dod\u011bl\u00e1vat za ka\u017edou cenu? O pochybnost \u2013 t\u00fdm by m\u011bl evolu\u010dn\u011b dosp\u011bt na pot\u0159ebnou \u00farove\u0148, ne\u017e bude schopen pou\u017e\u00edvat odpov\u00eddaj\u00edc\u00ed n\u00e1stroje. Krom\u011b toho, p\u0159i pou\u017e\u00edv\u00e1n\u00ed hotov\u00fdch Docker image jsme \u010dasto narazili na to, \u017ee tam \u0161patn\u011b fungovala s\u00ed\u0165 (co\u017e mo\u017en\u00e1 souviselo i s nevyzr\u00e1lost\u00ed samotn\u00e9ho Dockera) nebo bylo obt\u00ed\u017en\u00e9 roz\u0161\u00ed\u0159it ciz\u00ed kontejnery.<\/p>\n<p>Jak\u00e9 pot\u00ed\u017ee jsme za\u017eili?<\/p>\n<ul>\n<li> Probl\u00e9my se s\u00edt\u00ed v re\u017eimu bridge.<\/li>\n<li> Nen\u00ed pohodln\u00e9 sledovat logy v kontejneru (pokud nejsou nikam jinam vyvedeny do souborov\u00e9ho syst\u00e9mu hostitelsk\u00e9ho stroje).<\/li>\n<li> P\u0159\u00edle\u017eitostn\u011b doch\u00e1zelo k podivn\u00e9mu zamrznut\u00ed ElasticSearch uvnit\u0159 kontejneru, p\u0159\u00ed\u010dinu jsme tak nikdy neustavili, kontejner byl ofici\u00e1ln\u00ed.<\/li>\n<li> Nen\u00ed pohodln\u00e9 pou\u017e\u00edvat shell uvnit\u0159 kontejneru \u2013 v\u0161e je siln\u011b omezen\u00e9, chyb\u00ed obvykl\u00e9 n\u00e1stroje.<\/li>\n<li> Velikost shroma\u017e\u010fovan\u00fdch kontejner\u016f je vysok\u00e1 \u2014 je n\u00e1kladn\u00e9 je skladovat.<\/li>\n<li> Kv\u016fli velk\u00fdm rozm\u011br\u016fm kontejner\u016f je obt\u00ed\u017en\u00e9 udr\u017eovat v\u00edcero verz\u00ed.<\/li>\n<li> Dlouhodob\u011bj\u0161\u00ed sestaven\u00ed, na rozd\u00edl od jin\u00fdch metod (skripty nebo deb bal\u00ed\u010dky).<\/li>\n<\/ul>\n<p>\nNa druhou stranu, pro\u010d by m\u011bl b\u00fdt Spring servis ve form\u011b jar archivu hor\u0161\u00ed na nasazen\u00ed ne\u017e stejn\u00fd deb? Opravu pot\u0159ebujeme izolaci zdroj\u016f? M\u00e1 smysl se zbavovat praktick\u00fdch n\u00e1stroj\u016f opera\u010dn\u00edho syst\u00e9mu, kdy\u017e prosazujeme slu\u017ebu do v\u00fdrazn\u011b omezen\u00e9ho kontejneru?<\/p>\n<p>Jak ukazuje praxe \u2014 ve skute\u010dnosti to nen\u00ed pot\u0159eba, deb bal\u00ed\u010dku sta\u010d\u00ed v 90 % p\u0159\u00edpad\u016f.<\/p>\n<p>Kdy v\u0161ak star\u00fd dobr\u00fd deb nefunguje a kdy jsme opravdu pot\u0159ebovali Docker?<\/p>\n<p>Pro n\u00e1s to bylo nasazen\u00ed slu\u017eeb v Pythonu. Mnoho knihoven pot\u0159ebn\u00fdch pro strojov\u00e9 u\u010den\u00ed, kter\u00e9 chyb\u011bly ve standardn\u00edm dod\u00e1vce opera\u010dn\u00edho syst\u00e9mu (a to, co tam bylo \u2014 v nespr\u00e1vn\u00fdch verz\u00edch), hacky s nastaven\u00edm, pot\u0159eba r\u016fzn\u00fdch verz\u00ed pro r\u016fzn\u00e9 slu\u017eby, kter\u00e9 b\u011b\u017e\u00ed na stejn\u00e9 hostitelsk\u00e9 syst\u00e9mu vedly k tomu, \u017ee jedin\u00fdm rozumn\u00fdm zp\u016fsobem dod\u00e1n\u00ed t\u00e9to sm\u011bsi se stal Docker. Pracnost sestaven\u00ed Docker kontejneru se uk\u00e1zala jako ni\u017e\u0161\u00ed ne\u017e my\u0161lenka zabalit to v\u0161echno do samostatn\u00fdch deb bal\u00ed\u010dk\u016f se z\u00e1vislostmi, vlastn\u011b by se nikdo p\u0159i zdrav\u00e9m rozumu o to ani nepokusil.<\/p>\n<p>Druh\u00fd aspekt, kde se pl\u00e1nuje pou\u017eit\u00ed Dockeru \u2014 pro nasazen\u00ed slu\u017eeb podle sch\u00e9matu blue-green deploy. Ale zde si p\u0159eji postupn\u00e9 zvy\u0161ov\u00e1n\u00ed slo\u017eitosti: nejprve se sestav\u00ed deb bal\u00ed\u010dky a teprve pot\u00e9 z nich vznikne Docker kontejner.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Snap bal\u00ed\u010dky<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evoluce dodac\u00edch prost\u0159edk\u016f, aneb \u00favahy o Dockeru, deb, jar a dal\u0161\u00edch\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> Vra\u0165me se k snap bal\u00ed\u010dk\u016fm. Poprv\u00e9 se ofici\u00e1ln\u011b objevily v Ubuntu 16.04. Na rozd\u00edl od b\u011b\u017en\u00fdch deb bal\u00ed\u010dk\u016f a rpm bal\u00ed\u010dk\u016f nesou snap v\u0161echny z\u00e1vislosti. Na jedn\u00e9 stran\u011b to umo\u017e\u0148uje vyhnout se konfliktu knihoven, na stran\u011b druh\u00e9 \u2014 to znamen\u00e1 v\u011bt\u0161\u00ed velikosti v\u00fdsledn\u00e9ho bal\u00ed\u010dku. Krom\u011b toho to m\u016f\u017ee m\u00edt vliv na bezpe\u010dnost syst\u00e9mu: p\u0159i dod\u00e1v\u00e1n\u00ed snap mus\u00ed v\u00fdvoj\u00e1\u0159, kter\u00fd bal\u00ed\u010dek vytv\u00e1\u0159\u00ed, sledovat v\u0161echny zm\u011bny zahrnut\u00fdch knihoven. Celkov\u011b to nen\u00ed tak jednozna\u010dn\u00e9 a obecn\u00e9 \u0161t\u011bst\u00ed z jejich pou\u017e\u00edv\u00e1n\u00ed nenast\u00e1v\u00e1. Nicm\u00e9n\u011b, je to rozumn\u00e1 alternativa, pokud je Docker pou\u017e\u00edv\u00e1n pouze jako prost\u0159edek balen\u00ed, nikoli virtualizace.<\/p>\n<p><br clear=\"all\"><br \/>\nV\u00fdsledkem je, \u017ee nyn\u00ed rozumn\u011b pou\u017e\u00edv\u00e1me jak deb bal\u00ed\u010dky, tak docker kontejnery, kter\u00e9 v n\u011bkter\u00fdch p\u0159\u00edpadech mo\u017en\u00e1 nahrad\u00edme snap bal\u00ed\u010dky.<\/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 pou\u017e\u00edv\u00e1te pro dod\u00e1vku?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Vlastn\u00ed skripty<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Kop\u00edrujeme ru\u010dn\u011b pomoc\u00ed FTP.<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    deb bal\u00ed\u010dky<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    rpm bal\u00ed\u010dky<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    snap bal\u00ed\u010dky<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Docker obrazy<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Obr\u00e1zky virtu\u00e1ln\u00edch stroj\u016f<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Klonujeme HDD kompletn\u011b.<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    puppet<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ansible<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Jin\u00e9<\/p>\n<\/li>\n<\/ul>\n<p>    Hlasovalo 109 u\u017eivatel\u016f. 32 u\u017eivatel\u016f se zdr\u017eelo.<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/srg\/blog\/444102\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043e\u043a\u0435\u0440 \u0438 deb-\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0430\u043b, \u043c\u0435\u043d\u044f \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u043e\u043d\u0435\u0441\u043b\u043e \u0432 \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0443\u0445\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u043a\u0435\u0440\u0430 \u0438 deb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0442 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043c\u0443 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438, \u043a\u043e\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043d\u0430 \u0412\u0430\u0448 \u0441\u0443\u0434. \u041b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-42175","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\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\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\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\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\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-03-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:45:00+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\udd47Evoluce dodac\u00edch prost\u0159edk\u016f, nebo \u00favahy o Dockeru, deb, jar a dal\u0161\u00edm | ProHoster","description":"N\u011bjak v jeden moment.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","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\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e Docker, deb, jar \u0438 \u043f\u0440\u043e\u0447\u0435\u043c | ProHoster","og:description":"\u041a\u0430\u043a-\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","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-03-17T21:00:00+00:00","article:modified_time":"2020-02-18T10:45:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"42175","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-22 07:30:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:04:29","updated":"2026-01-22 07:30:19","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\/42175","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=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}