O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

O loʻo faʻatalanoaina e le tusiga faʻafitauli o le faʻamamaina o ata o loʻo faʻaputuina i totonu o pusa resitala (Docker Registry ma ana analogues) i mea moni o paipa CI / CD faʻaonaponei mo faʻaoga masani o le ao na tuʻuina atu i Kubernetes. O taʻiala autu mo le talafeagai o ata ma faʻafitauli faigata i le faʻaogaina otometi, faʻasaoina avanoa ma faʻafetaui manaʻoga o 'au ua tuʻuina atu. Ma le mea mulimuli, faʻaaogaina le faʻataʻitaʻiga o se poloketi Open Source patino, matou te taʻu atu ia te oe le auala e mafai ai ona foia nei faigata.

Faatomuaga

Ole numera o ata i totonu ole koneteina resitala e mafai ona tupu vave, faʻateleina avanoa e teu ai ma faʻateleina ai lona tau. Ina ia pulea, faʻatapulaʻa pe faʻatumauina le tuputupu aʻe talafeagai o avanoa o loʻo nofoia i totonu o le resitala, e talia:

  1. fa'aaoga se numera tumau o pine mo ata;
  2. fa'amama ata i se auala.


Ole tapulaa muamua e talia i nisi taimi mo 'au laiti. Afai e lava fa'ailoga tumau a tagata atia'e (latest, main, test, boris ma isi), o le resitala o le a le fulafula i le tele ma mo se taimi umi e te le tau mafaufau e uiga i le faamamaina. A uma mea uma, o ata le taua uma e tapeina, ma e leai se galuega o totoe mo le faʻamamāina (o mea uma e faia e se tagata e aoina lapisi masani).

Ae ui i lea, o lenei faiga e matua faʻatapulaaina ai le atinaʻe ma e seasea faʻaaogaina i galuega faʻaonaponei CI/CD. O se vaega taua o le atinae sa automation, lea e mafai ai ona e suʻeina, faʻapipiʻi ma tuʻuina atu galuega fou i tagata faʻaoga vave. Mo se faʻataʻitaʻiga, i a matou poloketi uma, o le CI pipeline e otometi lava ona fatuina ma taʻitoʻatasi. I totonu, o le ata o loʻo faʻapotopotoina, faʻataʻitaʻiina, taʻavale atu i le tele o Kubernetes circuits mo le faʻapipiʻiina ma siaki totoe, ma afai e lelei mea uma, o suiga e oʻo atu i le tagata faʻaaoga mulimuli. Ma e le o toe faʻasaienisi roketi, ae o se mea e tupu i aso uma mo le toʻatele - e foliga mai mo oe, talu ai o loʻo e faitauina lenei tusiga.

Talu ai ona o le faʻaleleia o bug ma le atinaʻeina o galuega fou o loʻo faia tutusa, ma faʻamalolo e mafai ona faia i le tele o taimi i le aso, e manino lava o le atinaʻe o loʻo faʻatasi ma se numera tele o tautinoga, o lona uiga. se numera tele o ata i le resitala. O se taunuuga, o le mataupu o le faʻatulagaina o le faʻamamaina lelei o le resitala e tulaʻi mai, i.e. aveese ata le taua.

Ae fa'afefea ona e iloa pe talafeagai se ata?

Tulaga mo le talafeagai o le ata

I le tele o tulaga, o tulaga autu o le a:

1. O le mea muamua (sili ona manino ma sili ona faitio i mea uma) o ata ia o loʻo faʻaaogaina nei i Kubernetes. O le aveeseina o nei ata e mafai ona i'u ai i le tele o tau fa'aletonu o le gaosiga (mo se fa'ata'ita'iga, o ata e ono mana'omia mo le toe faia) po'o le fa'afitia o taumafaiga a le 'au e fa'apipi'i i luga o so'o se matasele. (Mo lenei mafuaʻaga na matou faia ai se faʻapitoa Prometheus e auina atu i fafo, lea e siaki ai le leai o ni ata faapena i soo se vaega Kubernetes.)

2. Lua (fa'aitiitia le manino, ae taua tele ma toe fa'atatau i le fa'aogaina) - ata e e mana'omia mo le toe fa'afo'i pe a maua ni fa'afitauli matuia i le lomiga o iai nei. Mo se faʻataʻitaʻiga, i le tulaga o Helm, o ata ia o loʻo faʻaaogaina i faʻamaumauga faʻasaoina o le faʻasalalauga. (I le ala, e ala i le faaletonu i Helm o le tapulaʻa e 256 toe teuteuga, ae e foliga mai e le manaʻomia e se tasi ona faʻasaoina. e pei o se numera tele o faʻaliliuga?..) A uma, matou, aemaise lava, teuina lomiga ina ia mafai ona matou faʻaaogaina mulimuli ane, i.e. “toe foʻi” iā i latou pe a manaʻomia.

3. Lona tolu - mana'oga fa'atupu: O ata uma e fesoʻotaʻi ma a latou galuega o loʻo iai nei. Mo se faʻataʻitaʻiga, afai o loʻo tatou mafaufau i se PR, e talafeagai le tuʻuina o se ata e fetaui ma le tautinoga mulimuli ma, fai mai, o le tautinoga muamua: o le auala lea e mafai ai e le tagata atiaʻe ona vave toe foʻi i soʻo se galuega ma galue ma suiga lata mai.

4. Fa - ata e fetaui ma lomiga o la matou talosaga, i.e. o oloa mulimuli ia: v1.0.0, 20.04.01/XNUMX/XNUMX, sierra, etc.

NB: O taiala o loʻo faʻamatalaina iinei na faʻavae i luga o le poto masani fegalegaleai ma le tele o vaega atinaʻe mai kamupani eseese. Ae ui i lea, o le mea moni, e faʻatatau i mea faʻapitoa i le atinaʻe faʻagasologa ma atinaʻe faʻaaogaina (mo se faʻataʻitaʻiga, Kubernetes e le faʻaaogaina), e ono eseese nei taʻiala.

Agava'a ma fofo o lo'o iai

Au'aunaga ta'uta'ua ma fa'amaumauga o pusa, e pei o se tulafono, e ofoina atu a latou lava faiga fa'amama ata: i totonu e mafai ona e fa'amalamalamaina tulaga o lo'o aveese ai se pine mai le resitala. Ae ui i lea, o nei tulaga e faʻatapulaʻaina e faʻamaufaʻailoga e pei o igoa, taimi faʻavae, ma numera o pine *.

* Faʻalagolago i faʻatinoga faʻapitoa o le resitalaina o pusa. Na matou iloiloina le avanoa o fofo nei: Azure CR, Docker Hub, ECR, GCR, GitHub Packages, GitLab Container Registry, Harbour Registry, JFrog Artifactory, Quay.io - ia Setema'2020.

O lenei seti o taʻiala e lava lava e faʻamalieina ai le faʻataʻitaʻiga lona fa - o lona uiga, e filifili ata e fetaui ma lomiga. Ae peita'i, mo isi ta'iala uma, e tatau i se tasi ona filifili se ituaiga o fofo fa'amalieina (se faiga fa'avae faigata pe, i se isi itu, sili atu le fa'amalieina) - fa'alagolago i fa'amoemoega ma gafatia tau tupe.

Mo se faʻataʻitaʻiga, o le faʻataʻitaʻiga lona tolu - e fesoʻotaʻi ma manaʻoga o tagata atiaʻe - e mafai ona foia e ala i le faʻatulagaina o faiga i totonu o 'au: faʻaigoaina faʻapitoa o ata, tausia faʻapitoa faʻatagaina lisi ma maliega i totonu. Ae mulimuli ane e manaʻomia lava ona faʻaautomatika. Ma afai e le lava le gafatia o fofo ua saunia, e tatau ona e faia se mea e oe lava.

O le tulaga i tulaga muamua e lua e tutusa: e le mafai ona faamalieina e aunoa ma le mauaina o faʻamatalaga mai se faiga i fafo - o le mea e faʻapipiʻiina ai talosaga (i la matou mataupu, Kubernetes).

Fa'ata'ita'iga o galuega fa'atino ile Git

Fa'apea o lo'o e galue i se mea fa'apenei i Git:

O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

O le atigipusa ma le ulu i le ata o loʻo faʻaalia ai ata atigipusa o loʻo faʻapipiʻiina nei i Kubernetes mo soʻo se tagata faʻaoga (tagata faʻaoga, suʻega, pule, ma isi) pe faʻaaogaina e le au atinaʻe mo le faʻapipiʻiina ma faʻamoemoega tutusa.

O le a le mea e tupu pe a fai o faiga fa'amamā na'o ata e fa'atumauina (e le tapeina) e ala i igoa fa'ailoga?

O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

E mautinoa lava, o se tulaga faapena o le a le fiafia ai se tasi.

O le a le mea o le a suia pe a faʻatagaina e faiga faʻavae ata e le tapeina? e tusa ai ma se taimi atofaina / numera o mea mulimuli?

O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

O le taunuuga ua sili atu ona lelei, ae o loʻo mamao lava mai le lelei. A uma mea uma, o loʻo i ai pea a matou atinaʻe o loʻo manaʻomia ata i totonu o le resitala (poʻo le faʻapipiʻiina foi i K8s) e debug bugs ...

Ina ia tauaofai le tulaga o maketi o loʻo i ai nei: o galuega o loʻo maua i totonu o pusa resitala e le lava le faʻaogaina pe a faʻamamā, ma o le mafuaaga autu o lenei mea leai se auala e fegalegaleai ai ma le lalolagi i fafo. E foliga mai o 'au e manaʻomia sea fetuutuunai e faʻamalosia e tutoʻatasi le faʻaaogaina o ata "mai fafo", e faʻaaoga ai le Docker Registry API (poʻo le API moni o le faʻatinoga tutusa).

Ae ui i lea, sa matou suʻeina se fofo lautele e faʻaogaina ai le faʻamamaina o ata mo 'au eseese e faʻaaoga ai resitala eseese ...

O lo tatou ala ile fa'amama ata lautele

O fea e sau ai lenei mana'oga? O le mea moni e le o matou o se vaega tu'ufa'atasi o tagata atia'e, ae o se 'au e tautuaina le to'atele oi latou i le taimi e tasi, e fesoasoani i le fa'amalieina o fa'afitauli CI/CD. Ma o le meafaigaluega faʻapitoa mo lenei mea o le Open Source aoga werf. O lona uiga ese e le faia se galuega e tasi, ae o loʻo faʻatasi ma le faʻaauauina o le tuʻuina atu i laʻasaga uma: mai le faʻapotopotoga i le faʻapipiʻiina.

O le fa'asalalauina o ata i le resitara* (i le taimi lava e uma ai ona fausia) ose galuega fa'aalia lea o sea mea aoga. Ma talu ai o ata o loʻo tuʻuina iina mo le teuina, o lona uiga - afai e le faʻatapulaʻaina lau teuina - e tatau ona e nafa ma le faʻamamaina mulimuli ane. Le auala na tatou ausia ai le manuia i lenei mea, faʻamalieina tulaga faʻapitoa uma, o le a talanoaina atili.

* E ui lava atonu e eseese le resitala (Docker Registry, GitLab Container Registry, Harbor, ma isi), o latou tagata faʻaoga e feagai ma faʻafitauli tutusa. O le fofo lautele i la tatou mataupu e le faʻalagolago i le faʻatinoina o le resitala, aua e tamo'e i fafo o le resitala lava latou ma ofoina atu le amio tutusa mo tagata uma.

E ui lava ina matou faʻaaogaina le werf e fai ma faʻataʻitaʻiga faʻatinoga, matou te faʻamoemoe o le a aoga auala o loʻo faʻaogaina i isi 'au o loʻo feagai ma faʻafitauli faʻapena.

O lea na matou pisi ai fafo fa'atinoina o se masini mo le fa'amamāina o ata - nai lo na gafatia ua uma ona fausia i totonu o resitala mo koneteina. O le laasaga muamua o le faʻaaogaina lea o le Docker Registry API e fatu ai faiga faʻavae tutusa mo le numera o pine ma le taimi na faia ai (taʻua i luga). Faaopoopo ia i latou fa'ataga le lisi e fa'atatau i ata o lo'o fa'aaogaina i atina'e fa'apipi'i, i.e. Kubernetes. Mo le vaega mulimuli, na lava le faʻaaogaina o le Kubernetes API e faʻataʻitaʻi i punaoa uma faʻapipiʻiina ma maua se lisi o tau. image.

O lenei fofo faatauvaa na foia ai le faafitauli pito sili ona taua (criterion Nu. 1), ae na o le amataga o la matou faigamalaga e faaleleia atili ai le masini faamama. O le isi laasaga - ma sili atu ona manaia - o le filifiliga fa'afeso'ota'i ata fa'asalalau ma le tala fa'asolopito o Git.

Fa'ailoga polokalame

I le amataga, na matou filifilia se auala e tatau ai i le ata mulimuli ona teuina faʻamatalaga talafeagai mo le faʻamamaina, ma fausia le faʻagasologa i luga o faʻailoga faʻailoga. A'o lolomiina se ata, na filifilia e le tagata fa'aoga se filifiliga fa'ailoga ma'oti (git-branch, git-commit poʻo git-tag) ma faʻaaoga le tau tutusa. I faiga CI, o nei tau na faʻatulagaina otometi e faʻavae i luga o fesuiaiga o le siosiomaga. Ae o le mea moni o le ata mulimuli na fesoʻotaʻi ma se Git primitive patino, teuina o faʻamaumauga talafeagai mo le faʻamamaina i totonu o faʻailoga.

O lenei faiga na mafua ai se seti o faiga faʻavae na faʻatagaina Git e faʻaaogaina e avea ma puna e tasi o le mea moni:

  • I le tapeina o se lala / tag i Git, o ata faʻatasi i totonu o le resitala na otometi lava ona tape.
  • Ole numera o ata e feso'ota'i ma fa'ailoga Git ma ta'utinoga e mafai ona fa'atonutonuina ile numera o fa'ailoga o lo'o fa'aogaina ile fuafuaga filifilia ma le taimi na fa'atupu ai le ta'utinoga.

I le aotelega, o le taunuuga o le faatinoga na faamalieina ai o matou manaoga, ae o se luitau fou na vave ona faatali mai ia i matou. O le mea moni o le faʻaaogaina o faʻailoga e faʻavae i Git primitives, na matou feagai ma le tele o faʻaletonu. (Talu ai o la latou faʻamatalaga e sili atu nai lo le lautele o lenei tusiga, e mafai e tagata uma ona faamasani i latou lava i faʻamatalaga iinei.) O le mea lea, ina ua uma ona filifili e sui i se auala e sili atu ona lelei i le faʻailoga (faʻailoga faʻavae i totonu), e tatau ona matou toe mafaufau i le faʻatinoina o le faʻamamaina o ata.

Algoritimi fou

Aisea? Fa'atasi ai ma fa'ailoga e fa'atatau i mea, e mafai e fa'ailoga ta'itasi ona fa'amalieina le tele o tautinoga i Git. A faʻamamā ata, e le mafai ona e toe faʻapea ae mai le commit lea na faaopoopo ai le pine fou i le resitala.

Mo le faʻamama fou algorithm, na filifili e alu ese mai le faʻailoga polokalame ma fausia fa'asologa o ata-meta, o ia mea ta'itasi o lo'o teuina ai se vaega o:

  • o le tautinoga lea na faia ai le lomiga (e le afaina pe faʻaopoopo le ata, suia pe tumau pea i le resitala o pusa);
  • ma o tatou fa'ailoga totonu e fetaui ma le ata ua fa'apotopotoina.

I se isi faaupuga, na saunia fa'afeso'ota'i fa'ailoga lolomi fa'atasi ma fa'atonuga ile Git.

Fa'asologa mulimuli ma le algorithm lautele

A'o fa'atulaga le fa'amama, ua maua nei e tagata fa'aoga faiga fa'avae e filifili ai ata o lo'o iai nei. O ia faiga faavae taitasi ua faamatalaina:

  • tele mau faasino, i.e. Fa'ailoga Git po'o lala Git e fa'aoga ile su'ega;
  • ma le tapulaa o ata suʻesuʻe mo faʻamatalaga taʻitasi mai le seti.

Mo se faʻataʻitaʻiga, o le mea lea na amata ona foliga mai ai le faʻatulagaina o faiga faʻavae:

cleanup:
  keepPolicies:
  - references:
      tag: /.*/
      limit:
        last: 10
  - references:
      branch: /.*/
      limit:
        last: 10
        in: 168h
        operator: And
    imagesPerReference:
      last: 2
      in: 168h
      operator: And
  - references:  
      branch: /^(main|staging|production)$/
    imagesPerReference:
      last: 10

O lenei fa'atulagaga o lo'o iai ni faiga fa'avae e tolu e tausisia tulafono nei:

  1. Fa'asaoina le ata mo fa'ailoga Git mulimuli e 10 (e ala i le aso o le fa'ailoga).
  2. Faasaoina le sili atu i le 2 ata na lomia i le vaiaso talu ai mo le sili atu ma le 10 filo o loʻo iai gaioiga i le vaiaso talu ai.
  3. Fa'asaoina ata e 10 mo lala main, staging и production.

O le algorithm mulimuli e faʻasolosolo i lalo i laasaga nei:

  • Toe aumai fa'aaliga mai le resitala o container.
  • E le aofia ai ata o loʻo faʻaaogaina i Kubernetes, aua Ua uma ona matou muai filifilia i latou e ala i le palota i le K8s API.
  • Va'aiga Git tala fa'asolopito ma le aofia ai ata fa'atatau i faiga fa'avae.
  • Aveese ata o totoe.

Toe foʻi i la tatou faʻataʻitaʻiga, o le mea lea e tupu i le werf:

O le faʻafitauli o le "atamai" faʻamamaina o ata atigipusa ma lona fofo ile werf

Ae ui i lea, e tusa lava pe e te le faʻaogaina le werf, o se auala tutusa i le faʻamamaina o ata maualuga - i le tasi faʻatinoga poʻo le isi (e tusa ai ma le faʻaogaina o le faʻailoga ata) - e mafai ona faʻaoga i isi faiga / aoga. Ina ia faia lenei mea, ua lava le manatuaina o faʻafitauli e tulaʻi mai ma maua na avanoa i lau faʻaputu e mafai ai ona e tuʻufaʻatasia a latou fofo i se tulaga sologa lelei. Matou te faʻamoemoe o le auala na matou faimalaga ai o le a fesoasoani ia te oe e te vaʻai i lau mataupu faʻapitoa i faʻamatalaga fou ma mafaufauga.

iʻuga

  • Ise taimi mulimuli ane, o le tele o 'au e feagai ma le faʻafitauli o le faʻamaualuga o le resitala.
  • Pe a suʻeina ni fofo, e manaʻomia muamua le fuafuaina o faʻavae mo le talafeagai o le ata.
  • O meafaigaluega o loʻo ofoina mai e auaunaga faʻasalalau taʻutaʻua e mafai ai e oe ona faʻatulagaina se faʻamamaina faigofie e le amanaʻia ai le "lalolagi i fafo": ata faʻaaogaina i Kubernetes ma uiga faʻapitoa o galuega a le au.
  • O se algorithm fetuutuunai ma lelei e tatau ona i ai se malamalamaaga i faiga CI / CD ma faʻagaioi e le gata i faʻamatalaga ata Docker.

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga