GitOps: gair mawr arall neu ddatblygiad arloesol ym maes awtomeiddio?

GitOps: gair mawr arall neu ddatblygiad arloesol ym maes awtomeiddio?

Mae’r rhan fwyaf ohonom, wrth sylwi ar derm newydd arall yn y blogosffer TG neu’r gynhadledd, yn hwyr neu’n hwyrach yn gofyn cwestiwn tebyg: “Beth yw hwn? Gair bwrlwm arall, “buzzword” neu rywbeth gwirioneddol deilwng o sylw manwl, astudiaeth ac addewid o orwelion newydd?” Digwyddodd yr un peth i mi gyda'r term GitOps beth amser yn ôl. Gyda llawer o erthyglau presennol, yn ogystal â gwybodaeth cydweithwyr o'r cwmni GitLab, Ceisiais ddarganfod pa fath o fwystfil yw hwn, a sut olwg fyddai ar ei ddefnydd yn ymarferol.

Gyda llaw, am newydd-deb y term GitOps Dywed ein harolwg diweddar hefyd: nid yw mwy na hanner y rhai a holwyd wedi dechrau gweithio gyda’i egwyddorion eto.

Felly, nid yw problem rheoli seilwaith yn newydd. Mae llawer o ddarparwyr cwmwl wedi bod ar gael i’r cyhoedd ers dwsin o flynyddoedd ac, mae’n ymddangos, dylent fod wedi gwneud gwaith y timau sy’n gyfrifol am y seilwaith yn syml ac yn syml. Fodd bynnag, o'u cymharu â'r broses datblygu cymwysiadau (lle mae awtomeiddio yn cyrraedd lefelau newydd), mae prosiectau seilwaith yn aml yn cynnwys llawer o dasgau llaw ac mae angen gwybodaeth ac arbenigedd arbenigol, yn enwedig o ystyried gofynion heddiw ar gyfer goddefgarwch diffygion, hyblygrwydd, scalability ac elastigedd.

Cyflawnodd gwasanaethau cwmwl y gofynion hyn yn llwyddiannus iawn a nhw a roddodd ysgogiad sylweddol i ddatblygiad y dull gweithredu IaC. Mae hyn yn ddealladwy. Wedi'r cyfan, fe wnaethant ei gwneud hi'n bosibl ffurfweddu canolfan ddata gwbl rithwir: nid oes gweinyddwyr ffisegol, raciau na chydrannau rhwydwaith; gellir disgrifio'r seilwaith cyfan gan ddefnyddio sgriptiau a ffeiliau cyfluniad.

Felly beth yn union yw'r gwahaniaeth? GitOps o IaC? Gyda'r cwestiwn hwn y dechreuais fy ymchwiliad. Ar ôl siarad â chydweithwyr, roeddwn yn gallu llunio'r gymhariaeth ganlynol:

GitOps

IaC

Mae'r holl god yn cael ei storio mewn ystorfa git

Mae fersiynau cod yn ddewisol

Disgrifiad o'r Cod Datganol / Analluedd

Mae disgrifiadau datganol a hanfodol yn dderbyniol

Daw newidiadau i rym gan ddefnyddio'r mecanweithiau Cais Uno / Cais Tynnu

Mae cytundeb, cymeradwyaeth a chydweithio yn ddewisol

Mae'r broses cyflwyno diweddariad yn awtomataidd

Nid yw'r broses cyflwyno diweddariadau wedi'i safoni (awtomatig, â llaw, copïo ffeiliau, defnyddio'r llinell orchymyn, ac ati)

Mewn geiriau eraill GitOps wedi ei eni yn union trwy gymhwysiad yr egwyddorion IaC. Yn gyntaf, gellid bellach storio seilwaith a chyfluniadau yn yr un ffordd â chymwysiadau. Mae'r cod yn hawdd i'w storio, yn hawdd ei rannu, ei gymharu, a defnyddio galluoedd fersiwn. Fersiynau, canghenau, hanes. A hyn i gyd mewn man sy'n hygyrch i'r cyhoedd i'r tîm cyfan. Felly, daeth y defnydd o systemau rheoli fersiwn yn ddatblygiad cwbl naturiol. Yn benodol, git, fel y mwyaf poblogaidd.

Ar y llaw arall, daeth yn bosibl i awtomeiddio prosesau rheoli seilwaith. Nawr gellir gwneud hyn yn gyflymach, yn fwy dibynadwy ac yn rhatach. Ar ben hynny, roedd egwyddorion CI / CD eisoes yn hysbys ac yn boblogaidd ymhlith datblygwyr meddalwedd. Nid oedd angen ond trosglwyddo a chymhwyso gwybodaeth a sgiliau a oedd eisoes yn hysbys i faes newydd. Roedd yr arferion hyn, fodd bynnag, yn mynd y tu hwnt i'r diffiniad safonol o Isadeiledd fel cod, a dyna pam y daeth y cysyniad GitOps.

GitOps: gair mawr arall neu ddatblygiad arloesol ym maes awtomeiddio?

Chwilfrydedd GitOps, wrth gwrs, hefyd yn y ffaith nad yw'n gynnyrch, ategyn neu lwyfan sy'n gysylltiedig ag unrhyw werthwr. Mae'n fwy o batrwm a set o egwyddorion, yn debyg i derm arall yr ydym yn gyfarwydd ag ef: DevOps.

Yn y cwmni GitLab rydym wedi datblygu dau ddiffiniad o'r term newydd hwn: damcaniaethol ac ymarferol. Gadewch i ni ddechrau gyda'r damcaniaethol:

Mae GitOps yn fethodoleg sy'n cymryd yr egwyddorion DevOps gorau a ddefnyddir ar gyfer datblygu cymwysiadau, megis rheoli fersiynau, cydweithredu, offeryniaeth, CI / CD, ac yn eu cymhwyso i heriau awtomeiddio rheolaeth seilwaith.

Pob proses GitOps Rwy'n gweithio gan ddefnyddio offer presennol. Mae'r holl god seilwaith yn cael ei storio yn y storfa git sydd eisoes yn gyfarwydd, mae newidiadau'n mynd trwy'r un broses gymeradwyo ag unrhyw god rhaglen arall, ac mae'r broses gyflwyno yn awtomataidd, sy'n ein galluogi i leihau gwallau dynol, cynyddu dibynadwyedd ac atgynhyrchedd.

O safbwynt ymarferol, rydym yn disgrifio GitOps fel a ganlyn:

GitOps: gair mawr arall neu ddatblygiad arloesol ym maes awtomeiddio?

Rydym eisoes wedi trafod seilwaith fel cod fel un o gydrannau allweddol y fformiwla hon. Gadewch i ni gyflwyno gweddill y cyfranogwyr.

Cais Cyfuno (enw amgen Pull Request). Yn nhermau proses, mae MR yn gais i gymhwyso newidiadau cod ac yna uno canghennau. Ond o ran yr offer a ddefnyddiwn, mae hwn yn fwy o gyfle i gael darlun cyflawn o'r holl newidiadau sy'n cael eu gwneud: nid yn unig y cod diff a gasglwyd o nifer penodol o ymrwymiadau, ond hefyd y cyd-destun, canlyniadau profion, a'r canlyniad disgwyliedig terfynol. Os ydym yn sôn am god seilwaith, yna mae gennym ddiddordeb mewn sut yn union y bydd y seilwaith yn newid, faint o adnoddau newydd a gaiff eu hychwanegu neu eu dileu, eu newid. Yn ddelfrydol mewn fformat mwy cyfleus a hawdd ei ddarllen. Ar gyfer darparwyr cwmwl, mae'n syniad da gwybod beth fydd effaith ariannol y newid hwn.

Ond mae MR hefyd yn fodd o gydweithio, rhyngweithio a chyfathrebu. Y man lle mae'r system o wiriadau a balansau yn dod i rym. O sylwadau syml i gymeradwyaeth a chymeradwyaeth ffurfiol.

Wel, mae'r gydran olaf: CI / CD, fel y gwyddom eisoes, yn ei gwneud hi'n bosibl awtomeiddio'r broses o wneud newidiadau a phrofion seilwaith (o wirio cystrawen syml i ddadansoddiad cod statig mwy cymhleth). A hefyd wrth ganfod drifft dilynol: gwahaniaethau rhwng cyflwr gwirioneddol a dymunol y system. Er enghraifft, o ganlyniad i newidiadau llaw heb awdurdod neu fethiant system.

Ie, y term GitOps nid yw'n ein cyflwyno i unrhyw beth hollol newydd, nid yw'n ailddyfeisio'r olwyn, ond yn syml yn cymhwyso'r profiad sydd eisoes wedi cronni mewn maes newydd. Ond dyma lle mae ei gryfder.

Ac os ydych chi'n dod â diddordeb yn sydyn yn sut mae hyn i gyd yn edrych yn ymarferol, yna rwy'n eich gwahodd i edrych ar ein dosbarth meistr, lle dywedaf wrthych gam wrth gam sut i ddefnyddio GitLab:

  • Gweithredu egwyddorion sylfaenol GitOps

  • Creu a gwneud newidiadau i seilwaith y cwmwl (gan ddefnyddio'r enghraifft o Yandex Cloud)

  • Canfod drifft system yn awtomatig o gyflwr dymunol gan ddefnyddio monitro gweithredol

GitOps: gair mawr arall neu ddatblygiad arloesol ym maes awtomeiddio?https://bit.ly/34tRpwZ

Ffynhonnell: hab.com

Ychwanegu sylw