{"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\/hr\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednom sam odlu\u010dio napisati \u010dlanak o isporuci u obliku Docker kontejnera i deb paketa, no kad sam po\u010deo, nekako sam bio odveden u davna vremena prvih osobnih ra\u010dunala i \u010dak kalkulatora. Umjesto suhoparnih usporedba izme\u0111u Dockera i deb-a, nastali su ovakvi razmi\u0161ljanja o evoluciji, koja vam predstavljam na uvid.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSvaki proizvod, bez obzira na to kakav bio, mora na neki na\u010din sti\u0107i do serverskih proizvoda, mora biti konfiguriran i pokrenut. O tome \u0107e govoriti ovaj \u010dlanak.<\/p>\n<p>Razmi\u0161ljat \u0107u u povijesnom kontekstu, \"\u0161to vidim - o tom pjevam\", o tome \u0161to sam vidio kada sam tek po\u010deo pisati kod i \u0161to sada promatram, \u0161to sami trenutno koristimo i za\u0161to. \u010clanak ne pretendira na potpuno istra\u017eivanje, neki su aspekti propu\u0161teni, ovo je moj osobni pogled na ono \u0161to je bilo i \u0161to je sada.<\/p>\n<p>Dakle, u dobra stara vremena\u2026 najraniji na\u010din isporuke kojeg se sje\u0107am bili su kasete iz magnetofona. Imao sam ra\u010dunalni model BK-0010.01...<\/p>\n<h2>Era kalkulatora<\/h2>\n<p>\nNe, bio je jo\u0161 jedan raniji trenutak, bio je jo\u0161 kalkulator <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> i <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=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> E pa, kada sam imao <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>, na\u010din prijenosa programa bio je obi\u010dan papir u kockicama, na kojem je bila zapisana programa koja se po potrebi ru\u010dno unosila u kalkulator. \u017deli\u0161 igrati (da-da, \u010dak su i na ovom prastarom kalkulatoru bile igre) \u2014 sjedne\u0161 i unosi\u0161 program u kalkulator. Naravno, kad se kalkulator isklju\u010di, program odlazi u zaborav. Osim vlastoru\u010dno ispisanih kodova kalkulatora, programi su se objavljivali u \u010dasopisima \"Radio\" i \"Tehnika mladih\", te su se tiskali u knjigama toga vremena.<\/p>\n<p>Sljede\u0107a modifikacija bila je kalkulator <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>, ve\u0107 je imao neku vrstu energetski neovisnog pohranjivanja podataka. Sada nije bilo potrebno program ili igru unositi ru\u010dno, ve\u0107, izvedbom nekih magi\u010dnih pokreta dugmadi, ona se u\u010ditavala sama.<\/p>\n<p>Obim najve\u0107eg programa u kalkulatoru bio je 105 koraka, a veli\u010dina trajne memorije u MK-52 \u2014 512 koraka.<\/p>\n<p>Usput, ako ima obo\u017eavatelja tih kalkulatora koji \u010ditaju ovaj \u010dlanak \u2014 tijekom pisanja \u010dlanka na\u0161ao sam i emulator kalkulatora za Android, kao i programe za njega. Naprijed, u pro\u0161lost!<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.cax.pmk.ext\">Emulator MK-61 za Android<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Katalog programa za MK-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>Malo odstupanje o MK-52<\/b> <i>(iz wikipedije)<\/i><\/p>\n<p>MK-52 je letio u svemir na brodu 'Soyuz TM-7'. Predvi\u0111eno je bilo da se koristi za izra\u010dunavanje putanje slijetanja u slu\u010daju kvara brodskog ra\u010dunala.<\/p>\n<p>MK-52 s blokom pro\u0161irenja memorije 'Elektronika-Astro' isporu\u010divan je na brodove VMF-a od 1988. godine kao dio navigatorovog ra\u010dunala. <\/p><\/blockquote>\n<h2>Prvi osobni ra\u010dunala<\/h2>\n<p><img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> Vratimo se u vremena <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>. O\u010dito je da je i memorije sada vi\u0161e, a upisivanje koda s papira vi\u0161e nije bila opcija (iako sam to isprva radio jer drugog sredstva nije bilo). Osnovno sredstvo pohrane i distribucije softvera postaju audio kasete za magnetofone.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>Pohrana na kasetama obi\u010dno je bila u obliku jednog ili dva binarna datoteka, dok je sve ostalo bilo unutar. Pouzdanost je bila vrlo niska, pa je bilo potrebno imati 2-3 kopije programa. Vrijeme u\u010ditavanja tako\u0111er nije bilo zadovoljavaju\u0107e, entuzijasti su eksperimentirali s razli\u010ditim frekvencijskim kodiranjem kako bi prevazi\u0161li te nedostatke. Sam u to vrijeme jo\u0161 nisam se bavio profesionalnim razvojem softvera (osim jednostavnih programa na Basicu), tako da na\u017ealost ne mogu detaljno opisati kako je sve bilo ure\u0111eno unutra. Samo postojanje RAM-a na ra\u010dunalu ve\u0107inom je odre\u0111ivalo jednostavnost sheme pohrane podataka.<\/p>\n<h2>Pojava pouzdanih i velikih medija za pohranu<\/h2>\n<p>\nKasnije se pojavljuju diskete, proces kopiranja postaje jednostavniji, pouzdanost raste.<br \/>\nNo situacija se drasti\u010dno menja tek kada se pojave dovoljno veliki lokalni ure\u0111aji za pohranu u obliku HDD-a.<\/p>\n<p>Fundamentalno se menja tip isporuke: pojavljuju se instalacijski programi koji upravljaju procesom konfiguracije sistema, kao i \u010di\u0161\u0107enjem nakon uklanjanja, po\u0161to se programi ne samo u\u010ditavaju u memoriju, nego se kopiraju u lokalno skladi\u0161te, iz kojeg treba znati o\u010distiti nepotrebno po potrebi.<\/p>\n<p>Paralelno se pove\u0107ava slo\u017eenost isporu\u010denog softvera.<br \/>\nBroj datoteka u isporuci raste od jedne do stotina i tisu\u0107a, po\u010dinju sukobi verzija biblioteka i druge radosti kada razli\u010diti programi koriste iste podatke.<\/p>\n<p><img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> U to vrijeme nisam bio svjestan postojanja Linuxa, \u017eivio sam u svijetu MS DOS-a, a kasnije Windowsa, programiraju\u0107i u Borland Pascalu i Delphiju, povremeno se zagledaju\u0107i u C++. Mnogi su tada koristili InstallShield za distribuciju proizvoda. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">hr.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, koji je prili\u010dno uspje\u0161no rje\u0161avao sve postavljene zadatke vezane uz implementaciju i konfiguraciju softvera.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>Era interneta<\/h2>\n<p>\nPostupno se slo\u017eenost softverskih sustava dodatno pove\u0107avala, prelaze\u0107i s monolitnih i desktop aplikacija na distribuirane sustave, tanke klijente i mikroservise. Sada je potrebno konfigurirati ne samo jedan program, ve\u0107 \u010ditav niz njih, tako da svi zajedno dobro funkcioniraju.<\/p>\n<p>Potpuno se promijenila koncepcija, do\u0161ao je Internet, nastupila je era oblaka. Iako je to jo\u0161 uvijek bilo u po\u010detnoj fazi, u obliku web stranica, nitko nije sanjao o stvarnim servisima. To je bio prekretnica u industriji, kako u razvoju, tako i u samom dostavljanju aplikacija.<\/p>\n<p>Primijetio sam da je u tom trenutku do\u0161lo do promjene generacija programera (ili je to bilo samo u mom okru\u017eenju), i stekao sam dojam da su svi stari dobri na\u010dini distribucije u jednom trenutku zaboravljeni, a sve je po\u010delo iznova: cijela distribucija po\u010dela se raditi s ad-hoc skriptama i to se ponosno nazvalo \"Continuous delivery\". U stvarnosti, zapo\u010deo je period kaosa, kada je staro zaboravljeno i nije se koristilo, a novog jednostavno nije bilo.<\/p>\n<p>Sje\u0107am se vremena kada smo u kompaniji u kojoj sam tada radio (ne\u0107u spominjati ime), umjesto da radimo gradnju preko ant-a (maven tada jo\u0161 nije bio poznat ili nije ni postojao), ljudi su jednostavno gradili jar u IDE-u i nesmetano ga komitirali u SVN. Tako je implementacija uklju\u010divala va\u0111enje datoteke iz SVN-a i kopiranje preko SSH na \u017eeljeni stroj. Tako jednostavno i grubo.<\/p>\n<p>U to vrijeme, isporuka jednostavnih web stranica na PHP-u radila se na prili\u010dno primitivan na\u010din \u2013 jednostavnim kopiranjem ispravljenih datoteka preko FTP-a na ciljni stroj. Ponekad nije bilo ni toga \u2013 kod je mijenjan u\u017eivo na produkcijskom poslu\u017eitelju, a bilo je posebno cijenjeno ako je negdje postojala sigurnosna kopija.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>RPM- i DEB-paketi<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>S druge strane, s razvojem interneta sve ve\u0107u popularnost po\u010dinju stjecati UNIX-sli\u010dni sustavi, osobito u to vrijeme otkrio sam RedHat Linux 6, otprilike 2000. godine. Naravno, i tamo su postojala odre\u0111ena sredstva za distribuciju softvera; prema Wikipediji, RPM kao glavni alat za upravljanje paketima pojavio se ve\u0107 1995. godine u verziji RedHat Linux 2.0. Od tada pa do danas, sustav se isporu\u010duje u obliku RPM paketa i uspje\u0161no postoji i razvija se.<\/p>\n<p>Debian distribucije krenule su sli\u010dnim putem i realizirale distribuciju u obliku deb paketa, \u0161to tako\u0111er ostaje nepromijenjeno do danas.<\/p>\n<p>Upravitelji paketa omogu\u0107uju distribuciju samih programskih proizvoda, konfiguraciju tijekom instalacije, upravljanje ovisnostima izme\u0111u razli\u010ditih paketa, uklanjanje proizvoda i \u010di\u0161\u0107enje vi\u0161ka tijekom deinstalacije. Drugim rije\u010dima, to je uglavnom sve \u0161to je potrebno, zbog \u010dega su opstali nekoliko desetlje\u0107a gotovo bez promjena.<\/p>\n<p>Obla\u010dnost je dodala u upravlja\u010de paketa instalaciju ne samo s fizi\u010dkih medija, ve\u0107 i iz oblaka repozitorija, no su\u0161tinski se malo toga promijenilo.<\/p>\n<p>Va\u017eno je napomenuti da u dana\u0161nje vrijeme postoje neki poku\u0161aji odlaska od deb paketa i prelaska na snap pakete, ali o tome kasnije.<\/p>\n<p>Tako je ova nova generacija obla\u010dnih programera, koja nije znala ni za DEB ni za RPM, tako\u0111er polako rasla, stjecala iskustvo, proizvodi su se komplicirali i trebali su neki razumljiviji na\u010dini distribucije nego FTP, bash skripte i sli\u010dne studentske radove. <br \/>\nI ovdje na scenu ulazi Docker, svojevrsna mje\u0161avina virtualizacije, ograni\u010denja resursa i na\u010dina distribucije. Sada je to moderno, atraktivno, ali da li je potrebno za sve? Je li to panaceja?<\/p>\n<p>Prema mojim zapa\u017eanjima, vrlo \u010desto se Docker ne nudi kao razumna opcija, ve\u0107 samo zato \u0161to se o njemu, s jedne strane, govori u zajednici, a oni koji ga nude, samo to i znaju. S druge strane, o starim, dobrim sistemima pakiranja ve\u0107inom se \u0161uti - postoje i rade tiho i neprimjetno. U toj situaciji nema puno izbora - izbor je o\u010dit - Docker.<\/p>\n<p>Poku\u0161at \u0107u podijeliti iskustvo o tome kako je kod nas pro\u0161la implementacija Dockera i \u0161to je na kraju ispalo.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Samospisani skripti<\/h4>\n<p>\nU po\u010detku su postojali bash skripti koje su instalirale jar arhive na potrebne ma\u0161ine. Tim procesom je upravljao Jenkins. To je uspe\u0161no radilo, s obzirom da je sam jar arhiv ve\u0107 sastavni deo koji sadr\u017ei klase, resurse i \u010dak konfiguraciju. Ako se u njega max. stavi sve \u2014 rasporediti to skriptom nije najte\u017ei zadatak.<\/p>\n<p>Me\u0111utim, skripti imaju nekoliko nedostataka:<\/p>\n<ul>\n<li> skripti se obi\u010dno pi\u0161u u \u017eurbi i stoga su tako primitivni da sadr\u017ee samo jedan najuspje\u0161niji scenarij. To olak\u0161ava \u010dinjenica da je programer zainteresovan za brzu isporuku, a normalna skripta zahteva ulaganje zna\u010dajnog broja resursa.<\/li>\n<li> kao posledica prethodne ta\u010dke, skripti ne sadr\u017ee postupak deinstalacije.<\/li>\n<li> nema definisanog postupka nadogradnje.<\/li>\n<li> pojavom novog proizvoda, treba pisati novu skriptu.<\/li>\n<li> nema podr\u0161ke za zavisnosti.<\/li>\n<\/ul>\n<p>\nNaravno, mo\u017ee se napisati slo\u017eena skripta, ali, kao \u0161to sam ve\u0107 napisao \u2014 to je vreme za razvoj, a vremena, kao \u0161to se zna, uvek nedostaje.<\/p>\n<p>Sve to o\u010digledno ograni\u010dava primenu ovog na\u010dina \u0161irenja samo na najjednostavnije sisteme. Do\u0161ao je trenutak za promene.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>U nekom trenutku po\u010deli su nam dolaziti sve\u017ei mid-level programeri, puni ideja i opsesija Dockerom. Pa, uzmi zastavu \u2014 idemo! Bilo je dva poku\u0161aja. Obe neuspe\u0161ne \u2014 recimo, zbog velikih ambicija, ali nedostatka stvarnog iskustva. Da li je trebalo forsirati i dovr\u0161iti to po svaku cenu? Verovatno ne \u2014 tim treba evolutivno da dostigne potreban nivo pre nego \u0161to bude mogao da koristi odgovaraju\u0107e alate. Pored svega, koriste\u0107i gotove Docker slike, \u010desto smo se suo\u010davali s problemom nepravilnog rada mre\u017ee (\u0161to je mo\u017eda bilo jo\u0161 povezano s nedovoljno zrelom verzijom Dockera) ili je bilo te\u0161ko pro\u0161iriti tu\u0111e kontejnere.<\/p>\n<p>S kojim smo se neugodnostima suo\u010dili?<\/p>\n<ul>\n<li> Problemi s mre\u017eom u bridge re\u017eimu.<\/li>\n<li> Te\u0161ko je pregledati logove unutar kontejnera (ako nisu odvojeno preneseni u datote\u010dni sistem doma\u0107ina).<\/li>\n<li> Povremeno \u010dudno zadr\u017eavanje ElasticSearch-a unutar kontejnera, razlog nikada nije utvr\u0111en, kontejner je zvani\u010dan.<\/li>\n<li> Te\u0161ko je koristiti shell unutar kontejnera \u2014 sve je drasti\u010dno skra\u0107eno, nema poznatih alata.<\/li>\n<li> Velika veli\u010dina prikupljenih kontejnera \u2014 skupo ih je skladi\u0161titi<\/li>\n<li> Zbog velike veli\u010dine kontejnera te\u0161ko je odr\u017eavati vi\u0161e verzija<\/li>\n<li> Produ\u017eeno vrijeme izrade, za razliku od drugih na\u010dina (skripte ili deb-paketi)<\/li>\n<\/ul>\n<p>\nS druge strane, za\u0161to je Spring usluga u obliku jar-arhive lo\u0161ija za implementaciju nego putem istog deb-a? Treba li stvarno izolacija resursa? Vrijedi li se odricati prakti\u010dnih alata operativnog sustava stavljaju\u0107i uslugu u jako ograni\u010den kontejner?<\/p>\n<p>Kako praksa pokazuje \u2014 to zapravo nije potrebno, deb-paket je dovoljan u 90% slu\u010dajeva.<\/p>\n<p>Kada stari dobri deb ne uspije i kada nam je stvarno potreban Docker?<\/p>\n<p>Za nas je to bilo implementacija usluga na Pythonu. Mnoge biblioteke potrebne za strojno u\u010denje nisu prisutne u standardnoj isporuci operativnog sustava (a ono \u0161to je bilo \u2014 nije bilo pravih verzija), trikovi s postavkama, potreba za razli\u010ditim verzijama za razli\u010dite usluge koje rade na istom doma\u0107inu doveli su do toga da je jedini razuman na\u010din isporuke ovog slo\u017eenog skupa bio Docker. Radna optere\u0107enja izrade Docker kontejnera bila su manja nego ideja o pakiranju svega u zasebne deb-pakete s zavisnostima, a zapravo se nitko s razumnom pame\u0107u nikada ne bi ni upustio u to.<\/p>\n<p>Druga stvar gdje se planira koristiti Docker \u2014 za implementaciju usluga prema shemi blue-green deploy. No, ovdje \u017eelimo postupno pove\u0107anje slo\u017eenosti: prvo se prikupljaju deb-paketi, a nakon toga se iz njih sastavlja Docker kontejner.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Snap-paketi<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> Vratimo se snap-paketicima. Prvi put su se slu\u017ebeno pojavili u Ubuntu 16.04. Za razliku od uobi\u010dajenih deb-paketa i rpm-paketa, snap sadr\u017ei sve zavisnosti. S jedne strane, to omogu\u0107uje izbjegavanje sukoba biblioteka, s druge strane \u2014 rezultiraju\u0107i paket je ve\u0107i. Tako\u0111er, to mo\u017ee utjecati na sigurnost sustava: u slu\u010daju isporuke s naprednim promjenama u uklju\u010denim bibliotekama, sam programer koji stvara paket treba pratiti. Uglavnom, nije sve tako jednostavno i sveobuhvatna sre\u0107a od njihove upotrebe ne dolazi. Ali, unato\u010d tome, to je razumljiva alternativa ako se Docker koristi samo kao sredstvo pakiranja, a ne virtualizacije.<\/p>\n<p><br clear=\"all\"><br \/>\nKao rezultat, trenutno u razumnom omjeru koristimo i deb pakete i Docker kontejnere, koje \u0107emo, u odre\u0111enim slu\u010dajevima, mo\u017eda zamijeniti sa snap paketima.<\/p>\n<p class=\"for_users_only_msg\">Samo registrirani korisnici mogu sudjelovati u anketi. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Prijavite se<\/a><\/noindex>, molimo.<\/p>\n<h2 class=\"default-block__polling-title\">\u0160to vi koristite za isporuku?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Samospisani skripti<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Kopiramo ru\u010dno na FTP<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    deb paketi<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    rpm paketi<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    snap paketi<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Docker slike<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Slike virtualnih strojeva<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Kloni HDD u cijelosti<\/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>                    Ostalo<\/p>\n<\/li>\n<\/ul>\n<p>    Glasalo je 109 korisnika. 32 korisnika je bilo suzdr\u017eano.<\/p>\n<p>Izvor: <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\/hr\/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=\"hr_HR\" \/>\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\/hr\/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\udd47Evolucija sredstava isporuke, ili razmi\u0161ljanja o Dockeru, deb, jar i ostalome | ProHoster","description":"Na trenutak.","canonical_url":"https:\/\/prohoster.info\/hr\/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":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/42175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}