Pipeline ca cod explicat în cel mai simplu mod posibil

În dezvoltarea de software, conductele CI/CD sau Integrarea continuă/Livrarea continuă ajută la construirea și implementarea codului dumneavoastră în diferite medii printr-un proces automatizat.

Cu toate acestea, crearea și menținerea acestei conducte în sine ar putea deveni o sarcină dificilă. Introduceți pipeline ca cod – o abordare prin care vă creați întreaga conductă CI/CD în format de cod. În loc să vă bazați pe interfețele utilizatorului web și instrumentele de glisare și plasare, utilizați fișierele de configurare pentru a defini modul în care va fi construit, testat și implementat codul aplicației dvs.

Dar înainte de a intra în detaliile Pipeline as Code și cum îl puteți construi pe al dvs., să înțelegem mai întâi ce este exact un pipeline.

Ce este o conductă în dezvoltarea de software?

O conductă în dezvoltarea de software este o serie de pași automatizați care iau cele mai recente modificări ale codului, rulează procese specifice pe acesta și îl implementează în mediul pe care îl alegeți. Să înțelegem asta mai bine cu un exemplu.

Imaginați-vă că aveți trei microservicii și că ați adăugat noi funcții la unul dintre ele. Acum, doriți să rulați testele unitare la nivel de cod. Odată ce trec, doriți să verificați și problemele de formatare a codului. Apoi, doriți să vă construiți codul. După aceea, doriți să îl implementați în două medii diferite cu mai multe mașini în fiecare mediu. În cele din urmă, ați dori să rulați teste de integrare pentru a vă asigura că modificările sunt sincronizate cu celelalte servicii.

Puteți alege să efectuați manual toți pașii de mai sus. Dar asta îți va ocupa mult timp și ai fi predispus la erori. Deci, există vreo modalitate de a le automatiza? Da! Puteți crea o conductă și puteți defini toți pașii. După aceea, de fiecare dată când faceți modificări codului, puteți declanșa conducta și nu vă faceți griji cu privire la niciun pas manual.

Beneficiile Pipeline ca cod

Dacă utilizați instrumente precum drag-and-drop, atunci vă va fi dificil să urmăriți modificările, să mențineți standardizarea sau să promovați colaborarea. Pipeline as Code este o modalitate mai bună de a vă defini conducta de dezvoltare software.

Ajută la menținerea constantă a lucrurilor. Prin promovarea automatizării, obțineți repetabilitate și utilizați aceeași conductă pentru alte sisteme. Și la fel ca codul aplicației, codul folosit pentru a vă defini conducta promovează colaborarea.

#1. Consecvență

Fiind definit în format textual, se asigură că nimic nu se întâmplă în ordine. Prin aplicarea unui flux de lucru standard pentru toate versiunile și implementările aplicațiilor dvs., obțineți consistență și reduceți riscul problemelor neașteptate.

Și cu consecvență, obțineți și verificări de conformitate și securitate. Asigurarea unei conducte consistente vă permite să vă definiți scanările de securitate și verificările de vulnerabilitate astfel încât nimic să nu vă treacă.

  Cum să adăugați fișiere locale la Spotify

#2. Repetabilitate

Creați-vă conducta și setați automatizarea. Pe lângă consecvență, conducta dvs. automatizată asigură că fiecare cod de aplicație trece prin aceleași etape și verificări.

Codul dvs. va trece prin același proces de construire și implementare de fiecare dată când rulați pipeline. Menține repetabilitate pe toate cursele tale.

#3. Colaborare

Având în vedere că codul este mijlocul prin care vă creați pipeline, promovați colaborarea. Mai multe persoane din echipele tale pot contribui la același cod, la fel ca și tu pentru codul aplicației.

Pipeline as Code vă permite, de asemenea, să mențineți controlul versiunilor și să permiteți revizuirea codului. Acest lucru asigură că cele mai bune practici sunt respectate și că problemele potențiale sunt depistate din timp.

Acum, să vedem cum vă puteți crea propria conductă folosind Pipeline ca cod.

Pipeline ca cod în Jenkins

Când vine vorba de sisteme de integrare continuă și implementare continuă (CI/CD), Jenkins este cel mai important server de automatizare open-source. Cu Jenkins, puteți să integrați fără efort modificările codului, să automatizați testarea și crearea și să implementați software. Și puteți face toate acestea în mod fiabil și eficient.

Fie că ești un pasionat care încearcă să înveți mai multe despre conductele de automatizare sau construiești sisteme complexe de întreprindere, Jenkins îndeplinește toate cerințele unice ale proiectului tău. Abundența sa de pluginuri și comunitatea în continuă creștere vă pot ajuta să profitați la maximum de automatizarea dvs.

În Jenkins, o conductă este un set de diferite plugin-uri definite într-o anumită ordine care creează sistemul dumneavoastră CI/CD. Fie că este vorba de cazuri de utilizare simple sau complexe, vă puteți crea pipeline folosind codul cu Sintaxa limbajului specific domeniului (DSL) pipeline. DSL-ul este construit pe deasupra Apache Groovy.

Fundamentul Pipeline as Code în Jenkins este Jenkinsfile – un fișier text care conține cod care descrie toate etapele și acțiunile diferite. Să învățăm cum să vă creați Pipeline ca cod folosind fișierul Jenkins.

Cum să vă creați Pipeline ca cod?

După ce ați instalat și lansat Jenkins, navigați la interfața de utilizare web din browser. Este posibil să trebuiască să vă conectați. În continuare, veți ajunge pe pagina principală a tabloului de bord. Veți începe de aici și veți crea pipeline.

  • În panoul din stânga, veți găsi un buton Element nou.
  • Faceți clic pe el pentru a naviga la pagina următoare.
  • Odată ce vă aflați pe noua pagină, veți găsi solicitarea de a crea un articol.
  • Dați un nume în câmpul Introduceți un nume de articol. Acest lucru este obligatoriu.
  • Rețineți că va fi creat un director cu același nume. Prin urmare, cel mai bine este să evitați spațiile albe, deoarece pot duce la efecte secundare nedorite.
  • După aceea, selectați opțiunea Pipeline și faceți clic pe butonul OK prezent în partea de jos a ecranului.
  • Este prezentată fereastra Configurare.
  • Faceți clic pe opțiunea Pipeline din panoul din stânga sau derulați în jos la secțiunea Pipeline.
  • Să începem cu o conductă simplă pe care o puteți configura direct din interfața de utilizare.

      Cum să-ți construiești propriul chatbot AI cu API-ul ChatGPT: un tutorial pas cu pas

    Creați pipeline ca cod direct în Jenkins

    Odată ce vă aflați în secțiunea Pipeline, sunteți gata să creați primul dvs. Pipeline ca Cod.

    Din meniul derulant Definiție, selectați opțiunea Script Pipeline. Sub ea, veți găsi o zonă de Script unde vă puteți codifica conducta. Jenkins menține scenariul creat aici.

    Jenkins vă permite să alegeți între două stiluri de codare sau sintaxe – Sintaxa declarativă și Sintaxa scriptată. În timp ce Declarative este ușor de utilizat și ideal pentru conducte simple, Sintaxa Scriptată este pentru utilizatorii cu putere și proiectarea fluxurilor complexe.

    Folosind sintaxa declarativă, creați 3 etape simple – codul de compilare, codul de testare și codul de implementare folosind următorul fragment de cod:

    pipeline {
        agent any
    
        stages {
            stage('Build Code') {
                steps {
                    echo 'This is the step for build...'
                }
            }
            stage('Test Code') {
                steps {
                    echo 'This is the step to test...'
                }
            }
            stage('Deploy Code') {
                steps {
                    echo 'This step deploys the code...'
                }
            }
        }
    }

    De asemenea, puteți utiliza sintaxa scriptată, așa cum se arată mai jos:

    node {
        stage('Build Code') {
            echo 'This is the step for build...'
        }
        stage('Test Code') {
            echo 'This is the step to test...'
        }
        stage('Deploy Code') {
            echo 'This step deploys the code...'
        }
    }

    Faceți clic pe Salvare. Acum, faceți clic pe butonul Build Now prezent în panoul din stânga. Aceasta va declanșa conducta pe care tocmai ați creat-o.

    Odată ce pipeline se termină, îl puteți verifica în Istoricul Build-ului. Dacă aceasta este prima dvs. rulare, faceți clic pe numărul de construcție #1 prezent. Apoi, faceți clic pe Console Output prezent în panoul din stânga. Veți găsi cele 3 declarații de eco pe care le aveți în codul pipeline la fiecare etapă.

    Creați pipeline ca cod folosind un fișier extern

    Devine o provocare să vă mențineți conducta direct în Jenkins atunci când începe să devină complexă. În acest caz, ați dori să creați un fișier extern și să-l utilizați.

    Înainte de a vă crea pipeline Jenkins, aveți nevoie de un depozit extern și de un sistem de control al versiunilor. Să creăm un depozit Git și să-l găzduim de la distanță pe GitHub. Veți crea fișierul dvs. Jenkins și îl veți stoca aici.

  • Du-te la ta GitHub profil. Vă puteți crea un cont gratuit dacă nu aveți unul.
  • Creați un nou depozit. Numiți-i customJenkins.
  • Pe mașina dvs. locală, asigurați-vă că aveți Git instalat.
  • Creați un director în locația dorită.
  • Navigați în director și deschideți terminalul.
  • Inițializați un depozit Git gol folosind comanda git init.
  • Acum, creați un fișier nou, care va fi fișierul dvs. Jenkins. Să-i denumim customJenkinsfile.
  • Scrieți Pipeline-ul ca Cod în interiorul acestui fișier. Ca exemplu, folosește-l pe cel menționat mai jos:
  • pipeline {
        agent any
    
        stages {
            stage('Build Code') {
                steps {
                    echo 'This is the step for build defined in custom file...'
                }
            }
            stage('Test Code') {
                steps {
                    echo 'This is the step to test defined in custom file...'
                }
            }
            stage('Deploy Code') {
                steps {
                    echo 'This step defined in custom file deploys the code...'
                }
            }
        }
    }
  • Adăugați fișierul nou creat la Git folosind comanda git add –all din terminalul dvs.
  • Trimiteți fișierul în Git folosind comanda git commit -m „S-a creat un fișier jenkins personalizat”.
  • Conectați depozitul dvs. local Git la depozitul dvs. la distanță utilizând originea de adăugare la distanță git [email protected]:/customJenkins.git.
  •   Ghid pentru începători pentru proiectarea modelelor de produse
  • Apoi, încărcați fișierul la distanță (GitHub) folosind git push –set-upstream origin master.
  • Acum ați creat un depozit la distanță pe GitHub care conține un fișier Jenkins personalizat. Să configuram Jenkins să folosească acest lucru.

    Configurați Jenkins să folosească Jenkinsfile din GitHub

  • Deschideți tabloul de bord Jenkins.
  • Creați o conductă nouă sau faceți clic pe Configurare în panoul din stânga dintr-o conductă existentă.
  • Derulați în jos la secțiunea Pipeline.
  • Din meniul drop-down Definiție, selectați opțiunea Script Pipeline din SCM.
  • Selectați Git în opțiunea SCM.
  • Furnizați linkul pentru depozitul dvs. GitHub în adresa URL a depozitului de sub Arhive.
  • Asigurați-vă că specificatorul de ramuri este setat ca */master sub Branches to build.
  • Derulați în jos la Calea scriptului. Aici, furnizați numele fișierului Jenkins ca customJenkinsfile. Faceți clic pe Salvare.
  • După aceea, rulați conducta. Jenkins va prelua mai întâi codul dvs. din depozitul de la distanță. Apoi va crea o conductă folosind fișierul Jenkins personalizat și va rula toate etapele.

    Acum v-ați creat cu succes propriul canal de dezvoltare software folosind Pipeline ca cod. În plus, ați activat controlul versiunilor pe scriptul pipeline. Orice modificări pe care le faceți codului pipeline pot fi acum urmărite cu fiecare comitere Git. În continuare, este timpul să analizăm cele mai bune practici.

    Cele mai bune practici pentru scrierea unui canal eficient ca cod

    Să ne uităm la cele mai bune practici pe care ar trebui să le urmați atunci când scrieți Pipeline-ul ca cod.

    • Păstrați conducta curată și evitați să scrieți prea multe condiții complexe.
    • Dacă efectuați prea multe comenzi în interiorul conductei, împărțiți-le în diferiți pași.
    • Utilizați fișiere externe cu controlul versiunilor pentru Pipeline ca scripturi de cod.
    • Utilizați caracteristicile limbajului de codare, cum ar fi Groovy, pentru a integra diferiți pași.
    • Evitați apelurile către Jenkins.getInstance sau accesorii săi pentru a atenua problemele de securitate și performanță.
    • Nu suprascrieți comenzile pipeline încorporate precum sh și timeout.
    • Creați instrumente externe sau scripturi pentru sarcini complexe care necesită un proces intensiv și conectați-le la conducta dvs.
    • Profitați de varietatea largă de pluginuri existente disponibile pentru Jenkins pentru a rezolva cazul dvs. de utilizare.
    • Asigurați-vă că ați încorporat gestionarea excepțiilor și erorilor, deoarece lucrurile pot merge prost.
    • Nu vă faceți pipeline ca cod strâns cuplat cu multă logică de afaceri în interiorul acestuia.
    • Folosiți argumente parametrizate ori de câte ori este posibil pentru a vă face conducta reutilizabilă.

    Pipeline as Code: O abordare simplă pentru procese complexe

    Pe scurt, Pipeline as Code simplifică automatizarea conductei CI/CD, reprezentând întregul proces ca cod. În timp ce conductele CI/CD automatizează construirea, testarea și implementarea modificărilor codului dvs., valorificarea Pipeline as Code duce un pas mai departe. Vă permite să vă definiți fluxul de lucru în text, mai degrabă decât să vă bazați pe interfețe grafice.

    Cu Pipeline as Code, vă asigurați că fiecare pas din fluxul dvs. de lucru are loc în ordinea corectă. Reduceți riscul de a întâlni probleme nedorite. În plus, obțineți mai multe beneficii – inclusiv consistență, repetabilitate și promovarea colaborării.

    Folosind acest ghid, acum știți cum să vă creați propriile conducte folosind Jenkins, un instrument CI/CD utilizat pe scară largă. Jenkins oferă o platformă puternică și flexibilă pentru implementarea Pipeline as Code prin Jenkinsfile. Urmați cele mai bune practici și creați fluxuri de lucru care abordează toate cazurile dvs. de utilizare în pipeline.

    Dacă doriți să aflați mai multe despre Jenkins, puteți verifica cum să vă creați propria conductă Jenkins.