Pipeline som kode forklaret på den enklest mulige måde

Inden for softwareudvikling hjælper CI/CD eller Continuous Integration/Continuous Delivery pipelines med at bygge og implementere din kode til forskellige miljøer gennem en automatiseret proces.

Men at skabe og vedligeholde denne pipeline i sig selv kan blive en udfordrende opgave. Indtast Pipeline som kode – en tilgang, hvor du opretter hele din CI/CD-pipeline i kodeformat. I stedet for at stole på webbrugergrænseflader og træk-og-slip-værktøjer, bruger du konfigurationsfiler til at definere, hvordan din applikationskode vil blive bygget, testet og implementeret.

Men før vi går ind i detaljerne i Pipeline som kode, og hvordan du kan bygge din, lad os først forstå, hvad en pipeline præcis er.

Hvad er en pipeline i softwareudvikling?

En pipeline i softwareudvikling er en række automatiserede trin, der tager dine seneste kodeændringer, kører specifikke processer på den og implementerer den i dit foretrukne miljø. Lad os forstå dette bedre med et eksempel.

Forestil dig, at du har tre mikrotjenester, og du har tilføjet nye funktioner til en af ​​dem. Nu vil du køre enhedstestene på kodeniveau. Når de er bestået, vil du også tjekke for kodeformateringsproblemer. Dernæst vil du bygge din kode. Derefter vil du installere det i to forskellige miljøer med flere maskiner i hvert miljø. Endelig vil du gerne køre integrationstests for at sikre, at dine ændringer er synkroniseret med de andre tjenester.

Du kan vælge at udføre alle ovenstående trin manuelt. Men det vil tage meget af din tid, og du vil være tilbøjelig til at fejle. Så er der en måde at automatisere dem på? Ja! Du kan oprette en pipeline og definere alle trinene. Derefter, hver gang du foretager ændringer i din kode, kan du udløse pipelinen og ikke bekymre dig om nogen manuelle trin.

Fordele ved Pipeline som kode

Hvis du bruger værktøjer som træk-og-slip, bliver det svært for dig at spore ændringer, opretholde standardisering eller fremme samarbejde. Pipeline som kode er en bedre måde at definere din softwareudviklingspipeline på.

Det hjælper med at holde tingene konsekvente. Ved at fremme automatisering får du repeterbarhed og bruger den samme pipeline til andre systemer. Og ligesom applikationskode fremmer koden, der bruges til at definere din pipeline, samarbejde.

#1. Konsistens

At være defineret i tekstformat sikrer, at intet sker i uorden. Ved at håndhæve en standard workflow for alle dine applikationsbygninger og implementeringer får du konsekvens og reducerer risikoen for uventede problemer.

Og med konsistens opnår du også compliance-tjek og sikkerhed. Ved at sikre en konsistent pipeline kan du definere dine sikkerhedsscanninger og sårbarhedstjek, så intet kommer forbi dig.

  Sådan indsamler du Voice of Customer (VOC) for at forbedre din virksomhed

#2. Gentagelighed

Opret din pipeline og indstil automatisering. Ud over konsistens sikrer din automatiserede pipeline, at hver applikationskode gennemgår de samme stadier og kontroller.

Din kode vil flyde gennem den samme bygge- og implementeringsproces, hver gang du kører din pipeline. Du bevarer repeterbarheden på tværs af alle dine løbeture.

#3. Samarbejde

Med kode som det medie, du opretter din pipeline med, fremmer du samarbejde. Flere personer på tværs af dine teams kan bidrage til den samme kode, ligesom du gør for ansøgningskode.

Pipeline as Code giver dig også mulighed for at opretholde versionskontrol og tillade kodegennemgange. Dette sikrer, at den bedste praksis følges, og at potentielle problemer fanges tidligt.

Lad os nu dykke ned i, hvordan du kan oprette din egen pipeline ved hjælp af Pipeline som kode.

Pipeline som kode i Jenkins

Når det kommer til kontinuerlig integration og kontinuerlig implementering (CI/CD), Jenkins er den førende open source automatiseringsserver. Med Jenkins kan du ubesværet integrere dine kodeændringer, automatisere test og opbygning og implementere software. Og du kan gøre alt dette pålideligt og effektivt.

Uanset om du er en hobbyist, der prøver at lære mere om automatiseringspipelines, eller du bygger komplekse virksomhedssystemer, opfylder Jenkins alle dit projekts unikke krav. Dens overflod af plugins og stadigt voksende fællesskab kan hjælpe dig med at få mest muligt ud af din automatisering.

I Jenkins er en Pipeline et sæt af forskellige plugins defineret i en bestemt rækkefølge, som skaber dit CI/CD-system. Uanset om det er simple eller komplekse use cases, kan du oprette din pipeline ved hjælp af kode med Pipeline domænespecifikt sprog (DSL) syntaks. DSL er bygget ovenpå Apache Groovy.

Grundlaget for Pipeline as Code i Jenkins er Jenkinsfile – en tekstfil, der indeholder kode, der beskriver alle de forskellige stadier og handlinger. Lad os lære, hvordan du opretter din Pipeline som kode ved hjælp af Jenkinsfilen.

Hvordan opretter du din Pipeline som kode?

Når du har installeret og lanceret Jenkins, skal du navigere til web-brugergrænsefladen på din browser. Du skal muligvis logge ind. Dernæst ender du på hovedsiden Dashboard. Du vil starte herfra og oprette din pipeline.

  • På venstre panel finder du knappen Nyt element.
  • Klik på den for at navigere til næste side.
  • Når du er på den nye side, vil du finde prompten om at oprette et element.
  • Giv et navn i feltet Indtast et varenavn. Dette er obligatorisk.
  • Husk, at der oprettes en mappe med samme navn. Derfor er det bedst at undgå mellemrum, da det kan føre til uønskede bivirkninger.
  • Vælg derefter indstillingen Pipeline og klik på OK-knappen nederst på skærmen.
  • Konfigurationsvinduet vises.
  • Klik på indstillingen Pipeline i venstre panel, eller rul ned til afsnittet Pipeline.
  • Lad os starte med en simpel pipeline, som du kan konfigurere direkte fra brugergrænsefladen.

    Opret pipeline som kode direkte i Jenkins

    Når du er i sektionen Pipeline, er du klar til at oprette din første Pipeline som kode.

      Hvorfor er VR så dyrt? 4 grunde forklaret

    Fra rullemenuen Definition skal du vælge indstillingen Pipeline script. Under det finder du et scriptområde, hvor du kan kode din pipeline. Jenkins vedligeholder det manuskript, der er oprettet her.

    Jenkins giver dig mulighed for at vælge mellem to kodningsstile eller syntakser – Declarative Syntax og Scripted Syntax. Mens Declarative er let at bruge og ideel til simple pipelines, er Scripted Syntax til superbrugere og design af komplekse flows.

    Brug deklarativ syntaks til at oprette 3 enkle trin – Byg kode, testkode og implementer kode ved at bruge følgende kodestykke:

    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...'
                }
            }
        }
    }

    Du kan også bruge den scriptede syntaks som vist nedenfor:

    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...'
        }
    }

    Klik på Gem. Klik nu på knappen Byg nu i venstre panel. Dette vil udløse den pipeline, du lige har oprettet.

    Når din pipeline er færdig, kan du tjekke den i Build History. Hvis dette er din første kørsel, skal du klikke på build nummer 1 til stede. Klik derefter på Konsoloutput til stede i venstre panel. Du finder de 3 ekko-udsagn, som du har i din pipeline-kode på hvert trin.

    Opret pipeline som kode ved hjælp af en ekstern fil

    Det bliver udfordrende at vedligeholde din pipeline direkte i Jenkins, når det begynder at blive komplekst. I dette tilfælde vil du gerne oprette en ekstern fil og bruge den.

    Før du opretter din Jenkins-pipeline, har du brug for et eksternt lager og et versionskontrolsystem. Lad os oprette et Git-lager og hoste det eksternt på GitHub. Du opretter din Jenkinsfil og gemmer den her.

  • Gå til din GitHub profil. Du kan oprette en gratis konto, hvis du ikke har en.
  • Opret et nyt lager. Navngiv det customJenkins.
  • På din lokale maskine skal du sikre dig, at du har Git installeret.
  • Opret en mappe på din foretrukne placering.
  • Naviger inde i biblioteket og åbn din terminal.
  • Initialiser et tomt Git-lager ved hjælp af git init-kommandoen.
  • Opret nu en ny fil, som vil være din Jenkinsfile. Lad os kalde det customJenkinsfile.
  • Skriv din Pipeline som kode i denne fil. Brug som eksempel den nedenfor nævnte:
  • 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...'
                }
            }
        }
    }
  • Tilføj den nyoprettede fil til Git ved hjælp af kommandoen git add –all i din terminal.
  • Overfør filen til Git ved at bruge kommandoen git commit -m “Oprettet en brugerdefineret jenkinsfile”.
  • Link dit lokale Git-lager til dit fjernlager ved hjælp af git remote add origin [email protected]:/customJenkins.git.
  •   Gratis download: Microsofts Batch Rename PowerToy
  • Upload derefter filen til remote (GitHub) ved hjælp af git push –set-upstream origin master.
  • Du har nu oprettet et fjernlager på GitHub, der indeholder en tilpasset Jenkinsfil. Lad os konfigurere Jenkins til at bruge dette.

    Konfigurer Jenkins til at bruge Jenkinsfile fra GitHub

  • Åbn dit Jenkins-dashboard.
  • Opret en ny pipeline, eller klik på Konfigurer i venstre panel fra en eksisterende pipeline.
  • Rul ned til afsnittet Pipeline.
  • Vælg indstillingen Pipeline script fra SCM fra rullemenuen Definition.
  • Vælg Git i SCM-indstillingen.
  • Angiv dit GitHub-lagerlink i depot-URL’en under Repositories.
  • Sørg for, at Branch Specifier er sat som */master under Branches to build.
  • Rul ned til Script Path. Angiv her navnet på Jenkins-filen som customJenkinsfile. Klik på Gem.
  • Kør derefter din pipeline. Jenkins vil først hente din kode fra fjernlageret. Det vil derefter oprette en pipeline ved hjælp af den brugerdefinerede Jenkinsfile og køre alle stadier.

    Du har nu oprettet din egen softwareudviklingspipeline med Pipeline som kode. Derudover har du aktiveret versionskontrol på dit pipeline-script. Alle ændringer, du foretager i din pipelinekode, kan nu spores med hver Git-commit. Dernæst er det tid til at se på bedste praksis.

    Bedste praksis for at skrive effektiv pipeline som kode

    Lad os se på de bedste fremgangsmåder, du bør følge, når du skriver din Pipeline som kode.

    • Hold din pipeline ren og undgå at skrive for mange komplekse forhold.
    • Hvis du laver for mange kommandoer inde i pipelinen, så opdel dem i forskellige trin.
    • Brug eksterne filer med versionsstyring til din Pipeline som kodescripts.
    • Udnyt funktionerne i kodningssproget, som Groovy, til at integrere forskellige trin.
    • Undgå opkald til Jenkins.getInstance eller dets accessorer for at afbøde sikkerheds- og ydeevneproblemer.
    • Overskriv ikke indbyggede pipeline-kommandoer som sh og timeout.
    • Opret eksterne værktøjer eller scripts til komplekse CPU-intensive opgaver, og sæt dem ind i din pipeline.
    • Udnyt det store udvalg af eksisterende plugins, der er tilgængelige for Jenkins til at tackle din brugssag.
    • Sørg for, at du har indarbejdet undtagelses- og fejlhåndtering, da tingene kan gå galt.
    • Lav ikke din Pipeline som kode tæt forbundet med en masse forretningslogik indeni.
    • Brug parameteriserede argumenter, hvor det er muligt for at gøre din pipeline genbrugelig.

    Pipeline som kode: En simpel tilgang til komplekse processer

    Sammenfattende forenkler Pipeline as Code automatiseringen af ​​din CI/CD-pipeline ved at repræsentere hele processen som kode. Mens CI/CD-pipelines automatiserer opbygning, test og implementering af dine kodeændringer, tager det et skridt videre ved at udnytte Pipeline as Code. Det giver dig mulighed for at definere din arbejdsgang i tekst i stedet for at stole på grafiske grænseflader.

    Med Pipeline som kode sikrer du, at hvert trin i din arbejdsgang sker i den rigtige rækkefølge. Du mindsker risikoen for at løbe ind i uønskede problemer. Derudover får du adskillige fordele – herunder konsekvens, repeterbarhed og fremme af samarbejde.

    Ved at bruge denne guide ved du nu, hvordan du opretter dine egne pipelines ved hjælp af Jenkins, et meget brugt CI/CD-værktøj. Jenkins tilbyder en kraftfuld og fleksibel platform til implementering af Pipeline som kode gennem sin Jenkinsfile. Følg den bedste praksis, og skab arbejdsgange, der tackler alle dine pipeline-brugssager.

    Hvis du ønsker at lære mere om Jenkins, kan du tjekke ud, hvordan du opretter din egen Jenkins-pipeline.