Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò

Yon jan kanmenm nan yon pwen mwen deside ekri yon atik sou livrezon nan fòm lan nan resipyan Docker ak pakè deb, men lè mwen te kòmanse, pou kèk rezon, mwen te pote tounen nan tan yo byen lwen nan premye òdinatè pèsonèl yo ak menm kalkilatris. An jeneral, olye pou yo konparezon sèk nan docker ak deb, nou te resevwa panse sa yo sou sijè a nan evolisyon, ke mwen prezante pou konsiderasyon ou.

Nenpòt pwodwi, kèlkeswa sa li ye, dwe yon jan kanmenm rive nan serveurs pwodwi yo, yo dwe configuré ak lanse. Se sou sa atik sa a pral ye.

Mwen pral panse nan yon kontèks istorik, "sa mwen wè se sa mwen chante sou," sa mwen te wè lè mwen te kòmanse ekri kòd ak sa mwen obsève kounye a, ki sa nou menm nou ap itilize nan moman sa a ak poukisa. Atik la pa pretann yo dwe yon etid konplè, kèk pwen yo rate, sa a se opinyon pèsonèl mwen sou sa ki te ak sa ki kounye a.

Se konsa, nan bon ansyen tan yo ... metòd la pi bonè nan livrezon ke mwen te jwenn te kasèt kasèt ki soti nan anrejistrè. Mwen te gen yon òdinatè BK-0010.01...

Epòk kalkilatris yo

Non, te gen yon moman menm pi bonè, te gen tou yon kalkilatris MK-61 и MK-52.

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò Se konsa, lè mwen te gen MK-61, Lè sa a, fason pou transfere pwogram nan se te yon moso papye òdinè nan yon bwat ki te ekri yon pwogram, ki, si sa nesesè, kouri li manyèlman, yo te ekri nan kalkilatris la. Si ou vle jwe (wi, menm kalkilatris sa a antediluvian te gen jwèt) - ou chita epi antre nan pwogram nan nan kalkilatris la. Natirèlman, lè kalkilatris la te etenn, pwogram nan te disparèt nan oubli. Anplis kòd kalkilatris yo pèsonèlman ekri sou papye, pwogram yo te pibliye nan magazin "Radyo" ak "Teknoloji pou Jèn", epi yo te pibliye tou nan liv epòk sa a.

Modifikasyon kap vini an se te yon kalkilatris MK-52, li deja gen kèk sanblab nan depo done ki pa temèt. Koulye a, jwèt la oswa pwogram pa t 'gen antre manyèlman, men apre yo fin fè kèk pas majik ak bouton yo, li chaje tèt li.

Gwosè pi gwo pwogram nan kalkilatris la te 105 etap, ak gwosè memwa pèmanan nan MK-52 te 512 etap.

By wout la, si gen fanatik nan kalkilatris sa yo ki ap li atik sa a, nan pwosesis la nan ekri atik la mwen te jwenn tou de yon simulateur kalkilatris pou android ak pwogram pou li. Pi devan nan tan lontan an!

Yon ti digression sou MK-52 (soti nan Wikipedia)

MK-52 te vole nan espas sou veso espasyèl Soyuz TM-7. Li te sipoze itilize pou kalkile trajectoire aterisaj la nan ka òdinatè sou tablo a echwe.

Depi 52, MK-1988 ak inite ekspansyon memwa Elektronika-Astro yo te apwovizyone bato marin yo kòm yon pati nan yon twous informatique navigasyon.

Premye òdinatè pèsonèl yo

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò Ann tounen nan tan yo BC-0010. Li klè ke te gen plis memwa la, ak tape nan kòd ki soti nan yon moso papye pa t 'yon opsyon ankò (byenke nan premye mwen te fè jis sa, paske pa te tou senpleman pa gen okenn lòt mwayen). Kasèt odyo pou anrejistreman kasèt yo ap vin mwayen prensipal pou estoke ak livrezon lojisyèl.





Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankòDepo sou yon kasèt te anjeneral nan fòm lan nan youn oswa de dosye binè, tout lòt bagay te genyen andedan. Fyab te trè ba, mwen te oblije kenbe 2-3 kopi pwogram nan. Tan chaje yo te tou enèvan, ak amater yo te fè eksperyans ak diferan kodaj frekans simonte enpèfeksyon sa yo. Lè sa a, mwen menm mwen pa t 'ankò patisipe nan devlopman lojisyèl pwofesyonèl (pa konte pwogram senp nan BASIC), kidonk, malerezman, mwen pa pral di w an detay ki jan tout bagay te ranje andedan. Lefèt ke òdinatè a te gen sèlman RAM pou pati ki pi detèmine senplisite konplo a depo done.

Aparisyon medya depo serye ak gwo

Apre sa, diskèt te parèt, pwosesis kopi a te senplifye, ak fyab ogmante.
Men, sitiyasyon an chanje dramatikman sèlman lè ase gwo depo lokal parèt nan fòm lan nan HDD.

Kalite livrezon an ap chanje fondamantalman: pwogram enstalatè parèt ki jere pwosesis konfigirasyon sistèm lan, osi byen ke netwaye apre yo fin retire li, paske pwogram yo pa jis li nan memwa, men yo deja kopye nan depo lokal, ki soti nan kote ou bezwen. kapab netwaye bagay ki pa nesesè si sa nesesè.

An menm tan an, konpleksite lojisyèl apwovizyone a ap ogmante.
Kantite fichye nan livrezon an ogmante de kèk a dè santèn ak dè milye, konfli ant vèsyon bibliyotèk yo ak lòt lajwa kòmanse lè diferan pwogram itilize menm done yo.

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò Nan epòk sa a, egzistans Linux pa t 'ankò louvri pou mwen; Mwen te viv nan mond lan nan MS DOS ak, pita, Windows, epi li te ekri nan Borland Pascal ak Delphi, pafwa gade nan C++. Anpil moun te itilize InstallShield pou delivre pwodwi nan lè sa a. ru.wikipedia.org/wiki/InstallShield, ki byen rezoud avèk siksè tout travay yo asiyen nan deplwaye ak konfigirasyon lojisyèl an.




Epòk Entènèt

Piti piti, konpleksite sistèm lojisyèl yo ap vin pi konplike toujou; soti nan monolit ak aplikasyon pou Desktop gen yon tranzisyon nan sistèm distribiye, kliyan mens ak mikwosèvis. Koulye a, ou bezwen konfigirasyon pa sèlman yon pwogram, men yon seri nan yo, epi pou yo tout travay ansanm.

Konsèp la konplètman chanje, entènèt la te vini, epòk la nan sèvis nwaj te rive. Se konsa, lwen, sèlman nan premye etap la, nan fòm lan nan sit entènèt, pa gen moun ki te patikilyèman reve nan sèvis yo. men se te yon pwen vire nan tou de devlopman ak livrezon aplikasyon yo.

Pou tèt mwen, mwen te note ke nan moman sa a te gen yon chanjman nan jenerasyon devlopè (oswa li te sèlman nan anviwònman mwen an), e te gen yon santiman ke tout bon metòd livrezon yo te bliye nan yon moman ak tout bagay te kòmanse soti nan anpil. kòmansman: tout livrezon yo te kòmanse fè scripts jenou ak fyète rele li "Livrezon kontinyèl". An reyalite, yon peryòd dezòd te kòmanse, lè ansyen an bliye epi yo pa itilize, ak nouvo a tou senpleman pa egziste.

Mwen sonje tan yo lè nan konpayi nou an kote mwen te travay lè sa a (mwen pa pral non li), olye pou yo bati atravè foumi (maven pa t 'ankò popilè oswa pa t egziste ditou), moun yo te senpleman kolekte krich nan IDE a epi yo te komèt trankilite. li nan SVN. An konsekans, deplwaman fèt nan rekipere dosye a soti nan SVN ak kopye li atravè SSH nan machin nan vle. Li tèlman senp ak maladwa.

An menm tan an, livrezon an nan sit senp nan PHP te fè nan yon fason trè primitif pa tou senpleman kopye dosye a korije atravè FTP nan machin nan sib. Pafwa sa a pa t 'ka a - kòd la te modifye ap viv sou sèvè a pwodwi, epi li te espesyalman chik si te gen sovgad yon kote.


Pakè RPM ak DEB

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankòNan lòt men an, ak devlopman nan entènèt la, sistèm ki tankou UNIX yo te kòmanse vin pi plis ak plis popilarite, an patikilye, se nan tan sa a ke mwen te dekouvri RedHat Linux 6, apeprè 2000. Natirèlman, te gen tou sèten mwayen pou delivre lojisyèl; dapre Wikipedya, RPM kòm manadjè prensipal pake a te parèt deja an 1995, nan vèsyon RedHat Linux 2.0. E depi lè sa a e jouk jounen jòdi a, sistèm lan te delivre nan fòm pakè RPM e li te deja egziste ak devlope byen avèk siksè.

Distribisyon fanmi Debian te swiv yon chemen menm jan an epi yo te aplike livrezon sou fòm pakè deb, ki pa chanje jiska jounen jodi a.

Manadjè pake pèmèt ou delivre pwodwi lojisyèl yo tèt yo, konfigirasyon yo pandan pwosesis enstalasyon an, jere depandans ant diferan pakè, retire pwodwi yo ak netwaye atik ki pa nesesè pandan pwosesis dezenstalasyon an. Moun sa yo. pou pati ki pi, se tout sa ki nesesè, ki se poukisa yo te dire plizyè deseni nòmalman chanje.

Cloud computing te ajoute enstalasyon nan administratè pake pa sèlman nan medya fizik, men tou nan depo nwaj yo, men fondamantalman ti kras te chanje.

Li se vo anyen ke kounye a gen kèk mouvman nan direksyon pou deplase lwen deb ak chanje nan pakè menen, men plis sou sa pita.

Se konsa, nouvo jenerasyon devlopè nwaj sa a, ki pa konnen ni DEB ni RPM, tou dousman te grandi, te vin gen eksperyans, pwodwi yo te vin pi konplèks, e yo te bezwen kèk metòd livrezon ki pi rezonab pase FTP, scripts bash ak atizana elèv menm jan an.
Lè sa a se kote Docker antre nan foto a, yon kalite melanj de Virtualization, delimitasyon resous ak metòd livrezon. Li alamòd ak jivenil kounye a, men èske li nesesè pou tout bagay? Èske sa se yon mirak?

Soti nan obsèvasyon mwen yo, trè souvan Docker pwopoze pa kòm yon chwa rezonab, men tou senpleman paske, sou yon bò, yo pale sou li nan kominote a, ak moun ki pwopoze li sèlman konnen li. Nan lòt men an, pou pati ki pi yo silans sou bon sistèm yo anbalaj fin vye granmoun - yo egziste epi yo fè travay yo tou dousman ak inapèsi. Nan yon sitiyasyon konsa, pa gen okenn lòt chwa - chwa a evidan - Docker.

Mwen pral eseye pataje eksperyans mwen sou fason nou te aplike Docker ak sa ki te pase kòm rezilta.


Scripts pwòp tèt ou ekri

Okòmansman, te gen scripts bash ki te deplwaye achiv bokal nan machin ki nesesè yo. Pwosesis sa a te jere pa Jenkins. Sa a te travay avèk siksè, depi achiv bokal la li menm se deja yon asanble ki gen klas, resous e menm konfigirasyon. Si ou mete tout bagay nan li nan maksimòm la, Lè sa a, elaji li nan yon script se pa bagay ki pi difisil ou bezwen

Men, scripts gen plizyè dezavantaj:

  • Scripts yo anjeneral ekri an prese epi se poutèt sa yo tèlman primitif ke yo genyen sèlman yon sèl senaryo pi bon. Sa a se fasilite pa lefèt ke pwomotè a enterese nan livrezon rapid, ak yon script nòmal mande pou envestisman an nan yon kantite lajan desan nan resous.
  • kòm yon konsekans pwen anvan an, scripts yo pa gen pwosedi dezenstalasyon
  • pa gen okenn pwosedi ajou etabli
  • Lè yon nouvo pwodwi parèt, ou bezwen ekri yon nouvo script
  • pa gen sipò pou depandans

Natirèlman, ou ka ekri yon script sofistike, men, jan mwen te ekri pi wo a, sa a se tan devlopman, epi pa pi piti a, epi, kòm nou konnen, pa gen toujou ase tan.

Tout bagay sa a evidamman limite ranje aplikasyon metòd deplwaman sa a sèlman nan sistèm ki pi senp yo. Lè a rive pou chanje sa.


Koupre

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankòNan kèk pwen, mitan frèch te kòmanse vin jwenn nou, bouyon ak lide ak divaga sou docker la. Oke, drapo nan men - ann fè li! Te gen de tantativ. Tou de te san siksè - an n di, akòz gwo anbisyon, men mank de eksperyans reyèl. Èske li nesesè fòse li epi fini li pa nenpòt mwayen ki nesesè? Li fasil - ekip la dwe evolye nan nivo ki nesesè yo anvan li ka itilize zouti ki apwopriye yo. Anplis de sa, lè w ap itilize imaj Docker ki pare yo, nou souvan rankontre lefèt ke rezo a pa t 'travay kòrèkteman (ki ka te akòz imidite a nan Docker nan tèt li) oswa li te difisil pou elaji resipyan lòt moun.

Ki enkonvenyan nou te rankontre?

  • Pwoblèm rezo nan mòd pon
  • Li pa konvenyan pou wè mòso bwa nan yon veso (si yo pa estoke separeman nan sistèm dosye machin lame a)
  • ElasticSearch detanzantan jele etranj andedan veso a, rezon ki fè yo pa te detèmine, veso a se ofisyèl
  • Li nesesè pou sèvi ak yon kokiy andedan yon veso - tout bagay trè dezabiye, pa gen okenn zouti nòmal
  • Gwo gwosè nan resipyan kolekte - chè nan magazen
  • Akòz gwo gwosè resipyan yo, li difisil pou sipòte plizyè vèsyon
  • Pi long tan konstriksyon, kontrèman ak lòt metòd (scripts oswa pakè deb)

Nan lòt men an, poukisa li pi mal deplwaye yon sèvis Spring nan fòm lan nan yon achiv bokal nan menm deb la? Èske izolasyon resous reyèlman nesesè? Èske li vo pèdi zouti sistèm operasyon pratik lè w mete yon sèvis nan yon veso ki redwi anpil?

Kòm pratik te montre, an reyalite sa a pa nesesè, pake a deb ase nan 90% nan ka yo.

Ki lè bon fin vye granmoun deb la echwe ak ki lè nou reyèlman bezwen docker?

Pou nou, sa a te deplwaye sèvis nan python. Yon anpil nan bibliyotèk ki nesesè pou aprantisaj machin epi yo pa enkli nan distribisyon an estanda nan sistèm operasyon an (ak sa ki te gen vèsyon yo mal), antay ak anviwònman, bezwen an pou vèsyon diferan pou sèvis diferan k ap viv sou menm sistèm lame a te mennen nan sa a, ke sèl fason rezonab pou delivre melanj nikleyè sa a te docker la. Entansite travay la nan rasanble yon veso Docker te vin pi ba pase lide nan anbalaj li tout nan pakè deb separe ak depandans, e an reyalite pa gen moun ki nan bon lide yo ta antreprann sa.

Dezyèm pwen kote nou planifye pou itilize Docker se deplwaye sèvis lè l sèvi avèk konplo deplwaye ble-vèt la. Men, isit la mwen vle jwenn yon ogmantasyon gradyèl nan konpleksite: premye, pakè deb yo bati, ak Lè sa a, yon veso Docker bati nan yo.


Menen pakè yo

Evolisyon nan zouti livrezon, oswa panse sou Docker, deb, bokal ak plis ankò Ann retounen nan pakè menen. Yo te parèt premye ofisyèlman nan Ubuntu 16.04. Kontrèman ak pakè deb abityèl yo ak pakè rpm, menen pote tout depandans yo. Sou yon bò, sa a pèmèt ou evite konfli bibliyotèk, nan lòt men an, pake a ki kapab lakòz se pi gwo nan gwosè. Anplis de sa, sa ka afekte sekirite sistèm lan tou: nan ka livrezon menen, tout chanjman nan bibliyotèk enkli yo dwe kontwole pa pwomotè a ki kreye pake a. An jeneral, se pa tout bagay ki tèlman senp epi inivèsèl kontantman pa soti nan sèvi ak yo. Men, kanmenm, sa a se yon altènatif konplètman rezonab si se menm Docker la itilize sèlman kòm yon zouti anbalaj epi yo pa pou Virtualization.



Kòm yon rezilta, kounye a nou itilize tou de pakè deb ak resipyan docker nan yon konbinezon rezonab, ki, petèt, nan kèk ka nou pral ranplase ak pakè menen.

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Ki sa ou itilize pou livrezon?

  • Scripts pwòp tèt ou ekri

  • Kopi manyèlman sou FTP

  • pakè deb

  • pakè rpm

  • menen pakè

  • Docker-imaj

  • Imaj machin vityèl

  • Klone tout HDD a

  • mannken

  • ansible

  • Lòt

109 itilizatè yo te vote. 32 itilizatè te absteni.

Sous: www.habr.com

Add nouvo kòmantè