Ukusekelwa kwe-monorepo kanye ne-multirepo ku-werf futhi i-Docker Registry ihlangene ngani nayo

Ukusekelwa kwe-monorepo kanye ne-multirepo ku-werf futhi i-Docker Registry ihlangene ngani nayo

Isihloko se-mono-repository kuxoxwe ngaso izikhathi ezingaphezu kwesisodwa futhi, njengomthetho, kubangela impikiswano esebenzayo kakhulu. Ngokudala i-werf njengethuluzi lomthombo ovulekile eliklanyelwe ukuthuthukisa inqubo yokwakha ikhodi yesicelo kusuka ku-Git kuya ezithombeni ze-Docker (bese kuziletha ku-Kubernetes), asicabangi kakhulu ngokuthi ikuphi ukukhetha okungcono kakhulu. Kithina, kuyinhloko ukunikeza konke okudingekayo kubasekeli bemibono ehlukene (uma lokhu kungangqubuzani nomqondo ojwayelekile, kunjalo).

Ukusekelwa kwakamuva kwe-werf kwe-mono-repo kuyisibonelo esihle salokhu. Kepha okokuqala, ake sithole ukuthi lokhu kusekelwa kuhlobene kanjani nokusebenzisa i-werf nokuthi i-Docker Registry ihlangene ngani nayo ...

Izinkinga

Ake sicabange ngesimo esinjalo. Inkampani inamaqembu amaningi okuthuthukisa asebenza kumaphrojekthi azimele. Izinhlelo zokusebenza eziningi zisebenza ku-Kubernetes ngakho-ke zifakwe esitsheni. Ukugcina iziqukathi, izithombe, udinga ukubhalisa (irejista). Njengokubhalisa okunjalo, inkampani isebenzisa i-Docker Hub nge-akhawunti eyodwa COMPANY. Ifana nezinhlelo eziningi zokugcina amakhodi omthombo, I-Docker Hub ayikuvumeli ukulandelana kwesikhoso esidleke, njenge COMPANY/PROJECT/IMAGE. Uma kunjalo... ungazigcina kanjani izinhlelo zokusebenza ezingezona eze-monolithic kurejista ngalo mkhawulo ngaphandle kokudala i-akhawunti ehlukile yephrojekthi ngayinye?

Ukusekelwa kwe-monorepo kanye ne-multirepo ku-werf futhi i-Docker Registry ihlangene ngani nayo

Mhlawumbe, isimo esichazwe sijwayelekile kumuntu mathupha, kodwa ake sicabangele indaba yokuhlela isitoreji sohlelo lokusebenza ngokujwayelekile, i.e. ngaphandle kokubhekisela kusibonelo esingenhla kanye ne-Docker Hub.

Izixazululo

Uma isicelo i-monolithic, iza ngesithombe esisodwa, bese kungabikho mibuzo futhi simane sigcine izithombe kusibhalisi sesitsha sephrojekthi.

Uma isicelo sethulwa njengezingxenye eziningi, microservices, bese kudingeka indlela ethile. Esibonelweni sohlelo lokusebenza lwewebhu olujwayelekile oluhlanganisa izithombe ezimbili: frontend и backend - ongakhetha kukho:

  1. Gcina izithombe kumakhosombe ahlanganisiwe ahlukene:

    Ukusekelwa kwe-monorepo kanye ne-multirepo ku-werf futhi i-Docker Registry ihlangene ngani nayo

  2. Gcina yonke into endaweni eyodwa, futhi ucabangele igama lesithombe kuthegi, isibonelo, kanje:

    Ukusekelwa kwe-monorepo kanye ne-multirepo ku-werf futhi i-Docker Registry ihlangene ngani nayo

NB: Empeleni, kukhona enye inketho ngokulondoloza ezindaweni zokugcina ezahlukene, PROJECT-frontend и PROJECT-backend, kodwa ngeke sikucabangele ngenxa yobunkimbinkimbi bosekelo, ukuhlelwa nokusabalalisa kwamalungelo phakathi kwabasebenzisi.

ukwesekwa kwe-werf

Ekuqaleni, i-werf yayizikhawulele kuphela kumakhosombe afakwe esidlekeni - ngenhlanhla, ababhalisi abaningi bayasisekela lesi sici. Kusuka kunguqulo v1.0.4-alpha.3, wengeze umsebenzi namarejistri lapho ukwakha isidleke akusekelwe, futhi i-Docker Hub ingenye yazo. Kusukela ngaleso sikhathi kuqhubeke, umsebenzisi unenketho yokuthi angagcina kanjani izithombe zohlelo lokusebenza.

Ukuqaliswa kuyatholakala ngaphansi kwenketho --images-repo-mode=multirepo|monorepo (okuzenzakalelayo multirepo, i.e. ukugcinwa ezindaweni zokugcina izidleke). Ichaza amaphethini lapho izithombe zigcinwa khona kurejista. Kwanele ukukhetha imodi oyifunayo uma usebenzisa imiyalo eyisisekelo, futhi konke okunye kuzohlala kungashintshiwe.

Ngoba izinketho eziningi ze-werf zingasethwa okuguquguqukayo kwemvelo, ezinhlelweni ze-CI/CD, imodi yokugcina ngokuvamile kulula ukuyimisa emhlabeni wonke kuyo yonke iphrojekthi. Ngokwesibonelo, esimweni se-GitLab vele ungeze okuguquguqukayo kwendawo kuzilungiselelo zephrojekthi: Izilungiselelo -> CI/CD -> Okuguquguqukayo: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Uma sikhuluma ngokushicilela izithombe kanye nokukhipha izinhlelo zokusebenza (ungafunda mayelana nalezi zinqubo ngokuningiliziwe kuma-athikili amadokhumenti afanelekile: Inqubo yokushicilela и Inqubo yokuphakela), bese imodi inquma kuphela isifanekiso ongasebenza ngaso nesithombe.

Usathane emininingwaneni

Umehluko kanye nobunzima obukhulu lapho ungeza indlela entsha yokugcina ingaphakathi kwenqubo yokuhlanza irejista (ukuthola izici zokuhlanza ezisekelwa i-werf, bheka Inqubo yokuhlanza).

Lapho uhlanza, i-werf icabangela izithombe ezisetshenziswa kumaqoqo e-Kubernetes, kanye nezinqubomgomo ezilungiselelwe umsebenzisi. Izinqubomgomo zisekelwe ekuhlukaniseni omaka babe ngamasu. Amasu asekelwayo njengamanje:

  1. Amasu ama-3 axhunywe izinto zokuqala ze-Git ezifana nethegi, igatsha, nokuzibophezela;
  2. Isu elingu-1 lomaka ngokwezifiso abangafanele.

Silondoloza ulwazi mayelana namasu omaka lapho sishicilela isithombe kumalebula esithombe sokugcina. Incazelo ngokwayo yiyona okuthiwa meta tag - Kuyadingeka ukusebenzisa ezinye zezinqubomgomo. Isibonelo, lapho ususa igatsha noma umaka endaweni yokugcina ye-Git, kunengqondo ukususa okuhlobene. engasetshenzisiwe izithombe ezisuka kurejista, ezimbozwe ingxenye yezinqubomgomo zethu.

Uma ilondolozwe endaweni eyodwa (monorepo), kuthegi yesithombe, ngaphezu kwe-meta tag, igama lesithombe lingabuye ligcinwe: PROJECT:frontend-META-TAG. Ukuze sizihlukanise, asizange sethule noma yisiphi isihlukanisi esithile, kodwa simane sengeze inani elidingekayo kulebula yesithombe sokugcina lapho sishicilela.

NB: Uma ungathanda ukubuka yonke into echazwe kukhodi yomthombo we-werf, lapho-ke isiqalo singaba PR 1684.

Kulesi sihloko, ngeke sinake kakhulu izinkinga nokulungiswa kwendlela yethu: mayelana namasu okumaka, ukugcina idatha kumalebula kanye nenqubo yokushicilela iyonke - konke lokhu kuchazwe ngokuningiliziwe embikweni wakamuva kaDmitry Stolyarov: "I-werf iyithuluzi lethu le-CI/CD ku-Kubernetes".

Ukufingqa

Ukuntuleka kokusekelwa kwamarejistri angagunyaziwe bekungeyona into evimbela thina noma abasebenzisi be-werf esibaziyo - ngemuva kwakho konke, ungakwazi njalo ukuphakamisa ukubhaliswa kwesithombe okuhlukile (noma ushintshele kuRegistry Yesiqukathi enemibandela ku-Google Cloud) ... Nokho, ukususa ukuvinjelwa okunjalo kubonakala kunengqondo ukuze ithuluzi lilungele umphakathi obanzi we-DevOps. Ukukusebenzisa, sibhekane nobunzima obukhulu ekusebenzeni kabusha umshini wokuhlanza isibhali. Manje njengoba konke sekumi ngomumo, kuhle ukubona ukuthi sekulula kumuntu othile, futhi thina (njengabathuthukisi abakhulu bephrojekthi) ngeke sibe nobunzima obubonakalayo ekuqhubekeni nokusekela lesi sici.

Hlala nathi futhi maduze sizokutshela mayelana nokunye okusha i-werf!

PS

Funda futhi kubhulogi yethu:

Source: www.habr.com

Thenga ukusingathwa okuthembekile kwamasayithi anokuvikelwa kwe-DDoS, amaseva e-VPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekile ngokuvikelwa kwe-DDoS, amaseva e-VPS VDS | ProHoster