Lagolago mo monorepo ma multirepo i werf ma o le a le mea e fai i ai le Docker Registry

Lagolago mo monorepo ma multirepo i werf ma o le a le mea e fai i ai le Docker Registry

O le autu o le mono-repository ua sili atu ma le tasi na talanoaina ma, o se tulafono, e mafua ai feeseeseaiga malosi. E ala i le fatuina werf i le avea o se meafaigaluega tatala punaoa ua mamanuina e faʻaleleia ai le faagasologa o le fausiaina o le numera o talosaga mai Git i ata Docker (ona tuʻuina atu lea i Kubernetes), matou te le mafaufau tele po o le fea filifiliga e sili. Mo i matou, o le mea muamua e tuʻuina atu mea uma e manaʻomia mo tagata lagolago o manatu eseese (pe a le feteenaʻi lenei mea, ioe).

o le lagolago mono-repo talu ai nei a werf o se faʻataʻitaʻiga lelei o lenei. Ae muamua, seʻi o tatou vaʻai pe faʻafefea ona fesoʻotaʻi lenei lagolago i le faʻaaogaina o le werf ma le mea e fai e le Docker Registry ...

Mataupu

Seʻi mafaufau i se tulaga faapena. O le kamupani e tele au atinaʻe o loʻo galulue i galuega tutoʻatasi. Ole tele o talosaga e fa'aoga ile Kubernetes ma o lea e fa'aputuina. Ina ia teuina pusa, ata, e te manaʻomia se resitala (resitala). I le avea ai o se resitala, e faʻaaoga e le kamupani le Docker Hub ma se tala e tasi COMPANY. E tutusa ma le tele o faiga e teu ai code source, E le fa'atagaina e Docker Hub le fa'atulagaina o fa'aputuga fa'aputuga, pei o le COMPANY/PROJECT/IMAGE. I lena tulaga… e mafai faapefea ona e teuina ni talosaga e le-monolithic i totonu o le resitala ma lenei tapulaa e aunoa ma le fatuina o se teugatupe ese mo galuega taitasi?

Lagolago mo monorepo ma multirepo i werf ma o le a le mea e fai i ai le Docker Registry

Masalo, o le tulaga faʻamatalaina e masani lava i se tasi, ae seʻi o tatou mafaufau i le mataupu o le faʻatulagaina o le teuina o talosaga i le lautele, i.e. e aunoa ma se faʻamatalaga i le faʻataʻitaʻiga o loʻo i luga ma Docker Hub.

Tali

Afai o le talosaga monolithic, e sau i le ata e tasi, ona leai lea o ni fesili ma na o le teuina o ata i le resitala o pusa o le poloketi.

A tu'uina atu se talosaga o ni vaega se tele, microservices, ona manaʻomia lea o se auala patino. I luga o le faʻataʻitaʻiga o se 'upega tafaʻilagi masani e aofia ai ata e lua: frontend и backend - o avanoa e mafai ona:

  1. Teu ata i fale teu fa'aputu eseese:

    Lagolago mo monorepo ma multirepo i werf ma o le a le mea e fai i ai le Docker Registry

  2. Teu mea uma i totonu o le fale e tasi, ma mafaufau i le igoa o le ata i le pine, mo se faʻataʻitaʻiga, e pei ona taua i lalo:

    Lagolago mo monorepo ma multirepo i werf ma o le a le mea e fai i ai le Docker Registry

NB: O le mea moni, o loʻo i ai se isi filifiliga ma sefe i faleoloa eseese, PROJECT-frontend и PROJECT-backend, ae matou te le mafaufau i ai ona o le lavelave o le lagolago, faʻatulagaina ma le tufatufaina o aia i le va o tagata faʻaoga.

lagolago werf

I le taimi muamua, na faʻatapulaʻaina e le werf ia lava i fale teu oloa - o le mea e lelei ai, o le tele o resitala e lagolagoina lenei vaega. Amata mai le version v1.0.4-alpha.3, fa'aopoopo galuega fa'atasi ma resitara lea e le lagolagoina le ofaga, ma Docker Hub o se tasi oi latou. Mai lena taimi, e iai le filifiliga a le tagata faʻaoga i le auala e teu ai ata o talosaga.

Fa'atino avanoa i lalo o le filifiliga --images-repo-mode=multirepo|monorepo (tauaga multirepo, i.e. teuina i fale teu oloa). O loʻo faʻamalamalamaina mamanu e teu ai ata i totonu o le resitala. Ua lava le filifilia o le tulaga manaʻomia pe a faʻaaogaina tulafono faavae, ma o isi mea uma o le a tumau pea e le suia.

Ona o le tele o filifiliga werf e mafai ona seti fesuiaiga o le siosiomaga, i faiga CI / CD, o le auala e teu ai e masani ona faigofie ona seti i le lalolagi atoa mo le galuega atoa. Faataitaiga, i le tulaga o GitLab na'o le fa'aopoopoina o se suiga o le si'osi'omaga i fa'atulagaga o galuega: Fa'atonu -> CI / CD -> Fesuia'iga: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Afai tatou te talanoa e uiga i le lolomiina o ata ma le taʻavaleina o tusi talosaga (e mafai ona e faitau e uiga i nei faʻagasologa i auiliiliga i tusitusiga talafeagai: Fa'asalalau fa'agasologa и Fa'agasolo faiga), ona na'o le fa'ata'ita'iga lea e mafai ona e galue ai ma le ata.

O le tiapolo o loʻo i totonu o faʻamatalaga

O le eseesega ma le faigata tele pe a faʻaopoopoina se auala fou e teu ai o loʻo i le faagasologa o le faʻamamaina o le resitala (mo mea faʻamama e lagolagoina e werf, vaʻai Mea faʻamamaina).

Pe a faʻamamā, e amanaia e werf ata o loʻo faʻaaogaina i fuifui Kubernetes, faʻapea foʻi ma faiga faʻavae na faʻatulagaina e le tagata faʻaoga. O faiga fa'avae e fa'avae ile vaevaega o fa'ailoga ile ta'iala. Ta'iala lagolago i le taimi nei:

  1. 3 taʻiala e fesoʻotaʻi e Git primitives e pei ole tag, lala, ma tautinoga;
  2. 1 ta'iala mo fa'ailoga fa'apitoa.

Matou te faʻasaoina faʻamatalaga e uiga i le fuafuaga faʻailoga pe a lolomiina le ata i faʻailoga o le ata mulimuli. O le uiga lava ia e ta'u meta tag - Manaomia e faʻaaoga nisi o faiga faʻavae. Mo se faʻataʻitaʻiga, pe a tapeina se lala poʻo se pine mai se faleoloa Git, e talafeagai le tapeina o fesoʻotaʻiga le fa'aaogaina ata mai le resitala, o lo'o ufiufi e se vaega oa tatou faiga fa'avae.

Pe a fa'asaoina i totonu o se fale teu oloa (monorepo), i le faʻailoga ata, faʻaopoopo i le meta tag, o le igoa o le ata e mafai foi ona teuina: PROJECT:frontend-META-TAG. Ina ia vavaeeseina i latou, matou te leʻi faʻaofiina soʻo se vavaeesega patino, ae na o le faʻaopoopoina o le tau talafeagai i le igoa o le ata mulimuli pe a lolomiina.

NB: Afai e te fiafia e vaʻavaʻai i mea uma o loʻo faʻamatalaina i le werf source code, ona mafai lea o le amataga PR 1684.

I lenei tusiga, o le a le sili atu le gauai atu i faafitauli ma le faʻamaoniaina o la tatou auala: e uiga i le faʻailogaina o taʻiala, teuina o faʻamaumauga i igoa ma le faʻasalalauga atoa - o nei mea uma o loʻo faʻamatalaina auiliili i se lipoti lata mai e Dmitry Stolyarov: "werf o la matou meafaigaluega mo CI / CD i Kubernetes".

E aoteleina

O le leai o se lagolago mo resitala e leʻi faʻaogaina e leʻo se mea e taofia ai i matou poʻo le au faʻaoga werf ua matou iloa - pe a uma, e mafai lava ona e faʻatupuina se isi resitala ata (pe sui i se Container Registry i Google Cloud) ... Ae ui i lea, O le aveeseina o sea faʻatapulaʻa na foliga mai e talafeagai ina ia sili atu ona faigofie le meafaigaluega i le lautele o le DevOps community. I le fa'atinoina, na matou feagai ai ma le faigata tele i le toe fa'aogaina o le masini fa'amama resitala o pusa. I le taimi nei ua saunia mea uma, e manaia le iloa ua sili atu ona faigofie mo se tasi, ma o matou (o le au atinaʻe autu o le poloketi) o le a leai ni faʻafitauli faʻapitoa i le lagolagoina atili o lenei vaega.

Nofo faʻatasi ma i matou ma e le o toe mamao ae matou taʻu atu ia te oe e uiga i isi mea fou i totonu werf!

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga