{"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\/et\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKordagi mingil hetkel otsustasin kirjutada artikli konteinerite Docker ja deb-pakettide tarnimisest, kuid kui ma alustasin, viis mind mingil p\u00f5hjusel tagasi kaugetesse aegadesse esimeste isiklike arvutite ja isegi kalkulaatorite juurde. L\u00fchidalt, kuivadest v\u00f5rdlustest Docker ja deb said hoopis sellised m\u00f5lgutused evolutsiooni teemal, mida ma esitan teie kohtusse.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIga toode, \u00fcksk\u00f5ik milline see ka ei oleks, peab kuidagi j\u00f5udma tootmisserveritesse, olema seadistatud ja k\u00e4ivitama. Just sellest r\u00e4\u00e4gibki see artikkel.<\/p>\n<p>M\u00f5lgutan m\u00f5tteid ajaloolises kontekstis, \"mida n\u00e4en \u2013 sellest ka r\u00e4\u00e4gin\", mis j\u00e4i mulle silma, kui ma alles alustasin koodi kirjutamist ja mida ma praegu j\u00e4lgin, mida me ise praegu kasutame ja miks. Artikkel ei pretendeeri t\u00e4ielikule uurimisele, m\u00f5ned punktid on j\u00e4\u00e4nud t\u00e4helepanuta, see on minu isiklik vaade sellele, mis oli ja mis on n\u00fc\u00fcd.<\/p>\n<p>Nii et vanades heades aegades... varajaseim tarnimisviis, mida ma olen kogenud, olid magnetofonikassetid. Mul oli arvuti BK-0010.01...<\/p>\n<h2>Kalkulaatorite ajastu<\/h2>\n<p>\nEi, oli veel varasemaid hetki, oli veel kalkulaator. <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> ja <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=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> Nii et kui mul oli <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>, siis oli programmi edastamise viis tavaline ruuduline paberileht, millele oli kirja pandud programm, mille v\u00e4lja tr\u00fckkimist esmal j\u00f5udis v\u00e4lja kirjutada k\u00e4sitsi kalkulaatorisse. Tahad m\u00e4ngida (jah- jah, isegi selle eelajaloolise kalkulaatoriga oli m\u00e4nge) \u2013 istud ja tr\u00fckkid programmi kalkulaatorisse. Loomulikult, kui kalkulaator v\u00e4lja l\u00fclitati, kadus programm igavesse unustusse. Peale k\u00e4sitsi v\u00e4lja kirjutatud kalkulaatorikoodide ilmusid programmid ajakirjades \"Raadio\" ja \"Tehnika noortele\" ning need tr\u00fckiti ka tolle aja raamatutes.<\/p>\n<p>J\u00e4rgneva \u00fcmberkujundamise tegi kalkulaator <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>, millel oli juba mingi sarnane energiat mitte s\u00f5ltuv andmete salvestamine. N\u00fc\u00fcd ei olnud m\u00e4ngu v\u00f5i programmi vaja enam k\u00e4sitsi sisestada, vaid m\u00f5ne n\u00f5ia k\u00e4eliigutusega nuppudel laadis see ennast automaatselt.<\/p>\n<p>Kalkulaatori suurima programmi maht oli 105 sammu ja MK-52 pideva m\u00e4lu suurus oli 512 sammu.<\/p>\n<p>Muide, kui on neid kalkulaatorite f\u00e4nne, kes seda artiklit loevad \u2013 artikli kirjutamise protsessi k\u00e4igus leidsin ma ka Androidile kalkulaatori emulaatori ja programmid sellele. Edasi, minevikku!<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.cax.pmk.ext\">MK-61 emulaator Androidile<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Programmide kataloog M\u041a-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>L\u00fchike k\u00f5rvalp\u00f5ige M\u041a-52-st<\/b> <i>(Vikipeediast)<\/i><\/p>\n<p>M\u041a-52 lendas kosmosesse laevaga \u201eSoyuz TM-7\u201c. Seda pidi kasutama maandumis trajektoori arvutamiseks, kui laeva arvuti eba\u00f5nnestub.<\/p>\n<p>M\u041a-52 koos m\u00e4lu laiendusplokiga \u201eElektronika-Astro\u201c tarniti alates 1988. aastast laevadele, kuhu kuulus ka navigatsiooni arvutuskompleks. <\/p><\/blockquote>\n<h2>Esimesed personaalarvutid<\/h2>\n<p><img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> Naaseme ajastutesse <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)\">\u0411\u041a-0010<\/a><\/noindex>. Loomulikult on seal rohkem m\u00e4lu ja koodi sisestamine paberilt enam ei tule k\u00f5ne allagi (kuigi esialgu tegin ma just nii, sest teisi andmekandjaid polnud). Peamine tarkvara salvestamise ja tarnimise vahendiks saavad magnetofoni audiokassettid.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>Kassettide peal salvestamine toimis tavaliselt \u00fche v\u00f5i kahe binaarfaili kujul, k\u00f5ik muu oli sees. Usaldusv\u00e4\u00e4rsus oli v\u00e4ga madal, tuli hoida 2-3 koopiat programmist. Laadimisaeg oli samuti pettumustvalmistav, entusiastid katsetasid erinevate sageduskoodeerimistega, et neid puudusi \u00fcletada. Sel ajal ei tegelenud ma veel professionaalse tarkvara arendamisega (v\u00e4lja arvatud lihtsad programmid BASIC'is), seega ma ei oska kahjuks detaile selle kohta jagada, kuidas k\u00f5ik sees toimis. Ainult see, et arvutis oli peamiselt ainult RAM, m\u00e4\u00e4ras andmete salvestamise lihtsuse.<\/p>\n<h2>Usaldusv\u00e4\u00e4rsete ja suurte andmekandjate tulek<\/h2>\n<p>\nHiljem ilmusid k\u00f5vakettad, lihtsustades kopeerimist ja parandades usaldusv\u00e4\u00e4rsust.<br \/>\nAga olukord muutub kardinaalselt ainult siis, kui tekivad piisavalt suured kohalikud salvestusmahud k\u00f5vakettana.<\/p>\n<p>Tarnimise t\u00fc\u00fcp muutub oluliselt: tekivad installatsiooniprogrammid, mis haldavad s\u00fcsteemi seadistamise protsessi ja ka kustutamise j\u00e4relpuhastust, kuna programme ei loeta enam lihtsalt m\u00e4llu, vaid need kopeeritakse kohalikku salvestusse, millelt tuleb vajadusel eemaldada ka mittevajalik.<\/p>\n<p>Samaaegselt suurenevad tarnitava tarkvara keerukus.<br \/>\nFailide arv tarnimises t\u00f5useb \u00fchelt sadadele ja tuhandetele, hakkavad tekkima versioonikonfliktide probleemid ja muud r\u00f5\u00f5mud, kui mitmed programmid kasutavad samu andmeid.<\/p>\n<p><img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> Toll, kui ma veel ei teadnud Linuxist, elasin MS DOSi ja hiljem Windowsi maailmas, kirjutades Borland Pascalis ja Delphies, aeg-ajalt pilguga C++ poole. Tooteid tarnides kasutasid paljud sel ajal InstallShieldi. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">ru.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, mis lahendas edukalt k\u00f5ik tarkvara juurutamise ja konfigureerimise \u00fclesanded.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>Interneti ajastu<\/h2>\n<p>\nTaas toimus tarkvaras\u00fcsteemide keerukuse suurenemine, monoliitsetelt ja t\u00f6\u00f6laua rakendustelt liikusime hajusate s\u00fcsteemide, \u00f5hukeste klientide ja mikroteenuste suunas. N\u00fc\u00fcd on vaja konfigureerida mitte \u00fcht rakendust, vaid nende kogumit, ja nii, et need k\u00f5ik omavahel t\u00f6\u00f6le hakkaksid.<\/p>\n<p>Kogu kontseptsioon on t\u00e4ielikult muutunud, tuli Internet ja algas pilveteenuste ajastu. Alles oli see algstaadium, veebilehtede kujul, ja kedagi ei t\u00fclitanud teenustega unistada. Kuid see oli p\u00f6\u00f6rdepunkt t\u00f6\u00f6stuses nii arendamise kui ka rakenduste tarnimise osas.<\/p>\n<p>M\u00e4rkasin ise, et sel hetkel toimus arendajate p\u00f5lvkondade vahetus (v\u00f5i oli see vaid minu keskkonnas), ning tekkis tunne, et k\u00f5ik vanad head tarnimise viisid unustati hetkega ja k\u00f5ik algas otsast peale: kogu tarnimine hakkas toimuma k\u00e4sitsi kirjutatud skriptide abil ning seda nimetati uhkelt \"J\u00e4tkuv tarnimine\". Tegelikkuses algas mingi kaostee, kui vana oli unustatud ja ei kasutatud, aga uut ei olnud lihtsalt olemas.<\/p>\n<p>M\u00e4letan aegu, mil meie ettev\u00f5ttes, kus ma siis t\u00f6\u00f6tasin (ei nimeta seda), inimesed lihtsalt kogusid jar-faile IDE-s ja vaikisid rahulikult SVN-i, selle asemel et teha kogumist ant'i kaudu (maven ei olnud siis veel populaarne v\u00f5i polnud \u00fcldse). Vastavalt sellele koosnes juurutamine faili t\u00f5mbamisest SVN-ist ja selle SSH kaudu sihtmasinasse kopeerimisest. Nii lihtsalt ja totralt.<\/p>\n<p>Samal ajal tehti lihtsate PHP-veebilehtede tarnimine t\u00e4iesti primitiivsel viisil, kopeerides parandatud faili FTP kaudu sihtmasinasse. M\u00f5nikord polnud isegi sellist j\u00f5udmist - koodi muudeti otse produtseeriva serveri peal, ja oli eriline luksus, kui kuskil olid varukoopiad.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>RPM- ja DEB-paketid<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>Teisest k\u00fcljest on Interneti arengu k\u00e4igus \u00fcha populaarsemaks saanud UNIX-i sarnased s\u00fcsteemid. Just sel ajal avastasin ma RedHat Linux 6, umbes aastal 2000. Loomulikult olid ka seal olemas teatud vahendid tarkvara tarnimiseks. Vastavalt Vikipeedia andmetele ilmus RPM peamine paketihaldur juba 1995. aastal RedHat Linux 2.0 versioonis. Sellest ajast alates ja kuni t\u00e4naseni tarnitakse s\u00fcsteem RPM-pakettidena, mis edukalt eksisteerivad ja arenevad.<\/p>\n<p>Debiani perekonna distributsioonid j\u00e4rgnesid sarnasele teele ning rakendasid tarnimist deb-pakettide vormis, mis kehtib ka t\u00e4nap\u00e4evani.<\/p>\n<p>Paketihaldurid v\u00f5imaldavad tarnida tarkvaratooteid, konfigureerida neid installatsiooni k\u00e4igus, hallata erinevate pakettide vahelisi s\u00f5ltuvusi, eemaldada tooteid ja koristada \u00fcleliigset deinstalleerimise k\u00e4igus. Peaaegu k\u00f5ik vajalik on selles, seet\u00f5ttu on nad p\u00fcsinud mitmeid aastak\u00fcmneid praktiliselt muutumatuna.<\/p>\n<p>Pilvetehnoloogia lisas paketihalduritesse paigaldamise mitte ainult f\u00fc\u00fcsilistelt andmekandjatelt, vaid ka pilveerikutest, kuid p\u00f5him\u00f5tteliselt pole suurt midagi muutunud.<\/p>\n<p>Tasub m\u00e4rkida, et praegu on teatud suundumused deb-pakettidest loobumise ja snap-pakettide suunas, kuid sellest r\u00e4\u00e4gime hiljem.<\/p>\n<p>Seega kasvas see uus pilvearendajate p\u00f5lvkond, kes ei teadnud DEB-st ega RPM-ist, tasapisi ning omandas kogemusi. Tooteid keerukamaks muudetakse ning vaja on loogilisemaid tarnimise viise, kui FTP, bash-skriptid ja sarnased \u00fcli\u00f5pilaste tegemised. <br \/>\nSiin tuleb m\u00e4ngu Docker, omamoodi virtualiseerimise, ressursside eraldamise ja tarnimise viis. See on praegu populaarne ja nooruslik, kuid kas on vaja k\u00f5igi jaoks? Kas see on imerohi?<\/p>\n<p>Olen m\u00e4rganud, et v\u00e4ga tihti pakutakse Dockerit mitte kui m\u00f5istlikku valikut, vaid lihtsalt seet\u00f5ttu, et sellest r\u00e4\u00e4gitakse kogukonnas ja ainult seda tunnevad need, kes seda pakuvad. Teisest k\u00fcljest on vanade, headeks j\u00e4\u00e4vate pakkimisse s\u00fcsteemide kohta enamasti vaikimine \u2014 need on olemas ja teevad oma t\u00f6\u00f6d vaikselt ja m\u00e4rkamatult. Sellises olukorras ei j\u00e4\u00e4 muud valikut, valik on ilmne \u2014 Docker.<\/p>\n<p>P\u00fc\u00fcan jagada kogemusi, kuidas meie juures Dockerit juurutati ja mis selle tulemusena v\u00e4lja tuli.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Isetehitatud skriptid<\/h4>\n<p>\nAlguses olid meil bash-skriptid, mis panid jar-arhiivid \u00f5igetele masinatele t\u00f6\u00f6d. Selle protsessi juhtis Jenkins. See t\u00f6\u00f6tas edukalt, sest jar-arhiiv ise on juba komplekt, mis sisaldab klasse, ressursse ja isegi konfiguratsiooni. Kui panna sinna k\u00f5ik maksimaalselt - skripti dekompresseerimine ei ole k\u00f5ige keerulisem, mida tuleb teha.<\/p>\n<p>Aga skriptidel on mitu puudust:<\/p>\n<ul>\n<li> skriptid kirjutatakse tavaliselt kiiresti ja seet\u00f5ttu on nad nii primitiivsed, et sisaldavad ainult \u00fchte k\u00f5ige \u00f5nnestunumat stsenaariumi. Sellele aitab kaasa asjaolu, et arendaja on huvitatud kiirest kohaletoimetamisest, samas kui normaalse skripti jaoks on vajalik m\u00e4rkimisv\u00e4\u00e4rne hulk ressursse.<\/li>\n<li> eelneva punkti tagaj\u00e4rjel skriptid ei sisalda desinstallatsiooniprotseduuri.<\/li>\n<li> puudub m\u00e4\u00e4ratud uuendamisprotseduur.<\/li>\n<li> uue toote ilmudes tuleb kirjutada uus skript.<\/li>\n<li> puudub s\u00f5ltuvuste tugi.<\/li>\n<\/ul>\n<p>\nMuidugi, v\u00f5iks kirjutada keeruka skripti, kuid nagu ma r\u00e4\u00e4kisin varem - see on arendusaeg, ja mitte v\u00e4ike, kuid nagu teada, alati napp.<\/p>\n<p>See piirab selgelt selle meetodi kasutamise ringi ainult k\u00f5ige lihtsamatele s\u00fcsteemidele. On aeg seda muuta.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>M\u00f5nes hetkes hakkasid meie juurde tulema v\u00e4rsked keskmised arendajad, kes pulbitsevad ideedest ja unistavad dockerist. Noh, lipp k\u00e4tte \u2014 teeme! Olid kaks katset. M\u00f5lemad eba\u00f5nnestusid \u2014 \u00fctleme nii, suurte ambitsioonide t\u00f5ttu, kuid reaalse kogemuse puudumise t\u00f5ttu. Kas oleks pidanud sundima ja mistahes j\u00f5ududega l\u00f5petama? Vaevalt \u2014 kollektiiv peab evolutsiooniliselt kasvama vajalikule tasemele, enne kui suudab kasutada vastavaid t\u00f6\u00f6riistu. K\u00f5igele lisaks, kasutades valmis dockeripilte, olenemata sellest, et tihti kohtusime olukordadega, kus seal ei t\u00f6\u00f6tanud v\u00f5rgu\u00fchendus \u00f5igesti (mis v\u00f5ib-olla oli seotud ka docker enda toore sisehaigusega) v\u00f5i oli v\u00f5\u00f5raste konteinerite laiendamine keeruline.<\/p>\n<p>Milliste ebamugavustega me silmitsi seisime?<\/p>\n<ul>\n<li> Probleemid v\u00f5rgu\u00fchenduses bridge-re\u017eiimis.<\/li>\n<li> Containeris logide j\u00e4lgimine on ebamugav (kui need ei ole eraldi v\u00e4lja viidud host-masina failis\u00fcsteemi).<\/li>\n<li> Aeg-ajalt kummaline ElastSearch'i hangumine konteineris, p\u00f5hjust ei suudetud kindlaks teha, konteiner on ametlik.<\/li>\n<li> Containeris shell'i kasutamine on ebamugav \u2014 k\u00f5ik on tugevalt piiratud, tuttavaid t\u00f6\u00f6riistu pole.<\/li>\n<li> Suur konteinerite suurus \u2013 kallis ladustada.<\/li>\n<li> Konteinerite suure suuruse t\u00f5ttu on keeruline hallata mitmeid versioone.<\/li>\n<li> Pikem kogumisprotsess, v\u00f5rreldes teiste meetoditega (skriptide v\u00f5i deb-pakettidega).<\/li>\n<\/ul>\n<p>\nAga miks on jar-arhiivina deployimine Spring-teenus halvem kui sama deb kaudu? Kas ressursside isoleerimine on t\u00f5eliselt vajalik? Kas tasub kaotada operatsioonis\u00fcsteemi mugavad t\u00f6\u00f6riistad, surudes teenuse tugevalt piiratud konteinerisse?<\/p>\n<p>Kogemus on n\u00e4idanud, et see pole tegelikult vajalik, deb-paketist piisab 90% juhtudest.<\/p>\n<p>Millal siis ikkagi vana hea deb ei t\u00f6\u00f6ta ja millal on t\u00f5eliselt vajalik Docker?<\/p>\n<p>Meie jaoks oli see teenuste juurutamine Pythonis. Paljud masin\u00f5ppe jaoks vajalikud teegid, mis pole operatsioonis\u00fcsteemi standardtootel (ja see, mis seal oli \u2013 ei olnud \u00f5igeid versioone), h\u00e4kkimine seadistustega, vajadus erinevate versioonide j\u00e4rele eri teenuste jaoks, mis elavad samal host-s\u00fcsteemil, viis selleni, et ainsaks m\u00f5istlikuks viisiks selle p\u00f5hisegu tarnimiseks osutus Docker. Docker-konteineri koostamise t\u00f6\u00f6mahukus osutus madalamaks, kui idee pakkida k\u00f5ik need eraldi deb-pakettidesse koos s\u00f5ltuvustega, ja ausalt \u00f6eldes ei v\u00f5taks keegi arukalt seda ette.<\/p>\n<p>Teine aspekt, kus plaanitakse Dockerit kasutada, on teenuste juurutamine blue-green deploy skeemi kaudu. Siin soovitakse aga j\u00e4rkj\u00e4rgulist keerukuse suurenemist: esiteks koostatakse deb-paketid ja seej\u00e4rel koostatakse neist Docker-konteiner.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Snap-paketid.<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Tarnete toimetamisvahendite areng, v\u00f5i m\u00f5tted Dockerist, deb-ist, jar-ist ja muust\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> Tagasi snap-pakkide juurde. Need ilmusid esmakordselt ametlikult Ubuntu 16.04-s. Erinevalt tavap\u00e4rastest deb-pakettidest ja rpm-pakettidest, sisaldavad snap-paketid k\u00f5iki s\u00f5ltuvusi. \u00dchelt poolt aitab see v\u00e4ltida raamatukogude konflikte, teisalt on tulemuseks paketi suuruseks olulisem suurus. Lisaks v\u00f5ib see m\u00f5jutada s\u00fcsteemi turvalisust: snapide tarnimisel peab iga kaasatud teegi muudatuste j\u00e4lgimisega tegelema paketti koostav arendaja. \u00dcldiselt ei ole k\u00f5ik nii \u00fchesugune ja igasugu \u00f5nn ei saabu nende kasutamisest. Siiski, see on m\u00f5istlik alternatiiv, kui Dockerit kasutatakse ainult pakendamise, mitte virtualiseerimise vahendina.<\/p>\n<p><br clear=\"all\"><br \/>\nKokkuv\u00f5tteks, meil on praegu m\u00f5istlikus kombinatsioonis nii deb-pakette kui ka Docker-konteinereid, mida me v\u00f5ib-olla teatud juhtudel asendame snap-pakettidega.<\/p>\n<p class=\"for_users_only_msg\">Ainult registreeritud kasutajad saavad k\u00fcsitluses osaleda. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Logige sisse<\/a><\/noindex>, palun.<\/p>\n<h2 class=\"default-block__polling-title\">Mida teie tarnimiseks kasutate?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Isetehitatud skriptid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Kopeerime k\u00e4sitsi FTP kaudu<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    deb-paketid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    rpm-paketid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    snap-paketid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Docker-pildid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Virtuaalmasinate pildid<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Kloonime HDD t\u00e4ielikult<\/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>                    Teine<\/p>\n<\/li>\n<\/ul>\n<p>    H\u00e4\u00e4letas 109 kasutajat. Hoidis tagasi 32 kasutajat.<\/p>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Tarnimisvahendite evolutsioon, v\u00f5i m\u00f5tted Dockerist, deb'ist, jar'ist ja muust | ProHoster","description":"Kuidagi \u00fchel hetkel.","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/42175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}