GitOps: una altra paraula de moda o un avenç en l'automatització?

GitOps: una altra paraula de moda o un avenç en l'automatització?

La majoria de nosaltres, notant un altre terme nou a la blogosfera o conferència informàtica, tard o d'hora ens fem una pregunta semblant: “Què és això? Només una paraula de moda més, una "paraula de moda" o alguna cosa realment digne d'atenció, estudi i promesa de nous horitzons? Amb el terme em va passar el mateix GitOps fa un temps. Armat amb molts articles existents, així com el coneixement dels companys de l'empresa GitLab, vaig intentar esbrinar quin tipus de bèstia és aquesta i com podria semblar el seu ús a la pràctica.

Per cert, sobre la novetat del terme GitOps La nostra recent enquesta també diu: més de la meitat dels enquestats encara no han començat a treballar amb els seus principis.

Per tant, el problema de la gestió de les infraestructures no és nou. Molts proveïdors de núvol han estat disponibles per al públic en general durant una bona dotzena d'anys i, sembla, haurien d'haver fet la feina dels equips responsables de la infraestructura senzilla i senzilla. No obstant això, en comparació amb el procés de desenvolupament d'aplicacions (on l'automatització està assolint nivells cada cop més nous), els projectes d'infraestructura encara sovint impliquen moltes tasques manuals i requereixen coneixements i experiència especialitzats, sobretot tenint en compte els requisits actuals de tolerància a errors, flexibilitat, escalabilitat i elasticitat.

Els serveis al núvol van complir aquests requisits amb molt d'èxit i van ser ells els que van donar un impuls significatiu al desenvolupament de l'enfocament IaC. Això és comprensible. Després de tot, van permetre configurar un centre de dades completament virtual: no hi ha servidors físics, bastidors o components de xarxa; tota la infraestructura es pot descriure mitjançant scripts i fitxers de configuració.

Aleshores, quina és exactament la diferència? GitOps d' IaC? Va ser amb aquesta pregunta que vaig començar la meva investigació. Després de parlar amb els companys, vaig poder fer la següent comparació:

GitOps

IaC

Tot el codi s'emmagatzema en un repositori git

La versió del codi és opcional

Codi Declaratiu Descripció / Idempotència

Tant les descripcions declaratives com les imperatives són acceptables

Els canvis tenen efecte mitjançant els mecanismes de sol·licitud de combinació/sol·licitud d'extracció

L'acord, l'aprovació i la col·laboració són opcionals

El procés de llançament de l'actualització està automatitzat

El procés de llançament de l'actualització no està estandarditzat (automàtic, manual, còpia de fitxers, utilitzant la línia d'ordres, etc.)

En altres paraules GitOps va néixer precisament per l'aplicació dels principis IaC. En primer lloc, ara la infraestructura i les configuracions es podrien emmagatzemar de la mateixa manera que les aplicacions. El codi és fàcil d'emmagatzemar, fàcil de compartir, comparar i utilitzar les capacitats de control de versions. Versions, branques, història. I tot això en un lloc accessible al públic per a tot l'equip. Per tant, l'ús de sistemes de control de versions es va convertir en un desenvolupament completament natural. En particular, git, com el més popular.

D'altra banda, es va fer possible l'automatització dels processos de gestió d'infraestructures. Ara això es pot fer més ràpid, més fiable i més barat. A més, els principis de CI/CD ja eren coneguts i populars entre els desenvolupadors de programari. Només calia transferir i aplicar coneixements i habilitats ja coneguts a una nova àrea. Aquestes pràctiques, però, anaven més enllà de la definició estàndard d'Infraestructura com a codi, d'aquí el concepte GitOps.

GitOps: una altra paraula de moda o un avenç en l'automatització?

Curiositat GitOps, per descomptat, també en el fet que no és un producte, connector o plataforma associat a cap venedor. És més aviat un paradigma i un conjunt de principis, similar a un altre terme que coneixem: DevOps.

La companyia GitLab hem desenvolupat dues definicions d'aquest nou terme: teòrica i pràctica. Comencem pel teòric:

GitOps és una metodologia que pren els millors principis de DevOps utilitzats per al desenvolupament d'aplicacions, com ara el control de versions, la col·laboració, l'orquestració, CI/CD, i els aplica als reptes de l'automatització de la gestió de la infraestructura.

Tots els processos GitOps Treballo amb les eines existents. Tot el codi d'infraestructura s'emmagatzema al dipòsit git ja conegut, els canvis passen pel mateix procés d'aprovació que qualsevol altre codi de programa i el procés de llançament està automatitzat, la qual cosa ens permet minimitzar els errors humans, augmentar la fiabilitat i la reproductibilitat.

Des d'un punt de vista pràctic, descrivim GitOps de la manera següent:

GitOps: una altra paraula de moda o un avenç en l'automatització?

Ja hem parlat de la infraestructura com a codi com un dels components clau d'aquesta fórmula. Anem a presentar la resta de participants.

Sol·licitud de combinació (nom alternatiu Pull Request). En termes de procés, MR és una sol·licitud per aplicar canvis de codi i després fusionar branques. Però pel que fa a les eines que fem servir, aquesta és més una oportunitat per obtenir una imatge completa de tots els canvis que s'estan realitzant: no només la diferència de codi recollida a partir d'un cert nombre de commits, sinó també el context, els resultats de les proves i el resultat final esperat. Si estem parlant de codi d'infraestructura, aleshores ens interessa saber com canviarà exactament la infraestructura, quants recursos nous s'afegiran o s'eliminaran, es canviaran. Preferiblement en un format més còmode i fàcil de llegir. Per als proveïdors de núvol, és una bona idea saber quin serà l'impacte financer d'aquest canvi.

Però la RM és també un mitjà de col·laboració, interacció i comunicació. El lloc on entra en joc el sistema de controls i contrapesos. Des de simples comentaris fins a aprovacions i aprovacions formals.

Bé, l'últim component: CI/CD, com ja sabem, permet automatitzar el procés de realització de canvis d'infraestructura i proves (des de la simple comprovació de la sintaxi fins a l'anàlisi de codi estàtic més complex). I també en la posterior detecció de deriva: diferències entre l'estat real i desitjat del sistema. Per exemple, com a resultat de canvis manuals no autoritzats o errors del sistema.

Sí, el terme GitOps no ens presenta res completament nou, no reinventa la roda, sinó que simplement aplica l'experiència ja acumulada en una nova àrea. Però aquí és on rau la seva força.

I si de sobte us interessa com es veu tot això a la pràctica, us convido a mirar el nostre classe magistral, en què us explico pas a pas com utilitzar GitLab:

  • Implementar els principis bàsics de GitOps

  • Creeu i feu canvis a la infraestructura del núvol (utilitzant l'exemple de Yandex Cloud)

  • Automatitzeu la detecció de la deriva del sistema des d'un estat desitjat mitjançant la supervisió activa

GitOps: una altra paraula de moda o un avenç en l'automatització?https://bit.ly/34tRpwZ

Font: www.habr.com

Afegeix comentari