{"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\/ro\/blog\/administrirovanie\/evolyutsiya-sredstv-postavki-ili-razmyshleniya-o-docker-deb-jar-i-prochem","title":{"rendered":"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/3c677d0628824497039901c0179a8749.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCumva, \u00eentr-un moment, am decis s\u0103 scriu un articol despre livrarea \u00een containere Docker \u0219i pachete deb, dar c\u00e2nd am \u00eenceput, dintr-un motiv oarecare, m-am dus cu g\u00e2ndul la vremurile \u00eendep\u0103rtate ale primelor computere personale \u0219i chiar calculatoare. \u00cen general, \u00een loc de compara\u021bii seci \u00eentre Docker \u0219i deb, au ie\u0219it aceste reflec\u021bii despre evolu\u021bie, pe care le supun judec\u0103\u021bii dumneavoastr\u0103.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nOrice produs, indiferent de natur\u0103, trebuie s\u0103 ajung\u0103 \u00een vreun fel la serverele de produc\u021bie, trebuie configurat \u0219i pornit. Despre asta va fi acest articol.<\/p>\n<p>Voi g\u00e2ndi \u00een context istoric, \u201ece v\u0103d \u2014 despre asta c\u00e2nt\u201d, ceea ce am v\u0103zut c\u00e2nd am \u00eenceput s\u0103 scriu cod \u0219i ce observ acum, ce folosim noi \u00een prezent \u0219i de ce. Articolul nu pretinde a fi o cercetare complet\u0103, unele momente sunt omise, acesta este punctul meu de vedere personal asupra a ceea ce a fost \u0219i ce este acum.<\/p>\n<p>A\u0219adar, \u00een vremurile de demult... cea mai timpurie modalitate de livrare pe care am \u00eent\u00e2lnit-o eran casetele pentru magnetofon. Am avut un computer BK-0010.01...<\/p>\n<h2>Epoca calculatoarelor<\/h2>\n<p>\nNu, a fost un moment \u0219i mai timpuriu, a existat un alt calculator <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> \u0219i <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=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/ea68507cd83b4da3038cea7329ff1813.jpg\" style=\"display:block;margin: 0 auto;\" \/> A\u0219a c\u0103, c\u00e2nd aveam <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>, metoda de transfer a programului era o simpl\u0103 foaie de h\u00e2rtie p\u0103trat\u0103, pe care era scris programul, care, la nevoie, era introdus manual \u00een calculator. Vrei s\u0103 te joci (da, da, chiar \u0219i pe acest calculator demodat erau jocuri) \u2014 te a\u0219ezi \u0219i scrii programul \u00een calculator. Evident, odat\u0103 cu oprirea calculatorului, programul se ducea \u00een neant. Pe l\u00e2ng\u0103 codurile scrise de m\u00e2n\u0103 pe h\u00e2rtie, programele erau publicate \u00een revistele \u201eRadio\u201d \u0219i \u201eTehnica Tineretului\u201d, precum \u0219i tip\u0103rite \u00een c\u0103r\u021bile vremii.<\/p>\n<p>Urm\u0103toarea modificare a fost calculatorul <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>, care deja avea o form\u0103 de stocare a datelor f\u0103r\u0103 alimentare. Acum, deja nu era nevoie s\u0103 introduci manual jocul sau programul, ci, f\u0103c\u00e2nd c\u00e2teva mi\u0219c\u0103ri magice cu butoanele, acesta se \u00eenc\u0103rca singur.<\/p>\n<p>Dimensiunea celei mai mari programe \u00een calculator era de 105 pa\u0219i, iar dimensiunea memoriei permanente \u00een MK-52 era de 512 pa\u0219i.<\/p>\n<p>Apropo, dac\u0103 sunt fani ai acestor calculatoare care citesc acest articol \u2014 \u00een timp ce scriam articolul, am descoperit un emulator de calculator pentru Android \u0219i programele pentru el. S\u0103 mergem \u00eenapoi \u00een trecut!<\/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 pentru Android<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/xvadim.github.io\/xbasoft\/pmk\/pmk.html\">Catalogul programelor pentru MK-61<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><b>O mic\u0103 digresiune despre MK-52<\/b> <i>(din Wikipedia)<\/i><\/p>\n<p>MK-52 a zburat \u00een spa\u021biu la bordul navei \u201eSoyuz TM-7\u201d. Era destinat s\u0103 fie folosit pentru calcularea traiectoriei de aterizare \u00een cazul \u00een care computerul de bord s-ar defecta.<\/p>\n<p>MK-52 cu modulul de extindere a memoriei \u201eElectronica-Astro\u201d era livrat pe navele Marinei Militare \u00eencep\u00e2nd din 1988, ca parte a complexului de calcul pentru navigatori. <\/p><\/blockquote>\n<h2>Primele calculatoare personale<\/h2>\n<p><img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/5d443c3919023854c53c83ac2265cea3.jpg\" style=\"display:block;margin: 0 auto;\" \/> S\u0103 ne \u00eentoarcem la vremurile <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>. E clar c\u0103 a crescut \u0219i capacitatea de memorie, iar introducerea codului de pe h\u00e2rtie nu mai era o op\u021biune (de\u0219i la \u00eenceput am f\u0103cut acest lucru, deoarece nu exista un alt suport disponibile). Principalul mediu de stocare \u0219i livrare a software-ului au devenit casetele audio pentru magnetofon.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><br \/>\n<img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/988316eac02a95a16e15502a826f0653.jpg\" style=\"display:block;margin: 0 auto;\" \/>Stocarea pe caset\u0103 era de obicei sub forma unuia sau dou\u0103 fi\u0219iere binare, tot restul fiind inclus. Fiabilitatea era foarte sc\u0103zut\u0103, era necesar s\u0103 p\u0103strezi 2-3 copii ale programului. Timpul de \u00eenc\u0103rcare nici el nu era satisf\u0103c\u0103tor; pasiona\u021bii experimentau cu diverse codific\u0103ri de frecven\u021b\u0103 pentru a dep\u0103\u0219i aceste deficien\u021be. Eu, \u00een acea perioad\u0103, nu m\u0103 ocupam de dezvoltarea profesional\u0103 a software-ului (cu excep\u021bia unor programe simple \u00een BASIC), a\u0219a c\u0103, din p\u0103cate, nu pot povesti \u00een detaliu cum era organizat totul \u00een\u0103untru. Faptul c\u0103 pe computer exista doar RAM determina, \u00een mare parte, simplitatea schemei de stocare a datelor.<\/p>\n<h2>Apari\u021bia suporturilor de informa\u021bie fiabile \u0219i mari<\/h2>\n<p>\nApoi au ap\u0103rut dischetele, procesul de copiere s-a simplificat, iar fiabilitatea a crescut.<br \/>\nDar situa\u021bia se schimb\u0103 radical doar c\u00e2nd apar stoc\u0103ri locale destul de mari sub form\u0103 de HDD.<\/p>\n<p>Se schimb\u0103 \u00een principiu tipul livr\u0103rii: apar programe de instalare care gestioneaz\u0103 procesul de configurare a sistemului, precum \u0219i cur\u0103\u021barea dup\u0103 eliminare, deoarece programele nu sunt doar citite \u00een memorie, ci deja copiate \u00een stocarea local\u0103, din care trebuie s\u0103 \u0219tii cum s\u0103 elimini ceea ce nu mai este necesar.<\/p>\n<p>Paralel, complexitatea software-ului livrat cre\u0219te.<br \/>\nNum\u0103rul de fi\u0219iere livrate cre\u0219te de la unul la sute \u0219i mii, \u00eencep conflictele versiunilor bibliotecilor \u0219i alte nepl\u0103ceri, c\u00e2nd diverse programe folosesc acelea\u0219i date.<\/p>\n<p><img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/48af8fca591a1061df45cd619854a59a.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u00cen acele vremuri, nu-mi era \u00eenc\u0103 cunoscut\u0103 existen\u021ba Linux-ului; tr\u0103iam \u00een lumea MS DOS \u0219i, mai t\u00e2rziu, Windows, scriind \u00een Borland Pascal \u0219i Delphi, arunc\u00e2nd ocazional o privire c\u0103tre C++. Pentru livrarea produselor, mul\u021bi foloseau atunci InstallShield <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/InstallShield\">ro.wikipedia.org\/wiki\/InstallShield<\/a><\/noindex>, care rezolva cu succes toate sarcinile legate de desf\u0103\u0219urarea \u0219i configurarea software-ului.<\/p>\n<p><br clear=\"all\"><br \/>\n<br clear=\"all\"><\/p>\n<h2>Era internetului<\/h2>\n<p>\nTreptat, complexitatea sistemelor software a crescut, trec\u00e2nd de la monolit \u0219i aplica\u021bii desktop la sisteme distribuite, clien\u021bi sub\u021biri \u0219i microservicii. Acum trebuie s\u0103 configur\u0103m nu doar o singur\u0103 aplica\u021bie, ci un set de aplica\u021bii, astfel \u00eenc\u00e2t toate s\u0103 colaboreze.<\/p>\n<p>Conceptul s-a schimbat complet; Internetul a venit \u0219i a \u00eenceput era serviciilor cloud. \u00cen acel moment, erau \u00eenc\u0103 doar la \u00eenceput, sub forma site-urilor, nimeni nu visa la servicii. Dar acesta a fost un moment de cotitur\u0103 \u00een industrie, at\u00e2t \u00een dezvoltare, c\u00e2t \u0219i \u00een livrarea de aplica\u021bii.<\/p>\n<p>Am observat c\u0103 \u00een acest moment a avut loc o schimbare de genera\u021bii \u00een r\u00e2ndul dezvoltatorilor (sau a fost doar \u00een cercul meu), iar senza\u021bia era c\u0103 toate metodele vechi de livrare au fost uitate dintr-o dat\u0103 \u0219i totul a \u00eenceput de la zero: \u00eentreaga livrare a \u00eenceput s\u0103 se fac\u0103 prin scripturi improvizate \u0219i a fost denumit\u0103 cu m\u00e2ndrie \u201eLivrare continu\u0103\u201d. De fapt, a \u00eenceput o perioad\u0103 de haos, c\u00e2nd vechiul a fost uitat \u0219i nu a fost folosit, iar noul pur \u0219i simplu nu exista.<\/p>\n<p>\u00cemi amintesc vremurile c\u00e2nd, \u00een compania unde lucram atunci (nu voi numi), \u00een loc s\u0103 facem o compilare prin ant (maven nu era prea popular atunci sau nu ap\u0103ruse deloc), oamenii pur \u0219i simplu compilau jar \u00een IDE \u0219i \u00eel comiteau f\u0103r\u0103 grij\u0103 \u00een SVN. Astfel, desf\u0103\u0219urarea consta \u00een a scoate fi\u0219ierul din SVN \u0219i a-l copia prin SSH pe ma\u0219ina dorit\u0103. A\u0219a de simplu \u0219i rudimentar.<\/p>\n<p>\u00cen aceea\u0219i perioad\u0103, livrarea simpl\u0103 a site-urilor PHP se f\u0103cea \u00eentr-un mod \u0219i mai primitiv, prin copierea pur \u0219i simplu a fi\u0219ierului corectat prin FTP pe ma\u0219ina \u021bint\u0103. Uneori nu exista nici m\u0103car asta \u2014 codul era corectat direct pe serverul de produc\u021bie, \u0219i era un adev\u0103rat lux s\u0103 existe backup-uri undeva.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Pachete RPM \u0219i DEB<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/8590e7db6c67cad4b97654465ba5e946.jpg\" style=\"display:block;margin: 0 auto;\" \/>Pe de alt\u0103 parte, odat\u0103 cu dezvoltarea internetului, sistemele de tip UNIX au \u00eenceput s\u0103 c\u00e2\u0219tige din ce \u00een ce mai mult\u0103 popularitate, iar \u00een acel timp am descoperit RedHat Linux 6, aproximativ \u00een 2000. Desigur, \u0219i acolo existau anumite metode de livrare a software-ului; conform Wikipediei, RPM, ca principal manager de pachete, a ap\u0103rut \u00eenc\u0103 din 1995, \u00een versiunea RedHat Linux 2.0. \u0218i de atunci \u0219i p\u00e2n\u0103 \u00een prezent, sistemul este livrat sub form\u0103 de pachete RPM \u0219i func\u021bioneaz\u0103 \u0219i se dezvolt\u0103 cu succes.<\/p>\n<p>Distribu\u021biile din familia Debian au parcurs o cale similar\u0103 \u0219i au implementat livrarea sub form\u0103 de pachete deb, ceea ce, de asemenea, a r\u0103mas neschimbat p\u00e2n\u0103 \u00een prezent.<\/p>\n<p>Managerii de pachete permit livrarea propriilor produse software, configurarea acestora \u00een timpul instal\u0103rii, gestionarea dependen\u021belor \u00eentre diferite pachete, realizarea dezinstal\u0103rii produselor \u0219i cur\u0103\u021barea excesului \u00een timpul procesului de dezinstalare. Cu alte cuvinte, \u00een mare parte, acestea sunt toate lucrurile necesare, motiv pentru care au r\u0103mas timp de c\u00e2teva decenii practic f\u0103r\u0103 modific\u0103ri.<\/p>\n<p>Cloud computing a ad\u0103ugat managerilor de pachete posibilitatea de a instala nu doar de pe medii fizice, ci \u0219i din depozite cloud, dar fondamental, pu\u021bine lucruri s-au schimbat.<\/p>\n<p>Merit\u0103 men\u021bionat c\u0103, \u00een prezent, exist\u0103 anumite tendin\u021be de a p\u0103r\u0103si formatele deb \u0219i a trece la pachetele snap, dar despre asta mai t\u00e2rziu.<\/p>\n<p>Astfel, aceast\u0103 nou\u0103 genera\u021bie de dezvoltatori cloud, care nu cuno\u0219tea nici DEB, nici RPM, a crescut treptat, acumul\u00e2nd experien\u021b\u0103; produsele au devenit mai complexe \u0219i erau necesare modalit\u0103\u021bi mai ra\u021bionale de livrare dec\u00e2t FTP, scripturi bash \u0219i astfel de lucruri de studen\u021bi. <br \/>\n\u0218i aici intr\u0103 \u00een scen\u0103 Docker, un fel de amestec de virtualizare, delimitare a resurselor \u0219i modalitate de livrare. Acum este popular, modern, dar este necesar pentru toate? Este o panacee?<\/p>\n<p>Din observa\u021biile mele, foarte adesea Docker este oferit nu ca o alegere ra\u021bional\u0103, ci pur \u0219i simplu pentru c\u0103 se vorbe\u0219te despre el \u00een comunitate, iar cei care \u00eel propun, doar asta cunosc. Pe de alt\u0103 parte, despre vechile sisteme de ambalare, \u00een cea mai mare parte, se tace \u2014 ele exist\u0103 \u0219i \u00ee\u0219i fac treaba \u00een lini\u0219te \u0219i f\u0103r\u0103 zgomot. \u00centr-o astfel de situa\u021bie, nu prea mai exist\u0103 alte op\u021biuni \u2014 alegerea este evident\u0103 \u2014 Docker.<\/p>\n<p>Voi \u00eencerca s\u0103 \u00eemp\u0103rt\u0103\u0219esc experien\u021ba noastr\u0103 de implementare a Docker \u0219i ce rezultat a avut.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Scripturi personalizate<\/h4>\n<p>\nLa \u00eenceput, existau scripturi bash care implementau arhive jar pe ma\u0219inile necesare. Procesul era gestionat de Jenkins. Aceasta a func\u021bionat cu succes, deoarece arhiva jar este deja o construc\u021bie care con\u021bine clase, resurse \u0219i chiar configura\u021bii. Dac\u0103 le adun\u0103m pe toate \u00een maximul s\u0103u \u2014 atunci desf\u0103\u0219urarea prin script nu este cel mai dificil lucru pe care trebuie s\u0103-l facem.<\/p>\n<p>Dar scripturile au c\u00e2teva dezavantaje:<\/p>\n<ul>\n<li> scripturile sunt de obicei scrise \u00een grab\u0103 \u0219i, prin urmare, sunt at\u00e2t de primitive \u00eenc\u00e2t con\u021bin doar un singur scenariu de succes. Acest lucru este favorizat de faptul c\u0103 dezvoltatorul este interesat s\u0103 livreze c\u00e2t mai repede posibil, iar un script normal necesit\u0103 o investi\u021bie considerabil\u0103 de resurse.<\/li>\n<li> ca urmare a punctului anterior, scripturile nu con\u021bin proceduri de dezinstalare.<\/li>\n<li> nu exist\u0103 o procedur\u0103 stabilit\u0103 de actualizare.<\/li>\n<li> la apari\u021bia unui nou produs trebuie s\u0103 scriem un nou script.<\/li>\n<li> nu exist\u0103 suport pentru dependen\u021be.<\/li>\n<\/ul>\n<p>\nDesigur, se poate scrie un script complex, dar, a\u0219a cum am men\u021bionat mai sus \u2014 acesta va necesita timp de dezvoltare, iar timpul, dup\u0103 cum \u0219tim, este \u00eentotdeauna insuficient.<\/p>\n<p>Acest lucru limiteaz\u0103 evident utilizarea acestei metode de desf\u0103\u0219urare la cele mai simple sisteme. A sosit momentul s\u0103 facem o schimbare.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Docker<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/f9c6180a2775513ce88c5425727817d1.jpg\" style=\"display:block;margin: 0 auto;\" \/>La un moment dat, au \u00eenceput s\u0103 vin\u0103 la noi proasp\u0103t absolven\u021bi, plini de idei \u0219i vis\u00e2nd la Docker. Ce s\u0103 facem, avans\u0103m! Au fost dou\u0103 \u00eencerc\u0103ri. Ambele nereu\u0219ite \u2014 s\u0103 spunem a\u0219a, din cauza ambi\u021biilor mari, dar a lipsei de experien\u021b\u0103 real\u0103. Trebuia s\u0103 for\u021b\u0103m \u0219i s\u0103 finaliz\u0103m cu orice pre\u021b? Probabil c\u0103 nu \u2014 echipa trebuie s\u0103 evolueze odat\u0103 cu necesit\u0103\u021bile \u00eenainte de a putea folosi instrumentele potrivite. Pe deasupra, folosind imagini Docker deja existente, ne-am confruntat adesea cu probleme de func\u021bionare a re\u021belei (ceea ce, s-ar putea, era legat de instabilitatea Docker-ului \u00een sine) sau era complicat s\u0103 extindem containerele altora.<\/p>\n<p>Cu ce inconveniente ne-am confruntat?<\/p>\n<ul>\n<li> Probleme cu re\u021beaua \u00een modul bridge.<\/li>\n<li> Incomod s\u0103 vezi jurnalele \u00een container (dac\u0103 nu sunt transferate separat \u00een sistemul de fi\u0219iere al ma\u0219inii gazd\u0103).<\/li>\n<li> Ocazional, o suspendare ciudat\u0103 a ElasticSearch \u00een interiorul containerului, cauza nu a fost stabilit\u0103, containerul era oficial.<\/li>\n<li> Incomod s\u0103 folose\u0219ti shell-ul \u00een interiorul containerului \u2014 totul este foarte restric\u021bionat, lipsesc instrumentele obi\u0219nuite.<\/li>\n<li> Dimensiunea mare a containerelor adunate - costisitor de stocat<\/li>\n<li> Din cauza dimensiunii mari a containerelor, este greu s\u0103 men\u021bii versiuni multiple<\/li>\n<li> Construire mai lung\u0103, spre deosebire de alte metode (scripturi sau pachete deb)<\/li>\n<\/ul>\n<p>\nPe de alt\u0103 parte, ce este r\u0103u \u00een a desf\u0103\u0219ura un serviciu Spring sub form\u0103 de arhiv\u0103 jar prin acela\u0219i deb? Este cu adev\u0103rat necesar\u0103 izolarea resurselor? Merit\u0103 s\u0103 renun\u021bi la uneltele convenabile ale sistemului de operare, \u00eenfing\u00e2nd serviciul \u00eentr-un container foarte restr\u00e2ns?<\/p>\n<p>A\u0219a cum a ar\u0103tat practica - \u00een realitate, acest lucru nu este necesar, pachetul deb este suficient \u00een 90% din cazuri.<\/p>\n<p>C\u00e2nd nu func\u021bioneaz\u0103 vechiul pachet deb \u0219i c\u00e2nd am avut cu adev\u0103rat nevoie de Docker?<\/p>\n<p>Pentru noi, aceasta a fost desf\u0103\u0219urarea serviciilor \u00een Python. Multe biblioteci necesare pentru \u00eenv\u0103\u021barea automat\u0103 \u0219i lips\u0103 \u00een distribu\u021bia standard a sistemului de operare (iar cele care existau nu erau versiunile corecte), hack-uri cu set\u0103rile, necesitatea diferitelor versiuni pentru diferite servicii care tr\u0103iesc pe aceea\u0219i sistem gazd\u0103 au dus la concluzia c\u0103 singura modalitate ra\u021bional\u0103 de livrare a acestei amestecuri a fost Docker. Greutatea de a construi un container Docker a fost mai mic\u0103 dec\u00e2t ideea de a \u00eempacheta totul \u00een pachete deb separate cu dependen\u021be, iar nimeni, \u00een mintea lui s\u0103n\u0103toas\u0103, nu ar fi \u00eencercat asta.<\/p>\n<p>Al doilea moment \u00een care se preconizeaz\u0103 utilizarea Docker - pentru desf\u0103\u0219urarea serviciilor \u00een schema blue-green deploy. Dar aici se dore\u0219te o cre\u0219tere treptat\u0103 a complexit\u0103\u021bii: mai \u00eent\u00e2i se construiesc pachetele deb, iar apoi din acestea se construie\u0219te containerul Docker.<\/p>\n<p><br clear=\"all\"><\/p>\n<h4>Pachete Snap<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Evolu\u021bia metodelor de livrare, sau reflec\u021bii despre Docker, deb, jar \u0219i altele\" src=\"\/wp-content\/uploads\/2019\/03\/8c9001b28757f8427c85e54bca5b4e73.jpg\" style=\"display:block;margin: 0 auto;\" \/> S\u0103 revenim la pachetele snap. Acestea au ap\u0103rut oficial pentru prima dat\u0103 \u00een Ubuntu 16.04. Spre deosebire de pachetele deb \u0219i rpm uzuale, snap-urile includ toate dependen\u021bele. Pe de o parte, acest lucru permite evitarea conflictelor \u00eentre biblioteci, pe de alt\u0103 parte - dimensiunea rezultat\u0103 a pachetului este mai semnificativ\u0103. \u00cen plus, aceasta poate influen\u021ba \u0219i securitatea sistemului: \u00een cazul livr\u0103rii unui snap, toate modific\u0103rile bibliotecilor incluse trebuie monitorizate de c\u0103tre dezvoltatorul care creeaz\u0103 pachetul. \u00cen general, nu este totul at\u00e2t de simplu \u0219i fericirea universal\u0103 din utilizarea lor nu apare. Cu toate acestea, este o alternativ\u0103 rezonabil\u0103, dac\u0103 acela\u0219i Docker este utilizat doar ca un instrument de ambalare, \u0219i nu de virtualizare.<\/p>\n<p><br clear=\"all\"><br \/>\n\u00cen concluzie, acum utiliz\u0103m \u00eentr-o combina\u021bie ra\u021bional\u0103 at\u00e2t pachete deb, c\u00e2t \u0219i containere Docker, pe care, \u00een anumite cazuri, le-am putea \u00eenlocui cu pachete snap.<\/p>\n<p class=\"for_users_only_msg\">Numai utilizatorii \u00eenregistra\u021bi pot participa la sondaj. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Conecta\u021bi-v\u0103<\/a><\/noindex>, v\u0103 rug\u0103m.<\/p>\n<h2 class=\"default-block__polling-title\">Ce folosi\u021bi pentru livrare?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Scripturi personalizate<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Copiem manual pe FTP<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pachete deb<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pachete rpm<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pachete snap<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    imagini Docker<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Imagini ale ma\u0219inilor virtuale<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Clon\u0103m HDD-ul \u00een \u00eentregime<\/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>                    Altele<\/p>\n<\/li>\n<\/ul>\n<p>    109 utilizatori au votat. 32 utilizatori s-au ab\u021binut.<\/p>\n<p>Sursa: <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.2.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\/ro\/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.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\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\/ro\/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\udd47Evolu\u021bia metodelor de livrare, sau reflec\u021bii asupra Docker, deb, jar \u0219i altele | ProHoster","description":"Cumva, \u00eentr-un moment.","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/42175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=42175"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/42175\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=42175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=42175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=42175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}