Sobes.tech
Middle+

Vai jūs uzskatāt, ka ir pareizi apvienot būvniecību, testēšanu un attēla publicēšanu vienā darba plūsmā, kā arī pievienot soļus izvietošanai dažādās vidēs?

sobes.tech AI

Atbilde no AI

Tas ne vienmēr ir optimāli. Lai arī šāda pieeja var būt ērta mazākiem projektiem vai vietējiem testēšanas komplektiem, visu posmu apvienošana vienā darba plūsmā ir ar trūkumiem:

  • Elastības samazināšana: Pārvietošanas dažādās vidēs (dev, staging, production) prasa dažādus parametrus un bieži dažādas piekļuves tiesības. Apvienošana sarežģī šo atšķirību pārvaldību:
  • Vides atkarība: Ja viena no vidēm neveicas, visa būvniecība tiek uzskatīta par neveiksmīgu, pat ja attēla būvniecība un tā testēšana ir veiksmīga:
  • Atjaunošanas grūtības: Atjaunot pārvietošanu kļūst mazāk vienkārši, jo ir jāatjauno visa darba plūsma:
  • Izpildes laika palielināšanās: Visa pipeline aizņem vairāk laika, kas palēnina izstrādātāju atsauksmi:
  • Mazāks mērogs: Kad projekts aug un palielinās pārvietošanas vidu skaits, šāda darba plūsma kļūst smaga un grūti pārvaldāma:

Biežāk un elastīgāk praktizē ir šo posmu atdalīšana:

  1. Build & Test Pipeline: Atbild par koda būvēšanu, testēšanu, attēla veidošanu un tā glabāšanu artefaktu reģistrā (piemēram, Docker Registry, Nexus). Šī darba plūsma tiek palaista katra komita vai pull request gadījumā:
  2. Deployment Pipelines: Atsevišķas darba plūsmas pārvietošanai katrā vidē. Tās ņem jau būvēto un testēto attēlu no artefaktu reģistra un pārvieto to uz mērķa vidi. Šīs darba plūsmas var tikt palaistas manuāli, pēc grafika vai automātiski pēc iepriekšējās posma veiksmīgas pabeigšanas (piemēram, veiksmīga pārvietošanas stagingā):

Tas ļauj:

  • Ātrāk saņemt atsauksmes par koda kvalitāti (build & test):
  • Pārvietoties dažādās vidēs neatkarīgi:
  • Elastīgāk pārvaldīt pārvietošanas parametrus katrai videi:
  • Vienkāršot atjaunošanas procesu:

Maziem pet projektiem vai vienkāršas pārvietošanas procesa monolītām lietojumprogrammām, kurās izmaksas par sadalīšanu pārsniedz ieguvumu, tas var būt noderīgi. Tomēr lielākajā daļā organizāciju darba plūsmu sadalīšana ir labākā prakse.