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β¦
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:
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.
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:
Njira zitatu zolumikizidwa ndi zoyambira za Git monga tag, nthambi, ndi kudzipereka;
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.
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.