Evoluția managementului configurației: IaC vs. GitOps

Publicat: 2022-05-23

Cuprins

Evoluția managementului configurației

Structurile necorespunzătoare sunt principalul motiv din spatele incidentelor de siguranță în medii Kubernetes - orchestrate sau alte containere. Fără configurația corectă, aplicațiile pot întâmpina probleme, de la incompatibilități și conflicte până la erori de performanță, vulnerabilități de securitate și eșecuri operaționale. Managementul configurației este o parte importantă a menținerii stării dorite și stabile a computerelor în ciclul de viață al dezvoltării software.

Moștenirea managementului configurației

Pe atunci, când era vorba de gestionarea schimbărilor în resursele IT, echipa IT se concentra în primul rând pe nivelul serverului, pentru a vedea dacă orice modificare a hardware-ului ar cauza probleme la nivelul rămas. Fiecare server a fost configurat manual cu îngrijire excelentă și timp liber. Mașinile virtuale au adus o mai mare flexibilitate și eficiență acestui proces.

Codul de infrastructură (IaC) este un pas mare pentru gestionarea configurației în care întregul hardware este definit ca un cod. Instrumentele IaC, cum ar fi platformele bazate pe cloud, Chef, Puppet și Ansible, au jucat un rol cheie în simplificarea și scalarea managementului infrastructurii. Au contribuit la accelerarea furnizării infrastructurii și la reducerea costurilor prin îmbunătățirea utilizării resurselor.

De-a lungul anilor, platformele bazate pe cloud și containerele, în special, au revoluționat modul în care este furnizată infrastructura. Odată cu adoptarea unui cloud major și transformarea lui Git în sistemul actual de control al versiunilor, GitOps a apărut ca cea mai recentă răsturnare în evoluția managementului arhitecturii. GitOps depășește cu mult IaC atunci când vine vorba de codificarea totul. „Totul” aici include infrastructură, rețele, date și aplicații.

Kubernetes și abordarea declarativă a infrastructurii

La fel ca programarea, există două abordări pentru furnizarea infrastructurii – notificare și obligatorie.

O abordare convingătoare necesită să specificați pașii corespunzători care trebuie luați pentru furnizarea sau modificarea infrastructurii. Oferă experiența de utilizare a infrastructurii. Oferă experiența de utilizare a infrastructurii. Pe de altă parte, abordarea notificărilor este mai potrivită pentru abordarea modernă cloud-native definită de Kubernetes. Trebuie doar să definiți starea dorită a sistemului și să lăsați funcționalitatea acestuia pe seama unui site precum Kubernetes. Infrastructura Kubernetes facilitează atât automatizarea, cât și configurarea notificărilor.

Trecerea de la DevOps la GitOps

GitOps, conceput în 2017, este un cadru funcțional modern pentru gestionarea clusterelor Kubernetes și furnizarea de aplicații centrate pe Git. Obține cele mai bune părți ale DevOps, cum ar fi instrumentul CI / CD, o colaborare între Dev și Ops, automatizarea proceselor și le folosește în conducta de livrare a software-ului folosind Git ca sursă de autenticitate.

DevOps a asigurat colaborarea între echipele de dezvoltare și operaționale și a adus schimbări culturale în domeniul tehnologiei informației. Dar, mai puțin decât se aștepta, companiile au adoptat caracteristicile integrării continue și distribuției continue, dar nu s-au îndreptat către implementarea continuă.

Aici GitOps duce lucrurile la nivelul următor. Cu abordarea GitOps, echipele nu numai că definesc, ci și gestionează sortarea și modificarea infrastructurii lor din cadrul unui depozit Git. Modificarea infrastructurii este la fel de ușoară ca și crearea unei cereri de tragere acum – puteți prinde greșeli de scriere, puteți face recenzii regulate sau puteți modifica angajamentul dacă este necesar. Folosind Git, dezvoltatorii pot genera acum cod, iar inginerii sistemului de operare pot folosi acest cod automat în producție.

Folosind Flux & Helm pentru gestionarea configurației bazată pe GitOps

Kubernetes vă permite să integrați o varietate de instrumente pentru a automatiza planificarea, sortarea și monitorizarea containerelor. Un astfel de instrument este Helm, care a devenit foarte popular în ecosistemul GitOps.

Helm este un manager de pachete puternic pentru Kubernetes, care facilitează definirea, instalarea și implementarea celor mai repetitive aplicații și servicii utilizate într-o varietate de situații. Helm Charts adaugă o mare valoare mediului de distribuție continuă, oferind un design de ambalare organizat pentru gestionarea mai multor fișiere YAML cu valori duplicate și hardcode.

Managementul configurației: IaC vs. GitOps

Pe scurt, Helm vă ajută să păstrați lucrurile simple atunci când măsurați și gestionați ieșiri complexe. Dar trebuie să fie conectat la depozitele esențiale Git definite de clusterul K8s și de specificațiile aplicației. Flux ușurează.

Flux este o colecție de agenți GitOps open-source care acționează ca o punte între depozitele Git și clusterele Kubernetes. Helm Chart este un instrument de automatizare a sortării notificărilor care menține consistența codului prin automatizarea ieșirii atunci când sunt introduse modificări de cod. Flux sincronizează aceste modificări de la Git la clusterele Kubernetes.

Face acest lucru cu resurse personalizate numite HelmRelease, care declanșează operatorul helm și sincronizează modificările la codul diagramei. Ca să nu mai vorbim, Flux vine cu funcții extinse de detectare a derivei, precum și alte funcții interesante.

Multă vreme, managementul arhitecturii a fost despre hardware și infrastructură, dar de atunci am parcurs un drum lung. Odată cu introducerea GitOps și a instrumentelor care ușurează acest lucru, dezvoltatorii și inginerii platformei au o mulțime de opțiuni pentru a proiecta infrastructura pe care o doresc - într-un mod de anunț.

Weave GitOps utilizează Flux și Helm și împuternicește fluxurile de lucru eficiente de gestionare a configurației din depozitele jit în toate modurile în care Kubernetes produce clustere. O caracteristică care distinge Weave GitOps este capacitatea sa de a furniza aplicații fiabile. Adaugă o politică fiabilă de livrare a utilităților ca cod la GitOps, securitate și conformitate, regresia aplicației și implementarea standardelor de codare de la sursă la producție. Este o combinație de conducte GitOps securizate și testare continuă de securitate prin politici codificate care permit cele mai bune practici de securitate și standarde de securitate ridicate pe tot parcursul ciclului de viață al dezvoltării software. GitOps este, de asemenea, modalitatea de gestionare a configurației pentru sistemele moderne native din cloud, iar Weave GitOps face această abordare nu doar simplă, ci și sigură.

ghid-pas-cu-pas-cum-se-creați-un-cont-gmail

web-crawling-vs-web-scraping-care-este-diferența