Taageerada monorepo iyo multirepo ee werf iyo maxay Diiwaangelinta Docker ku leedahay

Taageerada monorepo iyo multirepo ee werf iyo maxay Diiwaangelinta Docker ku leedahay

Mawduuca monorepository ayaa laga hadlay in ka badan hal mar, oo, sida caadiga ah, waxay keentaa dood aad u firfircoon. Abuuridda werf Sida qalab Isha Furan oo loogu talagalay in lagu wanaajiyo habka dhismaha koodka codsiga ee Git ilaa sawirada Docker (ka dibna u gudbinta Kubernetes), kama fikirno wax badan oo ku saabsan doorashada ugu fiican. Anaga, waa aasaaska in la bixiyo wax kasta oo lagama maarmaanka u ah taageerayaasha fikrado kala duwan (haddii tani aysan ka hor imanayn caqli-galnimada, dabcan).

Taageerada mono-repo ee dhawaan la soo bandhigay ee werf ayaa tusaale fiican u ah tan. Laakiin marka hore, aan ogaano sida taageeradani guud ahaan la xiriirta isticmaalka werf iyo waxa Diiwaangelinta Docker ay ku leedahay ...

Arrimaha

Aynu qiyaasno xaaladdan. Shirkaddu waxay leedahay kooxo horumarineed oo badan oo ka shaqeeya mashaariic madax-bannaan. Codsiyada badankoodu waxay ku shaqeeyaan Kubernetes, sidaas awgeed, weel baa lagu hayaa. Si loo kaydiyo weelasha iyo sawirada, diiwaan ayaa loo baahan yahay. Shirkaddu waxay isticmaashaa Docker Hub oo leh koonto keliya sida diiwaan. COMPANY. La mid ah inta badan nidaamyada kaydinta koodka, Docker Hub kuma oggola inaad abuurto kala sareynta buul ee kaydinta, sida COMPANY/PROJECT/IMAGE. Xaaladdan oo kale ... sidee ayaan u kaydin karnaa codsiyada aan monolithic ahayn ee diiwaanka iyada oo xaddidan iyada oo aan la samayn xisaab gaar ah mashruuc kasta?

Taageerada monorepo iyo multirepo ee werf iyo maxay Diiwaangelinta Docker ku leedahay

Waxaa laga yaabaa in xaaladda lagu sharraxay ay yaqaanaan qof gacanta koowaad ah, laakiin aan eegno arrinta abaabulka kaydinta codsiga guud ahaan, i.e. iyada oo aan la tixraacin tusaalaha kore iyo Docker Hub.

Xalka

Haddii codsiga kali ahaansho, waxay ku timaadaa hal sawir, ka dibna wax su'aalo ah ma soo baxaan oo waxaan si fudud u keydineynaa sawirada diiwaanka weelka mashruuca.

Marka codsiga loo soo bandhigo qaybo badan, adeegaha yar yar, markaa waxaad u baahan tahay inaad doorato hab gaar ah. Adigoo isticmaalaya tusaale codsi shabakadeed caadi ah oo ka kooban laba sawir: frontend ΠΈ backend - fursadaha suurtogalka ah waa:

  1. Ku kaydi sawirada meelo buulal gaar ah:

    Taageerada monorepo iyo multirepo ee werf iyo maxay Diiwaangelinta Docker ku leedahay

  2. Ku kaydi wax kasta hal kayd, oo ku dar magaca sawirka summada, tusaale ahaan, sida soo socota:

    Taageerada monorepo iyo multirepo ee werf iyo maxay Diiwaangelinta Docker ku leedahay

NB: Dhab ahaantii, waxaa jira ikhtiyaar kale oo lagu badbaadinayo meelo kala duwan, PROJECT-frontend ΠΈ PROJECT-backend, laakiin ma tixgelin doono sababtoo ah kakanaanta taageerada, abaabulka iyo qaybinta xuquuqda u dhexeeya isticmaalayaasha.

taageero werf

Markii hore, werf waxay ku koobnayd meelo buul ah oo kayd ah -nasiib wanaag, inta badan diiwaangelintu waxay taageertaa sifadan. Tan iyo version v1.0.4-alfa.3, shaqo ku daray diiwaanka taas oo buul lama taageero, iyo Docker Hub waa mid ka mid ah. Laga bilaabo wakhtigan, isticmaaluhu wuxuu lahaa doorashada sida loo kaydiyo sawirada codsiga.

Hirgelinta la heli karo iyada oo qayb ka ah ikhtiyaarka --images-repo-mode=multirepo|monorepo (default). multirepo, i.e. kaydinta bakhaarada buulka leh). Waxay qeexaysaa qaababka sawirada lagu kaydiyo diiwaanka. Waa ku filan in la doorto qaabka la rabo marka la isticmaalayo amarrada aasaasiga ah, wax kasta oo kale ayaa ahaan doona mid aan isbeddelin.

Maadaama inta badan xulashooyinka werfka la dejin karo doorsoomayaasha deegaanka, nidaamka CI/CD, habka kaydinta sida caadiga ah waa sahlan tahay in la dejiyo caalami ahaan mashruuca oo dhan. Tusaale ahaan, dhanka GitLab Kaliya ku dar doorsoomayaasha deegaanka ee goobaha mashruuca: Dejinta -> CI / CD -> Kala duwanaansho: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Haddii aan ka hadalno daabacaadda sawirada iyo soo rogida codsiyada (waxaad si faahfaahsan uga akhrisan kartaa hababkan maqaallada dukumeentiyada khuseeya: Habka daabacaada ΠΈ Habraaca geyn), ka dibna qaabka kaliya ayaa go'aaminaya template kaas oo aad ku shaqeyn karto sawirka.

Shaydaanku waa tafaasiisha

Farqiga iyo dhibka ugu weyn marka lagu daro habka kaydinta cusub waa habka nadiifinta diiwaanka (sifada nadiifinta ee lagu taageeray werf, eeg Nadiifinta nidaamka).

Marka la nadiifinayo, werf waxay ku xisaabtamaysaa sawirada lagu isticmaalo Kubernetes clusters, iyo sidoo kale siyaasadaha habaysan ee isticmaalaha. Siyaasaduhu waxay ku salaysan yihiin qaybinta summada xeeladaha. Xeeladaha hadda la taageeray:

  1. 3 xeelado la xidhiidha Git horudhac ah sida sumad, laan iyo ballan;
  2. 1 istaraatijiyad loogu talagalay tags caadadii.

Waxaan keydineynaa macluumaadka ku saabsan istaraatiijiyadda sumadda marka aan daabacno sawirka calaamadaha sawirka u dambeeya. Macnaha laftiisa waa waxa loogu yeero meta tag - lagama maarmaan u ah ku dhaqanka siyaasadaha qaarkood. Tusaale ahaan, marka la tirtirayo laan ama sumad laga saarayo kaydka Git, waa macquul in la tirtiro laxiriirta aan la isticmaalin sawirada diiwaanka, oo ay daboolayso qayb ka mid ah siyaasadeena.

Markaad ku kaydsanayso hal kayd (monorepo), in sumadda sawirka, marka lagu daro meta tag, magaca sawirka sidoo kale waa la kaydin karaa: PROJECT:frontend-META-TAG. Si aan u kala saarno, ma aanan soo bandhigin wax kala soocida gaar ah, laakiin si fudud ugu darsan qiimaha lagama maarmaanka ah calaamadda sawirka kama dambaysta ah marka la daabacayo.

NB: Haddii aad xiisaynayso inaad eegto wax kasta oo lagu sharraxay koodhka isha werf, markaa meesha laga bilaabo waxay noqon kartaa PR 1684.

Maqaalkani ma bixin doono taxadar dheeraad ah dhibaatooyinka iyo caddaynta habkayaga: oo ku saabsan xeeladaha calaamadaynta, kaydinta xogta ee calaamadaha iyo habka daabacaadda guud ahaan - waxaas oo dhan ayaa si faahfaahsan loogu qeexay warbixintii Dmitry Stolyarov ee dhawaan: "werf waa qalabkeena CI/CD ee Kubernetes".

Soo koobid

Taageero la'aanta diiwaanka aan lahayn buul ma ahayn arrin xannibaysa annaga ama isticmaalayaasha werf ee nala yaqaan - ka dib oo dhan, waxaad had iyo jeer kor u qaadi kartaa diiwaanka sawirada gaarka ah (ama u beddelo Diiwaanka Kontaynarada shuruudaha ku jira Google Cloud) ... Si kastaba ha ahaatee , saarista xannibaadda noocan oo kale ah waxay u muuqatay mid macquul ah si looga dhigo aaladda mid ku habboon bulshada ballaaran ee DevOps. Intii aan fulinaynay, waxaan la kulanay dhibka ugu weyn ee dib u habeynta habka nadiifinta diiwaanka weelka. Hadda oo wax walba diyaar u yihiin, way fiicantahay in la ogaado in ay u fududahay qof, annaguna (sida horumarinta ugu weyn ee mashruuca) ma aragno wax dhibaato ah oo la ogaan karo si loo sii taageero habkan.

Nala joog oo mar dhow waxaan kuu sheegi doonaa wax ku saabsan hal-abuurka kale ee gudaha werf!

PS

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment