Ts'ehetso ea monorepo le multirepo ho werf le hore na Docker Registry e amana joang le eona

Ts'ehetso ea monorepo le multirepo ho werf le hore na Docker Registry e amana joang le eona

Sehlooho sa mono-repository se 'nile sa tšohloa ka makhetlo a mangata' me, e le molao, se baka likhohlano tse matla haholo. Ka ho bopa werf e le sesebelisoa sa mohloli o bulehileng o etselitsoeng ho ntlafatsa mokhoa oa ho haha ​​​​khoutu ea kopo ho tloha litšoantšong tsa Git ho ea ho Docker (ebe u li isa ho Kubernetes), ha re nahane haholo ka khetho e molemo ka ho fetisisa. Ho rona, ke ntho e ka sehloohong ho fana ka ntho e 'ngoe le e' ngoe e hlokahalang bakeng sa batšehetsi ba maikutlo a fapaneng (haeba sena se sa hanyetse maikutlo a tloaelehileng, ho hlakile).

Tšehetso ea morao-rao ea werf ea mono-repo ke mohlala o motle oa sena. Empa pele, a re boneng hore na ts'ehetso ena hangata e amana joang le ho sebelisa werf le hore na Registry ea Docker e amana joang le eona ...

Litaba

A re nahaneng ka boemo bo joalo. Khampani e na le lihlopha tse ngata tsa nts'etsopele tse sebetsang mererong e ikemetseng. Lisebelisoa tse ngata li sebetsa ho Kubernetes ka hona li na le setshelo. Ho boloka lijana, litšoantšo, o hloka registry (registry). Joalo ka ngoliso e joalo, k'hamphani e sebelisa Docker Hub e nang le ak'haonte e le 'ngoe COMPANY. E ts'oana le lits'ebetso tse ngata tsa polokelo ea khoutu ea mohloli, Docker Hub ha e lumelle bolaoli ba polokelo ea sehlaha, joalo ka COMPANY/PROJECT/IMAGE. Boemong boo… u ka boloka joang lits'ebetso tseo e seng tsa monolithic ho ngolisoeng ka moeli ona ntle le ho theha ak'haonte e fapaneng bakeng sa projeke ka 'ngoe?

Ts'ehetso ea monorepo le multirepo ho werf le hore na Docker Registry e amana joang le eona

Mohlomong, boemo bo hlalositsoeng bo tloaelehile ho motho ka boeena, empa a re nahaneng ka taba ea ho hlophisa polokelo ea kopo ka kakaretso, i.e. ntle le ho bua ka mohlala o ka holimo le Docker Hub.

Litharollo

Haeba kopo monolithic, e tla ka setšoantšo se le seng, joale ha ho na lipotso 'me re boloka litšoantšo feela ho ngoliso ea lijana tsa morero.

Ha kopo e hlahisoa e le likarolo tse ngata, microservices, joale ho hlokahala mokhoa o itseng. Mohlala oa ts'ebeliso e tloaelehileng ea webo e nang le litšoantšo tse peli: frontend и backend - likhetho tse ka khonehang ke:

  1. Boloka litšoantšo libakeng tse arohaneng tsa polokelo:

    Ts'ehetso ea monorepo le multirepo ho werf le hore na Docker Registry e amana joang le eona

  2. Boloka tsohle polokelong e le 'ngoe, 'me u nahane ka lebitso la setšoantšo ho tag, mohlala, ka tsela e latelang:

    Ts'ehetso ea monorepo le multirepo ho werf le hore na Docker Registry e amana joang le eona

NB: Ha e le hantle, ho na le khetho e 'ngoe ka ho boloka libakeng tse fapaneng tsa polokelo, PROJECT-frontend и PROJECT-backend, empa re ke ke ra e nahana ka lebaka la ho rarahana ha tšehetso, tlhophiso le kabo ea litokelo pakeng tsa basebelisi.

tšehetso ea werf

Qalong, werf e ne e ikemela libakeng tsa polokelo ea lihlaha - ka lehlohonolo, li-registries tse ngata li tšehetsa tšobotsi ena. Ho qala ka mofuta v1.0.4-alpha.3, mosebetsi o eketsehileng ka liregistries tseo ho tsona sehlaha ha se tšehetsoe, mme Docker Hub ke e 'ngoe ea tsona. Ho tloha ka nako eo ho ea pele, mosebelisi o na le khetho ea ho boloka litšoantšo tsa kopo.

Ts'ebetsong e fumaneha tlas'a khetho --images-repo-mode=multirepo|monorepo (ea kamehla multirepo, ke. polokelo dipolokelong tse hlahiswang). E hlalosa mekhoa eo litšoantšo li bolokiloeng ka eona ho ngolisoang. Ho lekane ho khetha mokhoa o lakatsehang ha u sebelisa litaelo tsa motheo, 'me ntho e' ngoe le e 'ngoe e tla lula e sa fetohe.

Hobane likhetho tse ngata tsa werf li ka beoa mefuta e fapaneng ya tikoloho, ho litsamaiso tsa CI / CD, mokhoa oa ho boloka hangata o bonolo ho o beha lefatšeng ka bophara bakeng sa morero oohle. Ka mohlala, tabeng ea GitLab Kenya feela phetoho ea tikoloho maemong a projeke: Litlhophiso -> CI / CD -> Mefuta e fapaneng: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Haeba re bua ka ho phatlalatsa litšoantšo le ho tsamaisa lits'ebetso (o ka bala ka lits'ebetso tsena ka botlalo ho lingoliloeng tse amehang: Mokhoa oa ho phatlalatsa и Mokhoa oa ho tsamaisa), ebe mokhoa o khetha feela template eo u ka sebetsang le setšoantšo ka eona.

Diabolosi o ka lintlha

Phapang le bothata bo ka sehloohong ha u eketsa mokhoa o mocha oa ho boloka ke mokhoa oa ho hloekisa registry (bakeng sa likarolo tsa ho hloekisa tse tšehetsoeng ke werf, bona Mokhoa oa ho hloekisa).

Ha u hloekisa, werf e nahanela litšoantšo tse sebelisoang ho lihlopha tsa Kubernetes, hammoho le maano a hlophisitsoeng ke mosebedisi. Melao e ipapisitse le karohano ea li-tag ka maano. Maano a tšehetsoeng hajoale:

  1. Maano a 3 a hokahantsoeng ke li-primitives tsa Git joalo ka tag, lekala le boitlamo;
  2. Leano le 1 la li-tag tse ikhethileng.

Re boloka tlhahisoleseling mabapi le leano la li-tag ha re phatlalatsa setšoantšo ka har'a lileibole tsa setšoantšo sa ho qetela. Moelelo ka boeona ke seo ho thoeng ke meta tag - Ho hlokahala ho sebelisa tse ling tsa maano. Mohlala, ha o hlakola lekala kapa tag sebakeng sa polokelo ea Git, hoa utloahala ho hlakola e sa sebelisoeng litšoantšo tse tsoang ho registry, e koahetsoeng ke karolo ea maano a rona.

Ha e bolokiloe polokelong e le 'ngoe (monorepo), ho tag ea setšoantšo, ntle le meta tag, lebitso la setšoantšo le lona le ka bolokoa: PROJECT:frontend-META-TAG. Ho li arola, ha rea ​​ka ra hlahisa karohano leha e le efe e khethehileng, empa re kentse boleng bo hlokahalang ho leibole ea setšoantšo sa ho qetela ha re phatlalatsa.

NB: Haeba u thahasella ho sheba ntho e 'ngoe le e' ngoe e hlalositsoeng ho khoutu ea mohloli oa werf, joale ntlha ea ho qala e ka ba PR 1684.

Sehloohong sena, re ke ke ra ela hloko mathata le tokafatso ea mokhoa oa rona: mabapi le maano a ho tšoaea, ho boloka data ka lileibole le mokhoa oa ho hatisa ka kakaretso - sena sohle se hlalositsoe ka botlalo tlalehong ea morao tjena ea Dmitry Stolyarov: "werf ke sesebelisoa sa rona sa CI / CD ho Kubernetes".

Ho akaretsa

Ho haella ha ts'ehetso bakeng sa li-registries tse sa sebetseng e ne e se ntho e thibelang ho rona kapa basebelisi ba werf bao re ba tsebang - ka mor'a tsohle, u ka lula u phahamisa ngoliso ea litšoantšo e arohaneng (kapa u fetohele ho Registry ea Container e nang le maemo ho Google Cloud) ... Leha ho le joalo, Ho tlosa thibelo e joalo ho ne ho bonahala ho utloahala e le hore sesebelisoa se be bonolo haholoanyane ho sechaba sa DevOps. E le ho e kenya ts'ebetsong, re ile ra tobana le bothata bo boholo ba ho tsosolosa mochine oa ho hloekisa lijana. Kaha joale ntho e 'ngoe le e' ngoe e se e loketse, ho monate ho hlokomela hore ho se ho le bonolo ho motho e mong, 'me rona (joaloka baetsi ba ka sehloohong ba morero) re ke ke ra ba le mathata leha e le afe a ho tšehetsa karolo ena.

Lula le rona 'me haufinyane re tla u bolella ka mekhoa e meng e mecha ho werf!

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso