L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar

B'xi mod f'ħin minnhom iddeċidejt li nikteb artiklu dwar il-kunsinna fil-forma ta 'kontenituri Docker u pakketti deb, iżda meta bdejt, għal xi raġuni ġejt lura lejn iż-żminijiet imbiegħda tal-ewwel kompjuters personali u anke kalkulaturi. B'mod ġenerali, minflok paraguni niexfa ta 'docker u deb, aħna ltqajna dawn il-ħsibijiet dwar is-suġġett tal-evoluzzjoni, li nippreżenta għall-konsiderazzjoni tiegħek.

Kwalunkwe prodott, ikun x'inhu, għandu b'xi mod jasal għas-servers tal-prodott, għandu jiġi kkonfigurat u mniedi. Dak se jkun dwar dan l-artikolu.

Se naħseb f'kuntest storiku, "dak li nara huwa dak li nkanta dwaru," dak li rajt meta bdejt nikteb l-ewwel kodiċi u dak li nosserva issa, dak li aħna stess qed nużaw bħalissa u għaliex. L-artiklu ma jippretendix li huwa studju sħiħ, xi punti huma mitlufa, din hija l-ħarsa personali tiegħi ta 'dak li kien u dak li huwa issa.

Allura, fl-antik it-tajjeb... l-aktar metodu bikri ta’ konsenja li sibt kien cassette tapes mit-tape recorders. Kelli kompjuter BK-0010.01...

L-era tal-kalkolaturi

Le, kien hemm mument saħansitra aktar kmieni, kien hemm ukoll kalkulatur MK-61 и MK-52.

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar Allura meta kelli MK-61, allura l-mod kif tittrasferixxi l-programm kien biċċa karta ordinarja f'kaxxa li fuqha kien miktub programm, li, jekk meħtieġ, biex jitħaddem manwalment, inkiteb fil-kalkolatur. Jekk trid tilgħab (iva, anke dan il-kalkolatur antediluvjan kellu logħob) - inti toqgħod bilqiegħda u ddaħħal il-programm fil-kalkolatur. Naturalment, meta l-kalkolatur kien mitfi, il-programm sparixxa fl-oblivion. Minbarra l-kodiċi tal-kalkolaturi miktuba fuq il-karta b'idejh, il-programmi ġew ippubblikati fir-rivisti "Radju" u "Teknoloġija għaż-Żgħażagħ", u ġew ippubblikati wkoll fil-kotba ta 'dak iż-żmien.

Il-modifika li jmiss kienet kalkulatur MK-52, diġà għandha xi semblanza ta 'ħażna ta' data mhux volatili. Issa l-logħba jew il-programm ma kellux għalfejn jiddaħħal manwalment, iżda wara li wettaq xi passes maġiċi bil-buttuni, għabbet innifsu.

Id-daqs tal-akbar programm fil-kalkolatur kien 105 passi, u d-daqs tal-memorja permanenti f'MK-52 kien 512-il pass.

Mill-mod, jekk hemm fannijiet ta 'dawn il-kalkolaturi li qed jaqraw dan l-artikolu, fil-proċess tal-kitba tal-artiklu sibt kemm emulatur tal-kalkolatur għal Android kif ukoll programmi għalih. Quddiem il-passat!

Digressjoni qasira dwar MK-52 (mill-Wikipedija)

MK-52 tellgħu fl-ispazju fuq il-vettura spazjali Soyuz TM-7. Kien suppost li jintuża biex tiġi kkalkulata t-trajettorja tal-inżul f'każ li l-kompjuter abbord falla.

Mill-52, l-MK-1988 bl-unità ta 'espansjoni tal-memorja Elektronika-Astro ġie fornut lill-vapuri tan-Navy bħala parti minn kit ta' kompjuters tan-navigazzjoni.

L-ewwel kompjuters personali

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar Ejja mmorru lura għaż-żminijiet BK-0010. Huwa ċar li kien hemm aktar memorja hemmhekk, u li ttajpja kodiċi minn biċċa karta ma kinitx għadha għażla (għalkemm għall-ewwel għamilt hekk, għax sempliċement ma kien hemm l-ebda mezz ieħor). Il-cassettes awdjo għat-tape recorders qed isiru l-mezz ewlieni tal-ħażna u l-kunsinna tas-softwer.





L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktarIl-ħażna fuq cassette kienet ġeneralment fil-forma ta 'fajl binarju wieħed jew tnejn, kull ħaġa oħra kienet tinsab ġewwa. L-affidabbiltà kienet baxxa ħafna, kelli nżomm 2-3 kopji tal-programm. Il-ħinijiet tat-tagħbija kienu wkoll diżappuntanti, u d-dilettanti esperimentaw b'kodifikazzjonijiet ta 'frekwenza differenti biex jegħlbu dawn in-nuqqasijiet. Dak iż-żmien, jien stess ma kontx involut fl-iżvilupp tas-softwer professjonali (mingħajr ma ngħodd programmi sempliċi fil-BASIC), għalhekk, sfortunatament, mhux se ngħidlek fid-dettall kif kollox kien irranġat ġewwa. Il-fatt stess li l-kompjuter kellu RAM biss fil-biċċa l-kbira ddetermina s-sempliċità tal-iskema tal-ħażna tad-data.

L-emerġenza ta 'mezzi ta' ħażna affidabbli u kbar

Aktar tard, dehru floppy disks, il-proċess tal-ikkupjar ġie ssimplifikat, u l-affidabbiltà żdiedet.
Iżda s-sitwazzjoni tinbidel b'mod drammatiku biss meta ħażniet lokali kbar biżżejjed jidhru fil-forma ta 'HDDs.

It-tip ta’ konsenja qed jinbidel b’mod fundamentali: programmi tal-installatur jidhru li jimmaniġġjaw il-proċess tal-konfigurazzjoni tas-sistema, kif ukoll tindif wara t-tneħħija, peress li l-programmi mhux biss jinqraw fil-memorja, iżda huma diġà kkupjati fil-ħażna lokali, li minnha għandek bżonn tkun kapaċi tnaddaf affarijiet mhux meħtieġa jekk meħtieġ.

Fl-istess ħin, il-kumplessità tas-softwer fornut qed tiżdied.
In-numru ta 'fajls fil-kunsinna jiżdied minn ftit għal mijiet u eluf, kunflitti bejn il-verżjonijiet tal-librerija u ferħ ieħor jibdew meta programmi differenti jużaw l-istess data.

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar Dak iż-żmien, l-eżistenza tal-Linux kienet għadha ma kinitx miftuħa għalija; Jien għext fid-dinja tal-MS DOS u, aktar tard, tal-Windows, u ktibt f'Borland Pascal u Delphi, kultant inħares lejn is-C++. Ħafna nies użaw InstallShield biex iwasslu prodotti dakinhar. ru.wikipedia.org/wiki/InstallShield, li solviet b'suċċess il-kompiti kollha assenjati għall-iskjerament u l-konfigurazzjoni tas-softwer.




era tal-Internet

Gradwalment, il-kumplessità tas-sistemi tas-softwer qed issir saħansitra aktar kumplessa; mill-applikazzjonijiet tal-monolith u tad-desktop hemm tranżizzjoni għal sistemi distribwiti, thin clients u mikroservizzi. Issa trid tikkonfigura mhux programm wieħed biss, iżda sett minnhom, u sabiex jaħdmu kollha flimkien.

Il-kunċett inbidel kompletament, daħal l-Internet, waslet l-era tas-servizzi tas-sħab. S'issa, biss fl-istadju inizjali, fil-forma ta 'websajts, ħadd ma ħolom b'mod partikolari b'servizzi. iżda kien punt ta 'bidla kemm fl-iżvilupp kif ukoll fit-twassil tal-applikazzjonijiet.

Għalija nnifsi, innutajt li f'dak il-mument kien hemm bidla fil-ġenerazzjonijiet ta 'żviluppaturi (jew kien biss fl-ambjent tiegħi), u kien hemm sensazzjoni li l-metodi ta' twassil qodma tajbin kollha ġew minsija f'mument wieħed u kollox beda mill-ewwel. bidu: il-kunsinna kollha bdiet issir skripts tal-irkoppa u kburi sejħilha “Konsenja kontinwa”. Fil-fatt, beda perjodu ta 'kaos, meta l-antik jintesa u ma jintużax, u l-ġdid sempliċement ma jeżistix.

Niftakar iż-żminijiet meta fil-kumpanija tagħna fejn ħdimt dak iż-żmien (mhux se nsemmiha), minflok ma nbena permezz ta’ ant (maven kien għadu ma kienx popolari jew ma kienx jeżisti xejn), in-nies sempliċement ġabru vażetti fl-IDE u impenjaw b’mod seren. hija f'SVN. Għaldaqstant, l-iskjerament kien jikkonsisti fl-irkupru tal-fajl minn SVN u l-ikkupjar permezz ta 'SSH għall-magna mixtieqa. Huwa daqshekk sempliċi u goff.

Fl-istess ħin, il-kunsinna ta 'siti sempliċi fil-PHP saret b'mod primittiv ħafna billi sempliċement ikkupjat il-fajl ikkoreġut permezz tal-FTP għall-magna fil-mira. Xi drabi dan ma kienx il-każ - il-kodiċi ġie editjat live fuq is-server tal-prodott, u kien speċjalment chic jekk kien hemm backups x'imkien.


Pakketti RPM u DEB

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktarMin-naħa l-oħra, bl-iżvilupp tal-Internet, sistemi bħal UNIX bdew jiksbu aktar u aktar popolarità, b'mod partikolari, kien dak iż-żmien li skoprejt RedHat Linux 6, madwar 2000. Naturalment, kien hemm ukoll ċerti mezzi biex jitwassal softwer; skond il-Wikipedija, RPM bħala l-maniġer tal-pakkett prinċipali deher diġà fl-1995, fil-verżjoni ta 'RedHat Linux 2.0. U minn dakinhar u sal-lum, is-sistema ġiet ikkunsinnata fil-forma ta 'pakketti RPM u kienet teżisti u tiżviluppa b'suċċess pjuttost.

Id-distribuzzjonijiet tal-familja Debian segwew triq simili u implimentaw il-kunsinna fil-forma ta 'pakketti deb, li baqgħu l-istess sal-lum.

Il-maniġers tal-pakketti jippermettulek twassal il-prodotti tas-softwer huma stess, tikkonfigurahom waqt il-proċess ta 'installazzjoni, timmaniġġja d-dipendenzi bejn pakketti differenti, tneħħi prodotti u tnaddaf oġġetti mhux meħtieġa matul il-proċess ta' diżinstallazzjoni. Dawk. fil-biċċa l-kbira, dak kollu li hemm bżonn, u huwa għalhekk li damu bosta deċennji prattikament mhux mibdula.

Cloud computing żied l-installazzjoni mal-maniġers tal-pakketti mhux biss minn midja fiżika, iżda wkoll minn repożitorji tal-cloud, iżda fundamentalment ftit inbidel.

Ta 'min jinnota li bħalissa hemm xi passi lejn it-tluq minn deb u jaqilbu għal pakketti snap, iżda aktar dwar dan aktar tard.

Allura, din il-ġenerazzjoni ġdida ta 'żviluppaturi tas-sħab, li la kienu jafu DEB u lanqas RPM, kibret ukoll bil-mod, kisbet esperjenza, il-prodotti saru aktar kumplessi, u xi metodi ta' kunsinna aktar raġonevoli kienu meħtieġa minn FTP, skripts bash u snajja simili tal-istudenti.
U dan huwa fejn Docker jidħol fl-istampa, tip ta 'taħlita ta' virtwalizzazzjoni, delimitazzjoni tar-riżorsi u metodu ta 'kunsinna. Hija moda u żagħżugħa issa, imma hija meħtieġa għal kollox? Din hija rimedju?

Mill-osservazzjonijiet tiegħi, ħafna drabi Docker jiġi propost mhux bħala għażla raġonevoli, iżda sempliċiment għax, minn naħa, titkellem dwarha fil-komunità, u dawk li jipproponuha jafuha biss. Min-naħa l-oħra, fil-biċċa l-kbira tagħhom huma siekta dwar is-sistemi ta 'ppakkjar antiki tajbin - jeżistu u jagħmlu xogħolhom bil-kwiet u mingħajr ma jinnutaw. F'sitwazzjoni bħal din, m'hemm verament l-ebda għażla oħra - l-għażla hija ovvja - Docker.

Se nipprova naqsam l-esperjenza tiegħi ta’ kif implimentajna Docker u x’ġara bħala riżultat.


skripts miktuba minnha stess

Inizjalment, kien hemm skripts bash li skjerati arkivji vażetti għall-magni meħtieġa. Dan il-proċess kien immexxi minn Jenkins. Dan ħadem b'suċċess, peress li l-arkivju vażett innifsu huwa diġà assemblaġġ li fih klassijiet, riżorsi u anke konfigurazzjoni. Jekk tpoġġi kollox fih għall-massimu, allura tespandih fi skript mhix l-aktar ħaġa diffiċli li għandek bżonn

Iżda l-iskripts għandhom diversi żvantaġġi:

  • l-iskripts normalment jinkitbu bil-għaġla u għalhekk huma tant primittivi li fihom xenarju wieħed biss tal-aħjar każ. Dan huwa ffaċilitat mill-fatt li l-iżviluppatur huwa interessat fil-kunsinna mgħaġġla, u skript normali jeħtieġ l-investiment ta 'ammont deċenti ta' riżorsi
  • bħala konsegwenza tal-punt preċedenti, l-iskripts ma fihomx proċeduri ta 'diżinstallazzjoni
  • l-ebda proċedura ta' aġġornament stabbilita
  • Meta jidher prodott ġdid, trid tikteb skript ġdid
  • ebda appoġġ għad-dipendenza

Naturalment, tista 'tikteb skript sofistikat, iżda, kif ktibt hawn fuq, dan huwa żmien ta' żvilupp, u mhux l-inqas, u, kif nafu, dejjem mhux biżżejjed ħin.

Dan kollu ovvjament jillimita l-firxa ta 'applikazzjoni ta' dan il-metodu ta 'skjerament għall-aktar sistemi sempliċi biss. Wasal iż-żmien li dan jinbidel.


Docker

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktarF'xi ħin, bdew jiġu għandna middles li għadhom kif ġew iffurmati, jaqbdu bl-ideat u jferrħu dwar id-docker. Ukoll, bandiera fl-idejn - ejja nagħmlu dan! Kien hemm żewġ tentattivi. It-tnejn ma rnexxewx – ejja ngħidu, minħabba ambizzjonijiet kbar, iżda nuqqas ta’ esperjenza reali. Kien meħtieġ li tiġi sfurzata u tispiċċa b'kull mezz meħtieġ? Huwa improbabbli - it-tim irid jevolvi għal-livell meħtieġ qabel ma jkun jista 'juża l-għodod xierqa. Barra minn hekk, meta nużaw immaġini Docker lesti, ħafna drabi ltqajna mal-fatt li n-netwerk ma kienx jaħdem b'mod korrett (li seta 'kien minħabba l-umdità tad-Docker innifsu) jew kien diffiċli li jespandu l-kontenituri ta' nies oħra.

Liema inkonvenjenzi ltqajna magħhom?

  • Problemi tan-netwerk fil-modalità bridge
  • Huwa inkonvenjenti li tara zkuk f'kontenitur (jekk ma jkunux maħżuna separatament fis-sistema tal-fajls tal-magna ospitanti)
  • ElasticSearch kultant jiffriża b'mod stramb ġewwa l-kontenitur, ir-raġuni ma ġietx determinata, il-kontenitur huwa uffiċjali
  • Huwa meħtieġ li tuża qoxra ġewwa kontenitur - kollox huwa mqaxxar ħafna, m'hemm l-ebda għodda tas-soltu
  • Daqs kbir ta 'kontenituri miġbura - għaljin biex jinħażnu
  • Minħabba d-daqs kbir tal-kontenituri, huwa diffiċli li jiġu appoġġjati verżjonijiet multipli
  • Żmien itwal tal-bini, b'differenza minn metodi oħra (skripts jew pakketti deb)

Min-naħa l-oħra, għaliex huwa agħar li tuża servizz Spring fil-forma ta 'arkivju vażett permezz tal-istess deb? L-iżolament tar-riżorsi huwa verament meħtieġ? Tajjeb li titlef għodod konvenjenti tas-sistema operattiva billi timla servizz f'kontenitur imnaqqas ħafna?

Kif wriet il-prattika, fir-realtà dan mhux meħtieġ, il-pakkett tad-deb huwa biżżejjed f'90% tal-każijiet.

Meta jonqos id-deb il-qadim tajjeb u meta għandna bżonn verament docker?

Għalina, dan kien qed juża servizzi f'python. Ħafna libreriji meħtieġa għat-tagħlim tal-magni u mhux inklużi fid-distribuzzjoni standard tas-sistema operattiva (u dak li kien hemm kienu l-verżjonijiet ħżiena), hacks b'settings, il-ħtieġa għal verżjonijiet differenti għal servizzi differenti li jgħixu fuq l-istess sistema ospitanti wasslu għal dan, li l-uniku mod raġonevoli biex titwassal din it-taħlita nukleari kien id-docker. L-intensità tax-xogħol tal-assemblaġġ ta 'kontenitur docker irriżulta li kienet inqas mill-idea li jiġi ppakkjat kollu f'pakketti separati ta' deb b'dipendenzi, u fil-fatt ħadd f'moħħu ma kien se jagħmel dan.

It-tieni punt fejn qed nippjanaw li nużaw Docker huwa li niskjeraw servizzi bl-użu tal-iskema tal-iskjerament blu-aħdar. Imma hawnhekk irrid nikseb żieda gradwali fil-kumplessità: l-ewwel, jinbnew pakketti deb, u mbagħad jinbena kontenitur docker minnhom.


Snap pakketti

L-evoluzzjoni tal-għodod tal-kunsinna, jew ħsibijiet dwar Docker, deb, vażett u aktar Ejja nerġgħu lura għall-pakketti snap. L-ewwel dehru uffiċjalment f'Ubuntu 16.04. B'differenza mill-pakketti deb tas-soltu u l-pakketti rpm, snap iġorr id-dipendenzi kollha. Min-naħa waħda, dan jippermettilek tevita kunflitti fil-libreriji, min-naħa l-oħra, il-pakkett li jirriżulta huwa akbar fid-daqs. Barra minn hekk, dan jista 'jaffettwa wkoll is-sigurtà tas-sistema: fil-każ ta' kunsinna snap, il-bidliet kollha fil-libreriji inklużi għandhom jiġu mmonitorjati mill-iżviluppatur li joħloq il-pakkett. B'mod ġenerali, mhux kollox huwa daqshekk sempliċi u l-kuntentizza universali ma tiġix mill-użu tagħhom. Iżda, madankollu, din hija alternattiva kompletament raġonevoli jekk l-istess Docker jintuża biss bħala għodda tal-ippakkjar u mhux għall-virtwalizzazzjoni.



Bħala riżultat, issa nużaw kemm pakketti deb kif ukoll kontenituri docker f'kombinazzjoni raġonevoli, li, forsi, f'xi każijiet se nissostitwixxu b'pakketti snap.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

X'tuża għall-kunsinna?

  • skripts miktuba minnha stess

  • Ikkopja manwalment fuq FTP

  • pakketti deb

  • pakketti rpm

  • pakketti snap

  • Docker-immaġini

  • Immaġini tal-magni virtwali

  • Ikklona l-HDD kollu

  • puppet

  • ansibbli

  • Oħra

Ivvutaw 109 utent. 32 utent astjenew.

Sors: www.habr.com

Żid kumment