Cov kev pabcuam nrov nrog cov ntawv sau npe, raws li txoj cai, muab lawv tus kheej cov duab tu cov cai: hauv lawv koj tuaj yeem txhais cov xwm txheej hauv qab uas lub cim raug tshem tawm ntawm lub npe. Txawm li cas los xij, cov xwm txheej no raug txwv los ntawm qhov tsis xws li cov npe, lub sijhawm tsim, thiab tus lej cim npe *.
* Nyob ntawm kev siv lub thawv ntim tshwj xeeb. Peb xav txog qhov muaj peev xwm ntawm cov kev daws teeb meem hauv qab no: Azure CR, Docker Hub, ECR, GCR, GitHub Pob, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io - raws li lub Cuaj Hlis 2020.
Cov txheej txheem no yog qhov txaus txaus kom txaus siab rau plaub qhov kev ntsuas - uas yog, xaiv cov duab uas sib haum rau cov qauv. Txawm li cas los xij, rau tag nrho lwm cov txheej txheem, ib tus yuav tsum xaiv qee yam kev sib haum xeeb daws teeb meem (ib qho nyuaj dua lossis, hloov pauv, txoj cai yooj yim dua) - nyob ntawm qhov kev cia siab thiab peev nyiaj txiag.
Piv txwv li, qhov thib peb cov txheej txheem - ntsig txog cov kev xav tau ntawm cov neeg tsim khoom - tuaj yeem daws tau los ntawm kev teeb tsa cov txheej txheem hauv pab pawg: cov npe tshwj xeeb ntawm cov duab, tuav cov npe tshwj xeeb tso cai thiab kev pom zoo sab hauv. Tab sis thaum kawg nws tseem yuav tsum tau automated. Thiab yog tias lub peev xwm ntawm cov kev daws teeb meem tsis txaus, koj yuav tsum ua qee yam ntawm koj tus kheej.
Qhov xwm txheej nrog thawj ob lub ntsiab lus zoo sib xws: lawv tsis tuaj yeem txaus siab yam tsis tau txais cov ntaub ntawv los ntawm lub kaw lus sab nraud - qhov twg cov ntawv thov raug xa mus (hauv peb rooj plaub, Kubernetes).
Piv txwv ntawm kev ua haujlwm hauv Git
Cia peb hais tias koj tab tom ua haujlwm zoo li no hauv Git:
Lub cim nrog lub taub hau hauv daim duab qhia txog cov duab ntim uas tam sim no tau muab tso rau hauv Kubernetes rau txhua tus neeg siv (cov neeg siv kawg, cov neeg sim, cov tswj hwm, thiab lwm yam) lossis siv los ntawm cov neeg tsim khoom rau kev debugging thiab cov hom phiaj zoo sib xws.
Yuav ua li cas yog tias cov cai huv huv tsuas yog tso cai rau cov duab khaws cia (tsis raug tshem tawm) los ntawm cov npe tag?
Pom tseeb, qhov xwm txheej zoo li no yuav tsis ua rau leej twg zoo siab.
Yuav hloov dab tsi yog cov cai tso cai rau cov duab tsis raug tshem tawm? raws li lub sijhawm ncua sijhawm / tus lej ntawm qhov kev txiav txim zaum kawg?
Qhov tshwm sim tau dhau los ua qhov zoo dua, tab sis tseem nyob deb ntawm qhov zoo tagnrho. Tom qab tag nrho, peb tseem muaj cov neeg tsim khoom uas xav tau cov duab hauv kev sau npe (lossis txawm tias siv hauv K8s) los daws cov kab...
Txhawm rau sau cov xwm txheej tam sim no ntawm kev ua lag luam: cov haujlwm muaj nyob hauv cov ntawv sau npe tsis muaj qhov yooj yim txaus thaum ntxuav, thiab qhov laj thawj tseem ceeb rau qhov no yog tsis muaj txoj hauv kev los cuam tshuam nrog lub ntiaj teb sab nraud. Nws hloov tawm tias cov pab pawg uas xav tau qhov hloov pauv tau raug yuam kom nws tus kheej siv cov duab tshem tawm "los ntawm sab nraud", siv Docker Registry API (lossis cov API haiv neeg ntawm qhov kev coj ua).
Txawm li cas los xij, peb tab tom nrhiav kev daws teeb meem thoob ntiaj teb uas yuav ua kom cov duab huv huv rau ntau pawg siv cov npe sib txawv ...
Peb txoj kev mus rau universal duab tu
Qhov kev xav tau no los ntawm qhov twg? Qhov tseeb yog tias peb tsis yog ib pab pawg neeg tsim tawm, tab sis yog ib pab neeg uas ua haujlwm ntau ntawm lawv ib zaug, pab daws cov teeb meem ntawm CI / CD. Thiab cov cuab yeej tseem ceeb rau qhov no yog Open Source utility werf. Nws peculiarity yog tias nws tsis ua ib qho kev ua haujlwm, tab sis nrog cov txheej txheem xa mus tas li ntawm txhua theem: los ntawm kev sib dhos mus rau kev xa tawm.
Kev tshaj tawm cov duab rau hauv daim ntawv teev npe * (tam sim ntawd tom qab lawv tsim) yog qhov ua haujlwm pom tseeb ntawm cov khoom siv zoo li no. Thiab txij li thaum cov duab tau muab tso rau hauv qhov chaw cia, yog tias koj qhov chaw cia tsis txwv - koj yuav tsum tau ua lub luag haujlwm rau lawv cov kev tu tom ntej. Yuav ua li cas peb ua tiav hauv qhov no, txaus siab rau tag nrho cov txheej txheem teev tseg, yuav tau tham ntxiv.
Txawm hais tias peb tab tom siv werf ua piv txwv, peb cia siab tias cov txheej txheem siv yuav muaj txiaj ntsig zoo rau lwm pab pawg uas ntsib teeb meem zoo sib xws.
Yog li peb tau tibneeg hu tauj coob sab nraud kev siv cov txheej txheem rau kev ntxuav cov duab - tsis yog cov peev txheej uas twb tau tsim los rau hauv cov npe rau cov thawv. Thawj kauj ruam yog siv Docker Registry API los tsim tib txoj cai tseem ceeb rau tus naj npawb ntawm cov cim npe thiab lub sijhawm ntawm lawv tsim (hais los saum toj no). Ntxiv rau lawv tso cai rau cov npe raws li cov duab siv nyob rau hauv deployed infrastructure, i.e. Kubernetes. Rau qhov tom kawg, nws tau txaus los siv Kubernetes API los rov hais dua los ntawm tag nrho cov peev txheej siv thiab tau txais cov npe ntawm qhov tseem ceeb image.
Qhov kev daws teeb meem tsis tseem ceeb no tau daws qhov teeb meem tseem ceeb tshaj plaws (txheej txheem No. 1), tab sis tsuas yog qhov pib ntawm peb txoj kev taug kev los txhim kho lub tshuab ntxuav. Tom ntej no - thiab nthuav ntau ntxiv - kauj ruam yog qhov kev txiav txim siab Koom nrog cov duab luam tawm nrog Git keeb kwm.
Tagging schemes
Yuav pib nrog, peb xaiv txoj hauv kev uas cov duab kawg yuav tsum khaws cov ntaub ntawv tsim nyog rau kev ntxuav, thiab tsim cov txheej txheem ntawm tagging schemes. Thaum luam tawm ib daim duab, tus neeg siv xaiv ib qho kev xaiv tagging (git-branch, git-commit los yog git-tag) thiab siv tus nqi sib xws. Hauv CI systems, cov txiaj ntsig no tau teeb tsa los ntawm kev hloov pauv ib puag ncig. Qhov tseeb daim duab kawg tau txuam nrog ib qho tshwj xeeb Git primitive, khaws cov ntaub ntawv tsim nyog rau kev ntxuav hauv cov ntawv lo.
Txoj hauv kev no tau ua rau muaj cov cai tswjfwm uas tso cai rau Git siv los ua ib qho ntawm qhov tseeb:
Tus naj npawb ntawm cov duab cuam tshuam nrog Git cim npe thiab kev cog lus tuaj yeem tswj tau los ntawm tus naj npawb ntawm cov cim npe siv nyob rau hauv cov txheej txheem xaiv thiab lub sij hawm uas cuam tshuam tau tsim.
Zuag qhia tag nrho, qhov kev ua tiav ua tiav tau txaus siab rau peb cov kev xav tau, tab sis qhov kev sib tw tshiab sai sai tos peb. Qhov tseeb yog tias thaum siv tagging schemes raws li Git primitives, peb ntsib ib tug xov tooj ntawm shortcomings. (Vim tias lawv cov lus piav qhia dhau ntawm cov kab lus no, txhua tus tuaj yeem paub lawv tus kheej nrog cov ntsiab lus no.) Yog li ntawd, tau txiav txim siab hloov mus rau txoj hauv kev zoo dua rau kev sau npe (cov ntsiab lus-raws li tagging), peb yuav tsum rov xav txog kev siv cov duab tu.
Tshiab algorithm
Vim li cas? Nrog cov ntsiab lus-raws li tagging, txhua lub cim tuaj yeem ua tiav ntau yam kev cog lus hauv Git. Thaum ntxuav cov duab, koj tsis tuaj yeem xav tias tsuas los ntawm kev cog lus qhov twg cov cim tshiab tau ntxiv rau hauv kev sau npe.
Rau qhov tshiab tu algorithm, nws tau txiav txim siab mus deb ntawm tagging schemes thiab tsim cov txheej txheem meta-duab, txhua lub khw muag khoom ib pawg ntawm:
kev cog lus rau qhov kev tshaj tawm tau ua tiav (nws tsis muaj teeb meem txawm tias daim duab tau ntxiv, hloov pauv lossis tseem zoo li qub hauv lub thawv sau npe);