Sobes.tech
Middle+

Kas sa arvad, et on õige ühises töövoos ühendada ehitamine, testimine ja pildi avaldamine ning lisada samme erinevatesse keskkondadesse deployimiseks?

sobes.tech AI

Vastus AI-lt

See ei ole alati optimaalne. Kuigi selline lähenemine võib olla mugav väikeste projektide või kohalike testkomplektide jaoks, on kõigi etappide ühendamine ühte töövoogu puudusi:

  • Paindlikkuse vähenemine: Erinevates keskkondades (dev, staging, production) juurutamine nõuab erinevaid parameetreid ja sageli erinevaid juurdepääsuõigusi. Ühendamine raskendab nende erinevuste haldamist:
  • Keskkonna sõltuvus: Kui ühes keskkonnas juurutamine ebaõnnestub, loetakse kogu kogum ebaõnnestunuks, isegi kui pildi kogumine ja selle testimine olid edukad:
  • Tagasipöördumise keerukus: Juurutamise tagasipöördumine muutub vähem lihtsaks, kuna tuleb taastada kogu töövoog:
  • Täitmise aeg suureneb: Kogu pipeline võtab rohkem aega, mis aeglustab arendajate tagasisidet:
  • Väiksem skaleeritavus: Kui projekt kasvab ja juurutuskeskkondade arv suureneb, muutub selline töövoog raskeks ja keeruliseks hallata:

Kõige levinum ja paindlikum praktika on nende etappide eraldamine:

  1. Build & Test Pipeline: Vastutab koodi kogumise, testimise, pildi loomise ja selle hoidmise artefaktide registris (nt Docker Registry, Nexus). See töövoog käivitub iga kommiti või pull requesti puhul:
  2. Deployment Pipelines: Eraldi töövoogud juurutamiseks igas keskkonnas. Need võtavad juba kogutud ja testitud pildi artefaktide registrist ja juurutavad selle sihtkeskkonda. Need töövood võivad käivituda käsitsi, ajastatult või automaatselt pärast eelneva etapi edukat lõpetamist (nt edukas juurutus stagingus):

See võimaldab:

  • Kiirem tagasiside koodi kvaliteedi kohta (build & test):
  • Juurutada erinevates keskkondades sõltumatult:
  • Paindlikumalt hallata juurutamise parameetreid iga keskkonna jaoks:
  • Lihtsustada tagasipöördumise protsessi:

Väikeste pet-projektide või lihtsa juurutusprotsessiga monoliitsete rakenduste puhul, kus jagamise kulud ületavad kasu, see võib olla kasulik. Kuid enamik organisatsioone eelistab töövoogude jagamist parimaks praktikaks.