GitOps: Kwatanta Hanyoyin Ja da Turawa

Lura. fassara: A cikin al'ummar Kubernetes, yanayin da ake kira GitOps yana samun karbuwa a fili, kamar yadda muka gani da kanmu, ziyartar KubeCon Europe 2019. Wannan kalmar ta kasance kwanan nan ƙirƙira ta shugaban Weaveworks - Alexis Richardson - kuma yana nufin amfani da kayan aikin da aka saba da masu haɓakawa (musamman Git, don haka sunan) don magance matsalolin aiki. Musamman ma, muna magana ne game da aikin Kubernetes ta hanyar adana saitunan sa a Git kuma ta atomatik mirgine canje-canje zuwa gungu. Matthias Jg yayi magana game da hanyoyi guda biyu na wannan ƙaddamarwa a cikin wannan labarin.

GitOps: Kwatanta Hanyoyin Ja da Turawa

A bara (a zahiri, a zahiri wannan ya faru a watan Agusta 2017 - kusan fassarar.) Akwai sabuwar hanyar tura aikace-aikace a Kubernetes. Ana kiran sa GitOps, kuma ya dogara ne akan ainihin ra'ayin cewa ana bin nau'ikan turawa a cikin amintaccen muhallin ma'ajiyar Git.

Babban fa'idodin wannan hanya sune kamar haka::

  1. Siffar turawa da canza tarihin. Ana adana yanayin gabaɗayan tarin a cikin ma'ajiyar Git, kuma ana sabunta turawa ta hanyar sadaukarwa kawai. Bugu da ƙari, duk canje-canje za a iya bibiya ta amfani da tarihin ƙaddamarwa.
  2. Rollbacks ta amfani da saban umarnin Git. Sauƙi git reset yana ba ku damar sake saita canje-canje a cikin turawa; Jihohin da suka gabata suna samuwa koyaushe.
  3. Shirye-shiryen sarrafa damar shiga. Yawanci, tsarin Git ya ƙunshi bayanai masu mahimmanci da yawa, don haka yawancin kamfanoni suna ba da kulawa ta musamman don kare shi. Saboda haka, wannan kariyar kuma ta shafi ayyuka tare da turawa.
  4. Manufofin Ƙaddamarwa. Yawancin tsarin Git na asali suna tallafawa manufofin reshe-bi-misali, buƙatun ja ne kawai za su iya sabunta maigidan, kuma dole ne wani ɗan ƙungiyar ya sake duba canje-canje da karɓa. Kamar yadda yake tare da ikon samun dama, manufofin iri ɗaya sun shafi sabuntawar turawa.

Kamar yadda kuke gani, akwai fa'idodi da yawa ga hanyar GitOps. A cikin shekarar da ta gabata, hanyoyi guda biyu sun sami farin jini na musamman. Ɗayan turawa ne, ɗayan kuma ja ne. Kafin mu kalle su, bari mu fara duba yadda abubuwan tura Kubernetes suka yi kama.

Hanyoyin turawa

A cikin 'yan shekarun nan, an kafa hanyoyi da kayan aiki daban-daban don turawa a Kubernetes:

  1. An kafa tushen Kubernetes/Kustomize samfuri. Wannan ita ce hanya mafi sauƙi don tura aikace-aikace akan Kubernetes. Mai haɓakawa ya ƙirƙiri ainihin fayilolin YAML kuma yana amfani da su. Don kawar da sake rubutawa akai-akai iri ɗaya, an haɓaka Kustomize (yana juya samfuran Kubernetes zuwa kayayyaki). Lura. fassara: Kustomize an haɗa shi cikin kubectl tare da Kubernetes 1.14.
  2. Taswirar Helm. Taswirar Helm suna ba ku damar ƙirƙira jeri na samfuri, kwantena init, motocin gefe, da sauransu, waɗanda ake amfani da su don tura aikace-aikacen tare da zaɓuɓɓukan gyare-gyare masu sassauƙa fiye da tsarin tushen samfuri. Wannan hanyar ta dogara ne akan fayilolin YAML da aka tsara. Helm ya cika su da sigogi daban-daban sannan ya aika su zuwa Tiller, wani ɓangaren cluster wanda ke tura su zuwa gungu kuma yana ba da damar sabuntawa da sake dawowa. Muhimmin abu shine Helm da gaske kawai yana shigar da dabi'un da ake so a cikin samfuran sannan a yi amfani da su kamar yadda ake yi a tsarin gargajiya. (Karanta ƙarin game da yadda duk yake aiki da yadda zaku iya amfani da shi a cikin mu labarin Helm - kimanin. fassara). Akwai ginshiƙan shirye-shiryen Helm iri-iri da yawa waɗanda ke rufe ayyuka da yawa.
  3. Madadin Kayan aikin. Akwai kayan aikin madadin da yawa. Abin da suke da shi duka shine su juya wasu fayilolin samfuri zuwa fayilolin YAML masu karanta Kubernetes sannan su yi amfani da su.

A cikin aikinmu, muna amfani da sigogin Helm akai-akai don kayan aiki masu mahimmanci (tun da suna da abubuwa da yawa da aka riga aka shirya, wanda ya sa rayuwa ta fi sauƙi) da kuma fayilolin Kubernetes YAML "tsabta" don ƙaddamar da namu aikace-aikacen.

Ja & Tura

A cikin ɗaya daga cikin rubutuna na kwanan nan, na gabatar da kayan aiki Saƙa Flux, wanda ke ba ku damar yin samfura zuwa ma'ajiyar Git da sabunta aikin bayan kowane ƙaddamarwa ko tura kwantena. Kwarewata ta nuna cewa wannan kayan aikin yana ɗaya daga cikin manyan abubuwan haɓaka hanyar ja, don haka sau da yawa zan yi nuni da shi. Idan kana son ƙarin sani game da yadda ake amfani da shi, nan hanyar haɗi zuwa labarin.

NB! Duk fa'idodin amfani da GitOps sun kasance iri ɗaya ga hanyoyin biyu.

Ja tushen hanya

GitOps: Kwatanta Hanyoyin Ja da Turawa

Hanyar ja yana dogara ne akan gaskiyar cewa ana amfani da duk canje-canje daga cikin tari. Akwai ma'aikaci a cikin gungu wanda ke bincika wuraren ajiyar Git da Docker masu alaƙa akai-akai. Idan wasu canje-canje ya same su, ana sabunta yanayin tari a ciki. Gabaɗaya ana ɗaukar wannan tsari a matsayin amintacce, tunda babu wani abokin ciniki na waje da ke da damar samun haƙƙin mai gudanarwa ta gungu.

Sakamakon:

  1. Babu abokin ciniki na waje da ke da haƙƙin yin canje-canje ga tarin; duk abubuwan sabuntawa ana fitar da su daga ciki.
  2. Wasu kayan aikin kuma suna ba ku damar daidaita taswirar Helm kuma ku haɗa su zuwa gungu.
  3. Ana iya bincika rajistar Docker don sabbin nau'ikan. Idan akwai sabon hoto, ana sabunta ma'ajiyar Git da turawa zuwa sabon sigar.
  4. Ana iya rarraba kayan aikin ja a cikin wurare daban-daban tare da ma'ajin Git daban-daban da izini. Godiya ga wannan, ana iya amfani da samfurin multitenant. Misali, ƙungiyar A na iya amfani da sarari suna A, ƙungiyar B na iya amfani da sarari suna B, kuma ƙungiyar ababen more rayuwa na iya amfani da sararin duniya.
  5. A matsayinka na mai mulki, kayan aikin suna da nauyi sosai.
  6. Haɗe da kayan aiki kamar mai aiki Sirrin Hatimin Bitnami, Ana iya adana sirrin rufaffiyar a cikin ma'ajiyar Git kuma a samo su a cikin gungu.
  7. Babu wata alaƙa da bututun CD tun lokacin da turawa ke faruwa a cikin gungu.

Минусы:

  1. Sarrafa asirin ƙaddamarwa daga ginshiƙi na Helm ya fi wahala fiye da na yau da kullun, tun da farko dole ne a samar da su ta hanyar, a ce, sirrin da aka rufe, sannan ma'aikacin ciki ya ɓoye su, kuma bayan haka sai su kasance don samun kayan aikin ja. Sannan zaku iya gudanar da sakin a cikin Helm tare da ƙima a cikin sirrin da aka riga aka tura. Hanya mafi sauƙi ita ce ƙirƙirar sirri tare da duk ƙimar Helm da aka yi amfani da ita don turawa, ɓoye shi kuma sanya shi ga Git.
  2. Lokacin da kuka ɗauki matakin ja, za a ɗaure ku da kayan aikin ja. Wannan yana iyakance ikon tsara tsarin turawa a cikin tari. Misali, Kustomize yana da rikitarwa ta gaskiyar cewa dole ne ya gudana kafin a ƙaddamar da samfuran ƙarshe ga Git. Ba na cewa ba za ku iya amfani da kayan aikin da ba na tsaye ba, amma sun fi wahalar haɗawa cikin tsarin tura ku.

Tushen tushen hanya

GitOps: Kwatanta Hanyoyin Ja da Turawa

A cikin tsarin turawa, tsarin waje (mafi yawan bututun CD) yana ƙaddamar da turawa zuwa gungu bayan ƙaddamar da ma'ajin Git ko kuma idan bututun CI na baya ya yi nasara. Ta wannan hanyar, tsarin yana da damar zuwa gungu.

Плюсы:

  1. An ƙayyade tsaro ta wurin ajiyar Git da gina bututun mai.
  2. Aiwatar da jadawalin Helm yana da sauƙi kuma yana goyan bayan plugins Helm.
  3. Asirin yana da sauƙin sarrafawa saboda ana iya amfani da sirrin a cikin bututun kuma ana iya adana su a ɓoye cikin Git (ya danganta da zaɓin mai amfani).
  4. Babu haɗi zuwa takamaiman kayan aiki, tunda ana iya amfani da kowane nau'i.
  5. Za a iya fara sabunta sigar kwantena ta bututun ginawa.

Минусы:

  1. Bayanan shiga gungu yana cikin tsarin ginin.
  2. Ana ɗaukaka kwantena na turawa har yanzu yana da sauƙi tare da tsarin ja.
  3. Dogaro mai yawa akan tsarin CD, tun da bututun da muke buƙata na iya kasancewa an rubuta su ne don Gitlab Runners, sannan ƙungiyar ta yanke shawarar matsawa zuwa Azure DevOps ko Jenkins ... kuma za su yi ƙaura mai yawa na ginin bututun.

Sakamako: Tura ko Ja?

Kamar yadda aka saba, kowace hanya tana da fa'ida da rashin amfani. Wasu ayyuka sun fi sauƙi don cim ma ɗaya kuma mafi wuya da wani. Da farko ina yin tura kayan aiki da hannu, amma bayan na ci karo da ƴan labarai game da Weave Flux, na yanke shawarar aiwatar da matakan GitOps don duk ayyukan. Don samfuran asali wannan ya kasance mai sauƙi, amma sai na fara shiga cikin matsaloli tare da sigogin Helm. A lokacin, Weave Flux kawai yana ba da sigar ƙa'idar Helm Chart Operator, amma har yanzu wasu ayyuka sun fi wahala saboda buƙatar ƙirƙirar sirri da hannu da amfani da su. Kuna iya yin gardama cewa hanyar ja ta fi amintacciya saboda ba a iya samun bayanan tari a waje da gungu, yana sa ya fi tsaro sosai har ya cancanci ƙarin ƙoƙarin.

Bayan wasu tunani, na zo ga ƙarshe na ba zato ba tsammani cewa wannan ba haka ba ne. Idan muka yi magana game da abubuwan da ke buƙatar iyakar kariya, wannan jeri zai haɗa da ma'ajin sirri, tsarin CI/CD, da ma'ajiyar Git. Bayanin da ke cikin su yana da rauni sosai kuma yana buƙatar iyakar kariya. Bugu da ƙari, idan wani ya shiga wurin ajiyar Git ɗin ku kuma yana iya tura lamba a wurin, za su iya tura duk abin da suke so (ko ja ko tura) kuma su kutsa cikin tsarin tari. Don haka, mafi mahimmancin abubuwan da ke buƙatar kariya sune ma'ajin Git da tsarin CI/CD, ba takaddun shaida na tari ba. Idan kuna da ingantattun tsare-tsare da tsare-tsare na tsaro na waɗannan nau'ikan tsarin, kuma ana fitar da takaddun tari a cikin bututun mai a matsayin sirri kawai, ƙarin tsaro na hanyar ja ƙila ba ta da mahimmanci kamar yadda ake tunani na farko.

Don haka, idan tsarin ja ya fi ƙarfin aiki kuma baya samar da fa'idar tsaro, shin ba ma'ana ba ne a yi amfani da hanyar turawa kawai? Amma wani yana iya jayayya cewa a cikin tsarin turawa kun kasance da alaƙa da tsarin CD kuma, watakila, yana da kyau kada ku yi haka don ya kasance da sauƙi don aiwatar da ƙaura a nan gaba.

A ganina (kamar yadda aka saba), ya kamata ku yi amfani da abin da ya fi dacewa da wani akwati ko haɗuwa. Da kaina, Ina amfani da hanyoyi guda biyu: Weave Flux don ƙaddamar da tushen ja wanda galibi ya haɗa da ayyukanmu, da tsarin turawa tare da Helm da plugins, wanda ke sauƙaƙa amfani da sigogin Helm zuwa gungu kuma yana ba ku damar ƙirƙirar sirri ba tare da matsala ba. Ina tsammanin ba za a taɓa samun mafita guda ɗaya da ta dace da kowane yanayi ba, saboda koyaushe akwai nuances da yawa kuma sun dogara da takamaiman aikace-aikacen. Wannan ana faɗi, Ina ba da shawarar GitOps sosai - yana sauƙaƙa rayuwa kuma yana inganta tsaro.

Ina fatan kwarewata game da wannan batu zai taimake ku yanke shawarar wace hanya ce ta fi dacewa da nau'in tura ku, kuma zan yi farin cikin jin ra'ayin ku.

PS Note daga mai fassara

Ƙarƙashin ƙirar ƙira shi ne cewa yana da wahala a sanya bayanan da aka bayyana a cikin Git, amma babu wata ƙasa da cewa bututun CD a cikin ƙirar ja yana rayuwa dabam daga na'urar kuma a zahiri ya zama bututun rukuni. Ci gaba da Aiwatar. Don haka, za a buƙaci ƙarin ƙoƙari don tattara matsayinsu daga duk abubuwan da aka tura kuma ko ta yaya ba da damar yin amfani da rajistan ayyukan / matsayi, zai fi dacewa dangane da tsarin CD.

A wannan ma'anar, ƙirar turawa ta ba mu damar samar da akalla wasu garanti na ƙaddamarwa, saboda za a iya yin rayuwar rayuwar bututun daidai da tsawon rayuwar da aka yi.

Mun gwada duka samfuran kuma mun zo ga ƙarshe iri ɗaya kamar marubucin labarin:

  1. Samfurin ja ya dace da mu don tsara abubuwan sabuntawa na abubuwan tsarin akan babban adadin gungu (duba. labarin game da addon-operator).
  2. Samfurin turawa bisa GitLab CI ya dace sosai don fitar da aikace-aikace ta amfani da sigogin Helm. A lokaci guda, ana lura da ƙaddamar da ƙaddamarwa a cikin bututun mai ta amfani da kayan aiki wuf. Af, a cikin mahallin wannan aikin namu, mun ji "GitOps" akai-akai lokacin da muka tattauna matsalolin matsalolin injiniyoyin DevOps a tsaye a KubeCon Europe'19.

PPS daga mai fassara

Karanta kuma a kan shafinmu:

Masu amfani da rajista kawai za su iya shiga cikin binciken. Shigadon Allah.

Kuna amfani da GitOps?

  • Ee, ja gaba

  • Ee, turawa

  • Ee, ja + tura

  • Ee, wani abu kuma

  • Babu

Masu amfani 30 sun kada kuri'a. Masu amfani 10 sun kaurace.

source: www.habr.com

Add a comment