GitOps: Coimeas eadar dòighean tarraing is putadh

Thoir an aire. eadar-theangachadh.: Ann an coimhearsnachd Kubernetes, tha gluasad ris an canar GitOps a’ fàs mòr-chòrdte, mar a chunnaic sinn gu pearsanta, a' tadhal KubeCon Europe 2019. Bha an teirm seo an ìre mhath o chionn ghoirid dh'innlich le ceannard Weaveworks - Alexis Richardson - agus tha e a’ ciallachadh cleachdadh innealan air a bheil luchd-leasachaidh eòlach (gu sònraichte Git, mar sin an t-ainm) gus fuasgladh fhaighinn air duilgheadasan obrachaidh. Gu sònraichte, tha sinn a ’bruidhinn mu dheidhinn gnìomhachd Kubernetes le bhith a’ stòradh a rèiteachaidhean ann an Git agus a ’sgaoileadh atharrachaidhean don bhuidheann gu fèin-ghluasadach. Tha Matthias Jg a’ bruidhinn air dà dhòigh air an sgaoileadh seo san artaigil seo.

GitOps: Coimeas eadar dòighean tarraing is putadh

An-uiridh (gu dearbh, gu foirmeil thachair seo san Lùnastal 2017 - approx. transl.) Tha dòigh-obrach ùr ann airson a bhith a’ cleachdadh thagraidhean ann an Kubernetes. Canar GitOps ris, agus tha e stèidhichte air a’ bheachd bhunasach gu bheilear a’ cumail sùil air dreachan cleachdaidh ann an àrainneachd thèarainte stòr Git.

Tha prìomh bhuannachdan an dòigh-obrach seo mar a leanas::

  1. Tionndadh cleachdadh agus eachdraidh atharrachaidh. Tha staid a’ bhuidheann gu lèir air a stòradh ann an stòr Git, agus tha cleachdadh air ùrachadh dìreach tro ghealltanasan. A bharrachd air an sin, faodar sùil a chumail air a h-uile atharrachadh a’ cleachdadh eachdraidh a’ gheallaidh.
  2. Rollbacks a’ cleachdadh òrdughan Git eòlach. Sìmplidh git reset a 'leigeil leat ath-shuidheachadh atharrachaidhean ann an cleachdadh; tha stàitean a dh’ fhalbh an-còmhnaidh rim faighinn.
  3. Smachd ruigsinneachd deiseil. Mar as trice, tha tòrr dàta mothachail ann an siostam Git, agus mar sin bidh a’ mhòr-chuid de chompanaidhean a’ toirt aire shònraichte do dhìon. A rèir sin, tha an dìon seo cuideachd a’ buntainn ri gnìomhachd le cleachdadh.
  4. Poileasaidhean airson Cleachdaidhean. Bidh a’ mhòr-chuid de shiostaman Git gu dùthchasach a’ toirt taic do phoileasaidhean meur-air-meur - mar eisimpleir, is e dìreach iarrtasan tarraing as urrainn maighstir ùrachadh, agus feumaidh ball sgioba eile ath-sgrùdadh agus gabhail riutha. Coltach ri smachd ruigsinneachd, tha na h-aon phoileasaidhean a’ buntainn ri ùrachadh cleachdadh.

Mar a chì thu, tha mòran bhuannachdan ann don dòigh GitOps. Thairis air a’ bhliadhna a dh’ fhalbh, tha dà dhòigh-obrach air fàs gu sònraichte mòr-chòrdte. Tha aon stèidhichte air putadh, tha am fear eile stèidhichte air tarraing. Mus coimhead sinn orra, leig dhuinn an toiseach coimhead air cò ris a bhios cleachdadh àbhaisteach Kubernetes coltach.

Dòighean Cur-an-gnìomh

Anns na bliadhnachan mu dheireadh, tha grunn dhòighean agus innealan airson cleachdadh air an stèidheachadh ann an Kubernetes:

  1. Stèidhichte air teamplaidean dùthchasach Kubernetes / Kustomize. Is e seo an dòigh as fhasa air tagraidhean a chuir gu Kubernetes. Bidh an leasaiche a’ cruthachadh na faidhlichean bunaiteach YAML agus gan cur an sàs. Gus faighinn cuidhteas de bhith ag ath-sgrìobhadh na h-aon teamplaidean gu cunbhalach, chaidh Kustomize a leasachadh (bidh e a 'tionndadh teamplaidean Kubernetes gu modalan). Thoir an aire. eadar-theangachadh.: Tha Kustomize air fhilleadh a-steach do kubectl le sgaoileadh Kubernetes 1.14.
  2. Clàran Helm. Leigidh clàran Helm leat seataichean de theamplaidean a chruthachadh, init containers, sidecars, msaa, a thathas a’ cleachdadh gus tagraidhean a chleachdadh le roghainnean gnàthachaidh nas sùbailte na ann an dòigh-obrach stèidhichte air teamplaid. Tha an dòigh seo stèidhichte air faidhlichean YAML teamplaid. Bidh Helm gan lìonadh le diofar pharamadairean agus an uairsin gan cur gu Tiller, pàirt brabhsair a bhios gan cleachdadh chun bhuidheann agus a leigeas le ùrachaidhean agus rolladh air ais. Is e an rud chudromach gu bheil Helm gu bunaiteach dìreach a’ cuir a-steach na luachan a tha thu ag iarraidh a-steach do na teamplaidean agus an uairsin gan cur an sàs san aon dòigh ’s a tha e air a dhèanamh san dòigh-obrach thraidiseanta. (leugh tuilleadh mu mar a tha e uile ag obair agus mar as urrainn dhut a chleachdadh nar artaigil le Helm - mu thuairmeas. eadar-theangachadh.). Tha measgachadh farsaing de chlàran Helm deiseil ann a tha a’ còmhdach raon farsaing de ghnìomhan.
  3. Innealan Eile. Tha mòran innealan eile ann. Is e an rud a th’ aca uile mar as trice gun tionndaidh iad cuid de fhaidhlichean teamplaid gu faidhlichean YAML a ghabhas leughadh le Kubernetes agus an uairsin gan cleachdadh.

Anns an obair againn, bidh sinn an-còmhnaidh a’ cleachdadh clàran Helm airson innealan cudromach (leis gu bheil tòrr rudan deiseil aca mu thràth, a tha a’ dèanamh beatha gu math nas fhasa) agus faidhlichean Kubernetes YAML “fìor-ghlan” airson na tagraidhean againn fhèin a chleachdadh.

Tarraing & Brùth

Ann am fear de na puist bhlog agam o chionn ghoirid, thug mi a-steach an inneal Flux fighe, a leigeas leat teamplaidean a ghealltainn don stòr Git agus an cleachdadh ùrachadh às deidh gach gealltanas no putadh den t-soitheach. Tha an t-eòlas agam a 'sealltainn gur e an inneal seo aon de na prìomh fheadhainn ann a bhith a' brosnachadh an dòigh tarraing, agus mar sin bidh mi tric a 'toirt iomradh air. Ma tha thu airson tuilleadh fhaighinn a-mach mu mar a chleachdas tu e, an seo ceangal ris an artaigil.

NB! Tha na buannachdan uile bho bhith a’ cleachdadh GitOps an aon rud airson an dà dhòigh-obrach.

Dòigh-obrach stèidhichte air tarraing

GitOps: Coimeas eadar dòighean tarraing is putadh

Tha an dòigh tarraing stèidhichte air gu bheil a h-uile atharrachadh air a chuir an sàs bhon taobh a-staigh den bhuidheann. Tha gnìomhaiche taobh a-staigh a’ bhuidheann a bhios gu cunbhalach a’ sgrùdadh na stòran-tasgaidh Git and Docker Registry co-cheangailte riutha. Ma thig atharrachadh sam bith orra, thèid staid a’ chnuasaich ùrachadh air an taobh a-staigh. Thathas den bheachd gu bheil am pròiseas seo gu math tèarainte sa chumantas, leis nach eil cothrom aig neach-dèiligidh bhon taobh a-muigh air còraichean rianadair brabhsair.

Pros:

  1. Chan eil còraichean aig neach-dèiligidh bhon taobh a-muigh atharrachaidhean a dhèanamh air a’ bhuidheann; tha gach ùrachadh air a sgaoileadh a-mach bhon taobh a-staigh.
  2. Leigidh cuid de dh’ innealan dhut ùrachaidhean cairt Helm a shioncronachadh agus an ceangal ris a’ bhuidheann.
  3. Faodar Docker Registry a sganadh airson dreachan ùra. Ma tha ìomhaigh ùr ri fhaighinn, thèid an stòr Git agus an cleachdadh ùrachadh chun dreach ùr.
  4. Faodar innealan tarraing a sgaoileadh thairis air diofar àiteachan ainm le diofar stòran Git agus ceadan. Taing dha seo, faodar modal ioma-cheannach a chleachdadh. Mar eisimpleir, dh’ fhaodadh sgioba A àite-ainm A a chleachdadh, dh’ fhaodadh sgioba B àite-ainm B a chleachdadh, agus dh’ fhaodadh sgioba a’ bhun-structair àite cruinne a chleachdadh.
  5. Mar riaghailt, tha na h-innealan gu math aotrom.
  6. Còmhla ri innealan leithid gnìomhaiche Dìomhaireachd seulaichte Bitnami, faodar dìomhaireachdan a stòradh air a chrioptachadh ann an stòr Git agus an toirt air ais taobh a-staigh a’ bhuidheann.
  7. Chan eil ceangal sam bith ri pìoban CD leis gu bheil cleachdadh a’ tachairt taobh a-staigh a’ bhuidheann.

Минусы:

  1. Tha e nas duilghe dìomhaireachdan cleachdadh bho chlàran Helm a riaghladh, oir feumaidh iad a bhith air an cruthachadh an-toiseach ann an cruth, can, dìomhaireachdan seulaichte, an uairsin air an dì-chrioptachadh le gnìomhaiche a-staigh, agus dìreach às deidh sin bidh iad rim faighinn leis an inneal tarraing. An uairsin faodaidh tu an naidheachd a ruith ann an Helm leis na luachan anns na dìomhaireachdan a chaidh a chleachdadh mar-thà. Is e an dòigh as fhasa dìomhaireachd a chruthachadh leis na luachan Helm gu lèir a thathas a’ cleachdadh airson an cleachdadh, a dhì-chrioptachadh agus a ghealltainn gu Git.
  2. Nuair a chleachdas tu dòigh tarraing, bidh thu ceangailte ri innealan tarraing. Tha seo a’ cuingealachadh comas a’ phròiseas cleachdadh a ghnàthachadh ann am brabhsair. Mar eisimpleir, tha Kustomize iom-fhillte leis gum feum e ruith mus tèid na teamplaidean deireannach a ghealltainn do Git. Chan eil mi ag ràdh nach urrainn dhut innealan leis fhèin a chleachdadh, ach tha iad nas duilghe am filleadh a-steach don phròiseas cleachdadh agad.

Dòigh-obrach stèidhichte air putadh

GitOps: Coimeas eadar dòighean tarraing is putadh

Anns an dòigh putadh, bidh siostam taobh a-muigh (pìoban CD sa mhòr-chuid) a ’cur air bhog cleachdadh don bhuidheann às deidh gealltanas don stòr Git no ma tha an loidhne-phìoban CI roimhe soirbheachail. San dòigh-obrach seo, tha cothrom aig an t-siostam air a’ bhuidheann.

Плюсы:

  1. Tha tèarainteachd air a dhearbhadh le loidhne-phìoban stòrais is togail Git.
  2. Tha e nas fhasa clàran Helm a chleachdadh agus bheir e taic do plugins Helm.
  3. Tha dìomhaireachdan nas fhasa a riaghladh oir faodar dìomhaireachdan a chleachdadh ann am pìoban agus faodar an stòradh cuideachd ann an crioptachadh ann an Git (a rèir roghainnean an neach-cleachdaidh).
  4. Chan eil ceangal ri inneal sònraichte, oir faodar seòrsa sam bith a chleachdadh.
  5. Faodar ùrachadh dreach container a thòiseachadh leis an loidhne-phìoban togail.

Минусы:

  1. Tha an dàta ruigsinneachd brabhsair taobh a-staigh an t-siostam togail.
  2. Tha e nas fhasa fhathast soithichean cleachdaidh ùrachadh le pròiseas tarraing.
  3. Tha earbsa mhòr air an t-siostam CD, oir is dòcha gun deach na pìoban a tha a dhìth oirnn a sgrìobhadh an toiseach airson Gitlab Runners, agus an uairsin bidh an sgioba a’ co-dhùnadh gluasad gu Azure DevOps no Jenkins…

Toraidhean: Push or Pull?

Mar as àbhaist, tha na buannachdan agus na h-eas-bhuannachdan aig gach dòigh-obrach. Tha cuid de ghnìomhan nas fhasa a choileanadh le aon agus nas duilghe le fear eile. An toiseach bha mi a’ dèanamh cleachdadh le làimh, ach às deidh dhomh beagan artaigilean fhaicinn mu Weave Flux, chuir mi romham pròiseasan GitOps a chuir an gnìomh airson a h-uile pròiseact. Airson teamplaidean bunaiteach bha seo furasta, ach an uairsin thòisich mi a’ ruith gu duilgheadasan le clàran Helm. Aig an àm, cha robh Weave Flux a’ tabhann ach dreach bunaiteach den Helm Chart Operator, ach eadhon a-nis tha cuid de ghnìomhan nas duilghe leis gu bheil feum air dìomhaireachdan a chruthachadh le làimh agus an cur an sàs. Dh’ fhaodadh tu argamaid a dhèanamh gu bheil an dòigh tarraing tòrr nas tèarainte leis nach eil teisteanasan a’ chnuasach ruigsinneach taobh a-muigh na buidhne, ga dhèanamh cho fada nas tèarainte is gum b’ fhiach an oidhirp a bharrachd.

Às deidh beagan smaoineachaidh, thàinig mi chun cho-dhùnadh ris nach robh dùil nach eil seo fìor. Ma bhruidhneas sinn mu cho-phàirtean a dh ’fheumas an dìon as motha, bidh an liosta seo a’ toirt a-steach stòradh dìomhair, siostaman CI / CD, agus stòran Git. Tha am fiosrachadh a tha nam broinn gu math so-leònte agus feumach air an dìon as motha. A bharrachd air an sin, ma thèid cuideigin a-steach don stòr Git agad agus gun urrainn dhaibh còd a phutadh an sin, faodaidh iad rud sam bith a tha iad ag iarraidh a chuir a-steach (ge bith an e tarraing no putadh a th’ ann) agus in-shìoladh a dhèanamh air siostaman a ’chnuasaiche. Mar sin, is e na pàirtean as cudromaiche a dh’ fheumar a dhìon an stòr Git agus siostaman CI / CD, chan e na teisteanasan brabhsair. Ma tha poileasaidhean agus smachdan tèarainteachd air an deagh dhealbhadh agad airson an t-seòrsa siostam seo, agus gu bheil teisteanasan brabhsair air an toirt a-steach do phìoban mar dhìomhaireachd a-mhàin, is dòcha nach bi an tèarainteachd a bharrachd ann an dòigh tarraing cho luachmhor sa bhathas an dùil.

Mar sin, ma tha an dòigh tarraing nas dian-obrach agus nach toir e seachad buannachd tèarainteachd, nach eil e loidsigeach a bhith a’ cleachdadh an dòigh-obrach putaidh a-mhàin? Ach dh’ fhaodadh cuideigin a bhith ag argamaid gu bheil thu ro cheangailte ris an t-siostam CD san dòigh-obrach putaidh agus, is dòcha, gu bheil e nas fheàrr gun a bhith a’ dèanamh seo gus am bi e nas fhasa imrich a dhèanamh san àm ri teachd.

Na mo bheachd-sa (mar a bha e an-còmhnaidh), bu chòir dhut an rud as freagarraiche a chleachdadh airson cùis shònraichte no measgachadh. Gu pearsanta, bidh mi a’ cleachdadh an dà dhòigh-obrach: Weave Flux airson cleachdadh stèidhichte air tarraing a tha sa mhòr-chuid a’ toirt a-steach na seirbheisean againn fhèin, agus dòigh-obrach putaidh le Helm agus plugins, a tha ga dhèanamh furasta clàran Helm a chuir a-steach don bhuidheann agus a leigeas leat dìomhaireachdan a chruthachadh gun fhiosta. Tha mi a 'smaoineachadh nach bi aon fhuasgladh ann a-riamh a tha freagarrach airson a h-uile cùis, oir tha an-còmhnaidh tòrr nuances ann agus tha iad an urra ris an tagradh sònraichte. Le bhith ga ràdh, tha mi a’ moladh GitOps gu mòr - bidh e a’ dèanamh beatha tòrr nas fhasa agus a’ leasachadh tèarainteachd.

Tha mi an dòchas gun cuidich an t-eòlas agam air a’ chuspair seo thu gus co-dhùnadh dè an dòigh a tha nas freagarraiche airson do sheòrsa cleachdadh, agus bhithinn toilichte do bheachd a chluinntinn.

PS Nota bhon eadar-theangair

Is e an eas-bhuannachd den mhodail tarraing gu bheil e duilich taisbeanaidhean air an toirt seachad a chuir a-steach do Git, ach chan eil dad ceàrr ann gu bheil an loidhne-phìoban CD anns a’ mhodail tarraing a ’fuireach air leth bhon sgaoileadh agus gu ìre mhòr bidh e na loidhne-phìoban roinne. Leantainneach Cuir a-steach. Mar sin, bidh feum air eadhon barrachd oidhirp gus an inbhe a chruinneachadh bho gach cleachdadh agus dòigh air choireigin cothrom a thoirt do logaichean / inbhe, mas fheàrr a thaobh an t-siostam CD.

Anns an t-seagh seo, leigidh am modail putaidh leinn co-dhiù cuid de gheallaidhean a thoirt seachad mu sgaoileadh a-mach, oir faodar beatha na loidhne-phìoban a dhèanamh co-ionann ri beatha an sgaoileadh.

Dh'fheuch sinn an dà mhodail agus thàinig sinn gu na h-aon cho-dhùnaidhean ri ùghdar an artaigil:

  1. Tha am modail tarraing freagarrach dhuinn airson ùrachaidhean de cho-phàirtean siostam a chuir air dòigh air àireamh mhòr de chlàran (faic. artaigil mu dheidhinn gnìomhaiche addon).
  2. Tha am modail putaidh stèidhichte air GitLab CI gu math freagarrach airson a bhith a’ sgaoileadh thagraidhean a’ cleachdadh clàran Helm. Aig an aon àm, thathas a’ cumail sùil air sgaoileadh cleachdadh taobh a-staigh pìoban a’ cleachdadh an inneil gaoir. Co-dhiù, ann an co-theacsa a’ phròiseict seo againne, chuala sinn an “GitOps” seasmhach nuair a bheachdaich sinn air na duilgheadasan èiginneach aig innleadairean DevOps aig ar seasamh aig KubeCon Europe’19.

PPS bhon eadar-theangair

Leugh cuideachd air ar blog:

Chan fhaod ach luchd-cleachdaidh clàraichte pàirt a ghabhail san sgrùdadh. Soidhnig a-steach, mas e do thoil e.

A bheil thu a’ cleachdadh GitOps?

  • Tha, tarraing dòigh-obrach

  • Seadh, brùth

  • Tha, tarraing + putadh

  • Tha, rudeigin eile

  • Chan eil

Bhòt 30 neach-cleachdaidh. Sheall 10 neach-cleachdaidh.

Source: www.habr.com

Cuir beachd ann