GitOps: in oar buzzword as in trochbraak yn automatisearring?

GitOps: in oar buzzword as in trochbraak yn automatisearring?

De measten fan ús, dy't in oare nije term yn 'e IT-blogsfear as konferinsje opmerke, stelle ier of letter in ferlykbere fraach: "Wat is dit? Gewoan in oar buzzword, in "buzzword" of wat echt wurdich omtinken, stúdzje en belofte fan nije horizonten? Itselde barde my mei de term GitOps in skofke lyn. Bewapene mei in protte besteande artikels, lykas de kennis fan kollega's fan it bedriuw GitLab, Ik besocht út te finen hokker soarte bist dit is, en hoe't it yn 'e praktyk der útsjen kin.

Troch de wei, oer de nijichheid fan 'e term GitOps Us resinte enkête seit ek: mear as de helte fan de ûnderfrege is noch net mei de útgongspunten oan it wurk.

Dat, it probleem fan ynfrastruktuerbehear is net nij. In protte wolkproviders binne foar in goed tsien jier beskikber west foar it algemiene publyk en, it liket derop, moatte it wurk fan 'e teams ferantwurdlik foar de ynfrastruktuer ienfâldich en rjochtlinich makke hawwe. Lykwols, yn ferliking mei it proses fan applikaasjeûntwikkeling (wêr't automatisearring hieltyd nije nivo's berikt), befetsje ynfrastruktuerprojekten noch faak in protte hântaken en fereaskje spesjalisearre kennis en saakkundigens, foaral sjoen de hjoeddeistige easken foar fouttolerânsje, fleksibiliteit, skalberens en elastisiteit.

Wolketsjinsten foldienen dizze easken tige suksesfol en it wiene se dy't in wichtige ympuls joegen oan 'e ûntwikkeling fan' e oanpak IaC. Dit is begryplik. Se makken it ommers mooglik om in folslein firtuele datasintrum te konfigurearjen: d'r binne gjin fysike servers, racks of netwurkkomponinten; de heule ynfrastruktuer kin beskreaun wurde mei skripts en konfiguraasjebestannen.

Dus wat is it ferskil krekt? GitOps от IaC? It wie mei dizze fraach dat ik myn ûndersyk begon. Nei it praten mei kollega's koe ik de folgjende fergeliking betinke:

GitOps

IaC

Alle koade wurdt opslein yn in git repository

Koade ferzje is opsjoneel

Declarative Code Description / Idempotency

Sawol deklarative as ymperatyf beskriuwingen binne akseptabel

Feroarings wurde effekt mei help fan de gearfoeging fersyk / Pull Request meganismen

Oerienkomst, goedkarring en gearwurking binne opsjoneel

It fernijingsútrolproses is automatisearre

It fernijingsútrolproses is net standerdisearre (automatysk, hânmjittich, bestannen kopiearje, gebrûk fan de kommandorigel, ensfh.)

Mei oare wurden GitOps waard berne krekt troch de tapassing fan 'e prinsipes IaC. As earste kinne ynfrastruktuer en konfiguraasjes no wurde opslein op deselde manier as applikaasjes. De koade is maklik te bewarjen, maklik te dielen, te fergelykjen en te brûken ferzjemooglikheden. Ferzjes, tûken, skiednis. En dit alles op in plak dat iepenbier tagonklik is foar it hiele team. Dêrom, it brûken fan ferzje kontrôle systemen waard in folslein natuerlike ûntwikkeling. Benammen git, as de populêrste.

Oan 'e oare kant waard it mooglik om prosessen foar ynfrastruktuerbehear te automatisearjen. No kin dat flugger, betrouberder en goedkeaper. Boppedat wiene de prinsipes fan CI / CD al bekend en populêr ûnder software-ûntwikkelders. It wie allinnich nedich om al bekende kennis en feardichheden oer te dragen en ta te passen op in nij gebiet. Dizze praktiken gongen lykwols fierder as de standert definysje fan Ynfrastruktuer as koade, dus it konsept GitOps.

GitOps: in oar buzzword as in trochbraak yn automatisearring?

Nijsgjirrigens GitOps, fansels, ek yn it feit dat it net in produkt, plugin of platfoarm is ferbûn mei elke ferkeaper. It is mear in paradigma en in set fan prinsipes, fergelykber mei in oare term wêrmei wy bekend binne: DevOps.

Yn selskip GitLab wy hawwe twa definysjes fan dizze nije term ûntwikkele: teoretyske en praktyske. Litte wy begjinne mei de teoretyske:

GitOps is in metodyk dy't de bêste DevOps-prinsipes nimt dy't brûkt wurde foar applikaasjeûntwikkeling, lykas ferzjekontrôle, gearwurking, orkestraasje, CI / CD, en tapast op 'e útdagings fan it automatisearjen fan ynfrastruktuerbehear.

Alle prosessen GitOps Ik wurkje mei besteande ark. Alle ynfrastruktuerkoade wurdt opslein yn it al bekende git-repository, wizigingen geane troch itselde goedkarringsproses as elke oare programmakoade, en it útrolproses is automatisearre, wêrtroch't wy minsklike flaters kinne minimalisearje, betrouberens en reprodusearberens ferheegje.

Ut in praktysk eachpunt, wy beskriuwe GitOps as folget:

GitOps: in oar buzzword as in trochbraak yn automatisearring?

Wy hawwe al besprutsen ynfrastruktuer as koade as ien fan de kaai komponinten fan dizze formule. Litte wy de rest fan 'e dielnimmers foarstelle.

Merge Request (alternatyf namme Pull Request). Yn prosestermen is MR in fersyk om koadewizigingen oan te passen en dan tûken te fusearjen. Mar yn termen fan 'e ark dy't wy brûke, is dit mear in kâns om in folslein byld te krijen fan alle wizigingen dy't makke wurde: net allinich it koadeferskil sammele út in bepaald oantal commits, mar ek de kontekst, testresultaten, en de úteinlike ferwachte resultaat. As wy it hawwe oer ynfrastruktuerkoade, dan binne wy ​​ynteressearre yn hoe krekt de ynfrastruktuer sil feroarje, hoefolle nije boarnen wurde tafoege of fuortsmiten, feroare. It leafst yn wat handiger en maklik te lêzen opmaak. Foar wolkproviders is it in goed idee om te witten wat de finansjele ynfloed fan dizze feroaring sil wêze.

Mar MR is ek in middel fan gearwurking, ynteraksje en kommunikaasje. It plak dêr't it systeem fan kontrôles en saldo's yn spiel komt. Fan ienfâldige opmerkings oant formele goedkarring en goedkarring.

No, de lêste komponint: CI / CD, lykas wy al witte, makket it mooglik om it proses fan it meitsjen fan ynfrastruktuerwizigingen en testen te automatisearjen (fan ienfâldige syntaksiskontrôle oant kompleksere statyske koade-analyze). En ek yn 'e folgjende deteksje fan drift: ferskillen tusken de echte en winske steat fan it systeem. Bygelyks, as gefolch fan net foechhawwende hânmjittich feroarings of systeem falen.

Ja, de term GitOps stelt ús net foar wat folslein nij, net opnij útfine it tsjil, mar gewoan tapast de al opboude ûnderfining yn in nij gebiet. Mar dit is wêr't syn krêft leit.

En as jo ynienen ynteressearre wurde yn hoe't dit der yn 'e praktyk allegear útsjocht, dan noegje ik jo út om te sjen nei ús masterclass, wêryn ik jo stap foar stap fertel hoe't jo GitLab brûke:

  • Implementearje de basisprinsipes fan GitOps

  • Meitsje en meitsje wizigingen oan 'e wolkynfrastruktuer (mei it foarbyld fan Yandex Cloud)

  • Automatisearje deteksje fan systeemdrift fan in winske steat mei aktive tafersjoch

GitOps: in oar buzzword as in trochbraak yn automatisearring?https://bit.ly/34tRpwZ

Boarne: www.habr.com

Add a comment