Kuthandizira kwa monorepo ndi multirepo mu werf ndipo Docker Registry ikukhudzana bwanji nazo

Kuthandizira kwa monorepo ndi multirepo mu werf ndipo Docker Registry ikukhudzana bwanji nazo

Mutu wa mono-repository wakhala ukukambidwa kangapo ndipo, monga lamulo, umayambitsa mikangano yambiri. Polenga werf monga chida chotseguka chopangidwira kukonza njira yopangira ma code kuchokera ku Git kupita ku Docker zithunzi (ndikutumiza ku Kubernetes), sitiganizira zambiri za chisankho chomwe chili chabwino kwambiri. Kwa ife, ndizofunikira kupereka zonse zofunika kwa othandizira malingaliro osiyanasiyana (ngati izi sizikutsutsana ndi nzeru, ndithudi).

Thandizo laposachedwa la werf la mono-repo ndi chitsanzo chabwino cha izi. Koma choyamba, tiyeni tiwone momwe chithandizochi chimayenderana ndi kugwiritsa ntchito werf ndi zomwe Docker Registry ikugwirizana nazo ...

Nkhani

Tangolingalirani mkhalidwe wotero. Kampaniyo ili ndi magulu ambiri achitukuko omwe amagwira ntchito paokha. Ntchito zambiri zimayenda pa Kubernetes ndipo chifukwa chake zimakhala ndi zida. Kuti musunge zotengera, zithunzi, muyenera registry (registry). Monga zolembera zotere, kampaniyo imagwiritsa ntchito Docker Hub yokhala ndi akaunti imodzi COMPANY. Zofanana ndi machitidwe ambiri osungira ma code source, Docker Hub salola utsogoleri wokhazikika, monga COMPANY/PROJECT/IMAGE. Ngati…

Kuthandizira kwa monorepo ndi multirepo mu werf ndipo Docker Registry ikukhudzana bwanji nazo

Mwina, zomwe zafotokozedwazo ndizodziwika kwa munthu payekha, koma tiyeni tiganizire nkhani yokonzekera kusungirako ntchito nthawi zambiri, i.e. osatengera chitsanzo pamwambapa ndi Docker Hub.

Zothetsera

Ngati kugwiritsa ntchito monolithic, imabwera mu chithunzi chimodzi, ndiye palibe mafunso ndipo timangosunga zithunzizo ku kaundula wa chidebe cha polojekiti.

Ntchito ikaperekedwa ngati zigawo zingapo, microservices, ndiye kuti njira inayake ikufunika. Pachitsanzo cha pulogalamu yapaintaneti yomwe ili ndi zithunzi ziwiri: frontend ΠΈ backend - zosankha zomwe zingatheke ndi:

  1. Sungani zithunzi mu nkhokwe zosiyana:

    Kuthandizira kwa monorepo ndi multirepo mu werf ndipo Docker Registry ikukhudzana bwanji nazo

  2. Sungani zonse munkhokwe imodzi, ndipo ganizirani dzina lachithunzicho pa tag, mwachitsanzo, motere:

    Kuthandizira kwa monorepo ndi multirepo mu werf ndipo Docker Registry ikukhudzana bwanji nazo

NB: Kwenikweni, pali njira ina ndikusunga m'malo osiyanasiyana, PROJECT-frontend ΠΈ PROJECT-backend, koma sitingaganizire chifukwa cha zovuta zothandizira, bungwe ndi kugawa ufulu pakati pa ogwiritsa ntchito.

thandizo la werf

Poyambirira, werf adangodzipangira zokha zosungiramo zisa - mwamwayi, ma registries ambiri amathandizira izi. Kuyambira Baibulo v1.0.4-alpha.3, anawonjezera ntchito ndi olembetsa amene zisa sizimathandizidwa, ndipo Docker Hub ndi amodzi mwa iwo. Kuyambira pamenepo, wogwiritsa ntchito ali ndi chisankho cha momwe angasungire zithunzi za pulogalamuyo.

Kukhazikitsa kulipo posankha --images-repo-mode=multirepo|monorepo (zosakhazikika multirepo,ndi. kusungidwa m'malo osungiramo zisa). Imatanthawuza machitidwe omwe zithunzi zimasungidwa mu registry. Ndikokwanira kusankha njira yomwe mukufuna mukamagwiritsa ntchito malamulo oyambira, ndipo china chilichonse chizikhala chosasinthika.

Chifukwa zosankha zambiri za werf zitha kukhazikitsidwa zosintha zachilengedwe, mu machitidwe a CI / CD, njira yosungiramo nthawi zambiri imakhala yosavuta kuyika padziko lonse ntchito yonseyo. Mwachitsanzo, mu nkhani ya GitLab ingowonjezerani kusintha kwachilengedwe pazokonda za polojekiti: Zokonda -> CI / CD -> Zosintha: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Ngati tilankhula za kusindikiza zithunzi ndikutulutsa mapulogalamu (mutha kuwerenga zanjirazi mwatsatanetsatane m'malemba oyenera: Kusindikiza ndondomeko ΠΈ Njira yotumizira), ndiye mawonekedwe amangosankha template yomwe mungagwiritse ntchito ndi chithunzicho.

Mdierekezi ali mwatsatanetsatane

Kusiyanitsa ndi vuto lalikulu powonjezera njira yatsopano yosungiramo ndikukonzekera kuyeretsa registry (pazinthu zotsuka zothandizidwa ndi werf, onani Njira yoyeretsa).

Mukayeretsa, werf amaganizira za zithunzi zomwe zimagwiritsidwa ntchito m'magulu a Kubernetes, komanso ndondomeko zomwe zimakhazikitsidwa ndi wogwiritsa ntchito. Ndondomeko zimachokera ku kugawidwa kwa ma tag kukhala njira. Njira zothandizira pano:

  1. Njira zitatu zolumikizidwa ndi zoyambira za Git monga tag, nthambi, ndi kudzipereka;
  2. Njira imodzi yopangira ma tag osasintha.

Timasunga zambiri zama tag tikamasindikiza chithunzicho m'malebulo a chithunzi chomaliza. Tanthauzo lenilenilo ndilo lotchedwa meta tag - Kufunika kugwiritsa ntchito zina mwa ndondomeko. Mwachitsanzo, pochotsa nthambi kapena tag kuchokera ku Git repository, ndizomveka kuchotsa zosagwiritsidwa ntchito zithunzi zochokera ku registry, zomwe zili ndi gawo la mfundo zathu.

Mukasungidwa m'nkhokwe imodzi (monorepo), mu tag yachithunzi, kuwonjezera pa meta tag, dzina lachithunzicho litha kusungidwanso: PROJECT:frontend-META-TAG. Kuti tiwalekanitse, sitinatchule cholekanitsa chilichonse, koma tinangowonjezera mtengo wofunikira pa chizindikiro cha chithunzi chomaliza posindikiza.

NB: Ngati mukufuna kuyang'ana zonse zomwe zafotokozedwa mu werf source code, ndiye poyambira akhoza kukhala Miyambo 1684.

M'nkhaniyi, sitidzayang'ana kwambiri mavuto ndi kulungamitsidwa kwa njira yathu: za njira zolembera, kusunga deta mu zolemba ndi ndondomeko yosindikiza yonse - zonsezi zikufotokozedwa mwatsatanetsatane mu lipoti laposachedwapa la Dmitry Stolyarov: "werf ndiye chida chathu cha CI / CD ku Kubernetes".

Kufotokozera mwachidule

Kuperewera kwa chithandizo cha zolembera zosagwiritsidwa ntchito sikunali chinthu chotchinga kwa ife kapena ogwiritsa ntchito omwe timawadziwa - pambuyo pake, mutha kukweza zolembera zazithunzi zosiyana (kapena kusinthana ndi Registry Container mu Google Cloud) ... kuchotsa zoletsa zotere kumawoneka ngati koyenera kuti chidacho chikhale chosavuta kwa anthu ambiri a DevOps. Kukhazikitsa, tidakumana ndi vuto lalikulu pakukonzanso kaundula wa kaundula wa ziwiya. Tsopano popeza zonse zakonzeka, ndi bwino kuzindikira kuti zakhala zosavuta kwa wina, ndipo ife (monga oyambitsa pulojekitiyi) sitidzakhala ndi vuto lililonse pothandizira mbaliyi.

Khalani nafe ndipo posachedwa tidzakuuzani zazatsopano zina werf!

PS

Werenganinso pa blog yathu:

Source: www.habr.com

Kuwonjezera ndemanga