Rørledning som kode forklart på enklest mulig måte

I programvareutvikling hjelper CI/CD- eller kontinuerlig integrasjon/kontinuerlig levering-pipelines med å bygge og distribuere koden din til forskjellige miljøer gjennom en automatisert prosess.

Å lage og vedlikeholde denne rørledningen i seg selv kan imidlertid bli en utfordrende oppgave. Enter Pipeline as Code – en tilnærming der du oppretter hele CI/CD-pipeline i kodeformat. I stedet for å stole på nettbrukergrensesnitt og dra-og-slipp-verktøy, bruker du konfigurasjonsfiler til å definere hvordan applikasjonskoden skal bygges, testes og distribueres.

Men før vi går inn på detaljene i Pipeline som kode og hvordan du kan bygge din, la oss først forstå hva en pipeline er.

Hva er en pipeline i programvareutvikling?

En pipeline i programvareutvikling er en serie automatiserte trinn som tar de siste kodeendringene dine, kjører spesifikke prosesser på den og distribuerer den i ditt foretrukne miljø. La oss forstå dette bedre med et eksempel.

Tenk deg at du har tre mikrotjenester, og du har lagt til nye funksjoner i en av dem. Nå vil du kjøre enhetstestene på kodenivå. Når de passerer, vil du også se etter problemer med kodeformatering. Deretter vil du bygge koden din. Etter det vil du distribuere den til to forskjellige miljøer med flere maskiner i hvert miljø. Til slutt vil du kjøre integrasjonstester for å sikre at endringene dine er synkronisert med de andre tjenestene.

Du kan velge å gjøre alle trinnene ovenfor manuelt. Men det vil ta mye av tiden din, og du vil være utsatt for feil. Så, er det en måte å automatisere dem på? Ja! Du kan opprette en pipeline og definere alle trinnene. Deretter, hver gang du gjør endringer i koden din, kan du utløse rørledningen og ikke bekymre deg for noen manuelle trinn.

Fordeler med Pipeline som kode

Hvis du bruker verktøy som dra-og-slipp, blir det vanskelig for deg å spore endringer, opprettholde standardisering eller fremme samarbeid. Pipeline som kode er en bedre måte å definere din programvareutviklingspipeline på.

Det hjelper å holde ting konsekvente. Ved å fremme automatisering får du repeterbarhet og bruker samme pipeline for andre systemer. Og akkurat som applikasjonskode, fremmer koden som brukes til å definere rørledningen din samarbeid.

#1. Konsistens

Å være definert i tekstformat sikrer at ingenting skjer i uorden. Ved å håndheve en standard arbeidsflyt for alle applikasjonsbyggene og distribusjonene dine, får du konsistens og reduserer risikoen for uventede problemer.

Og med konsistens får du også samsvarskontroller og sikkerhet. Ved å sikre en konsistent pipeline kan du definere sikkerhetsskanning og sårbarhetssjekk slik at ingenting kommer forbi deg.

  Hvordan blokkere OpenAIs crawlere fra å skrape nettstedet ditt

#2. Repeterbarhet

Lag din pipeline og sett automatisering. I tillegg til konsistens, sikrer den automatiserte pipeline at hver applikasjonskode går gjennom de samme stadiene og sjekkene.

Koden din vil flyte gjennom den samme bygge- og distribusjonsprosessen hver gang du kjører pipeline. Du opprettholder repeterbarhet på alle løpene dine.

#3. Samarbeid

Med kode som mediet du oppretter pipelinen din med, fremmer du samarbeid. Flere personer på tvers av teamene dine kan bidra til den samme koden, akkurat som du gjør for søknadskode.

Pipeline as Code lar deg også opprettholde versjonskontroll og tillate kodegjennomganger. Dette sikrer at beste praksis blir fulgt, og potensielle problemer fanges opp tidlig.

La oss nå dykke ned i hvordan du kan lage din egen pipeline ved å bruke Pipeline som kode.

Pipeline som kode i Jenkins

Når det gjelder kontinuerlig integrasjon og kontinuerlig distribusjon (CI/CD), Jenkins er den ledende automatiseringsserveren med åpen kildekode. Med Jenkins kan du enkelt integrere kodeendringene dine, automatisere testing og bygging og distribuere programvare. Og du kan gjøre alt dette pålitelig og effektivt.

Enten du er en hobbyist som prøver å lære mer om automasjonsrørledninger eller du bygger komplekse bedriftssystemer, oppfyller Jenkins alle prosjektets unike krav. Dens overflod av plugins og stadig voksende fellesskap kan hjelpe deg med å få mest mulig ut av automatiseringen din.

I Jenkins er en pipeline et sett med forskjellige plugins definert i en bestemt rekkefølge som lager CI/CD-systemet ditt. Enten det er enkle eller komplekse brukstilfeller, kan du lage din pipeline ved å bruke kode med Syntaks for domenespesifikk språk (DSL) for pipeline. DSL er bygget på toppen av Apache Groovy.

Grunnlaget for Pipeline as Code i Jenkins er Jenkinsfile – en tekstfil som inneholder kode som beskriver alle de forskjellige stadiene og handlingene. La oss lære hvordan du lager din pipeline som kode ved å bruke Jenkinsfilen.

Hvordan lage din pipeline som kode?

Etter at du har installert og lansert Jenkins, naviger til nettgrensesnittet i nettleseren din. Du må kanskje logge på. Deretter havner du på hovedsiden for Dashboard. Du kommer til å starte herfra og lage din pipeline.

  • På venstre panel finner du knappen Nytt element.
  • Klikk på den for å navigere til neste side.
  • Når du er på den nye siden, vil du finne en melding om å opprette et element.
  • Gi et navn i feltet Angi et elementnavn. Dette er obligatorisk.
  • Husk at det opprettes en katalog med samme navn. Derfor er det best å unngå mellomrom, da det kan føre til uønskede bivirkninger.
  • Deretter velger du alternativet Pipeline og klikker på OK-knappen nederst på skjermen.
  • Konfigurasjonsvinduet vises.
  • Klikk på Pipeline-alternativet i venstre panel eller bla ned til Pipeline-delen.
  • La oss starte med en enkel pipeline som du kan konfigurere direkte fra brukergrensesnittet.

    Lag rørledning som kode direkte i Jenkins

    Når du er i Pipeline-delen, er du klar til å lage din første Pipeline som kode.

      Hvordan implementere AWS EFS for å dele filsystem mellom EC2?

    Fra rullegardinmenyen Definisjon velger du alternativet Pipeline script. Under den finner du et skriptområde der du kan kode pipelinen din. Jenkins vedlikeholder manuset som er laget her.

    Jenkins lar deg velge mellom to kodestiler eller syntakser – Deklarativ syntaks og skriptsyntaks. Mens Declarative er enkel å bruke og ideell for enkle rørledninger, er Scripted Syntax for avanserte brukere og utforming av komplekse flyter.

    Bruk deklarativ syntaks til å lage 3 enkle trinn – Bygg kode, testkode og distribuer kode ved å bruke følgende kodebit:

    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å bruke den skriptede syntaksen 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...'
        }
    }

    Klikk på Lagre. Klikk nå på Bygg nå-knappen i venstre panel. Dette vil utløse rørledningen du nettopp har opprettet.

    Når rørledningen er ferdig, kan du sjekke den i byggehistorikken. Hvis dette er din første kjøring, klikker du på byggenummer 1 til stede. Klikk deretter på Konsollutgang til stede i venstre panel. Du finner de 3 ekko-setningene du har i pipeline-koden på hvert trinn.

    Lag rørledning som kode ved hjelp av en ekstern fil

    Det blir utfordrende å vedlikeholde rørledningen direkte i Jenkins når den begynner å bli kompleks. I dette tilfellet vil du opprette en ekstern fil og bruke den.

    Før du oppretter din Jenkins-pipeline, trenger du et eksternt depot og et versjonskontrollsystem. La oss lage et Git-depot og være vert for det eksternt på GitHub. Du lager Jenkinsfilen din og lagrer den her.

  • Gå til din GitHub profil. Du kan opprette en gratis konto hvis du ikke har en.
  • Opprett et nytt depot. Gi det navnet customJenkins.
  • På din lokale maskin, sørg for at du har Git installert.
  • Opprett en katalog på stedet du ønsker.
  • Naviger inn i katalogen og åpne terminalen.
  • Initialiser et tomt Git-lager ved å bruke git init-kommandoen.
  • Lag nå en ny fil, som vil være din Jenkinsfile. La oss gi den navnet customJenkinsfile.
  • Skriv din pipeline som kode i denne filen. Som et eksempel, bruk den som er nevnt nedenfor:
  • 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...'
                }
            }
        }
    }
  • Legg til den nyopprettede filen til Git ved å bruke kommandoen git add –all i terminalen din.
  • Send filen til Git ved å bruke kommandoen git commit -m “Opprettet en tilpasset jenkinsfil”.
  • Koble ditt lokale Git-lager til det eksterne depotet ditt ved å bruke git remote add origin [email protected]:/customJenkins.git.
  •   Hvilke kamerainnstillinger bør jeg bruke for landskapsbilder?
  • Last deretter opp filen til ekstern (GitHub) ved hjelp av git push –setupstream origin master.
  • Du har nå opprettet et eksternt depot på GitHub som inneholder en tilpasset Jenkinsfil. La oss konfigurere Jenkins til å bruke dette.

    Konfigurer Jenkins til å bruke Jenkinsfile fra GitHub

  • Åpne Jenkins-dashbordet.
  • Opprett en ny pipeline, eller klikk på Konfigurer i venstre panel fra en eksisterende pipeline.
  • Rull ned til Pipeline-delen.
  • Velg alternativet Pipeline script fra SCM fra rullegardinmenyen Definisjon.
  • Velg Git i SCM-alternativet.
  • Oppgi GitHub-repositorylinken i Repository URL under Repositories.
  • Sørg for at grenspesifikasjonen er satt til */master under Branches to build.
  • Rull ned til Skriptbane. Her oppgir du navnet på Jenkins-filen som customJenkinsfile. Klikk på Lagre.
  • Etter det, kjør rørledningen. Jenkins vil først hente koden din fra fjernlageret. Den vil deretter opprette en pipeline ved å bruke den tilpassede Jenkinsfilen og kjøre alle stadiene.

    Du har nå opprettet din egen programvareutviklingspipeline med Pipeline som kode. I tillegg har du aktivert versjonskontroll på pipeline-skriptet. Eventuelle endringer du gjør i pipeline-koden din kan nå spores med hver Git-commit. Deretter er det på tide å se på de beste praksisene.

    Beste praksis for å skrive effektiv pipeline som kode

    La oss se på de beste fremgangsmåtene du bør følge når du skriver Pipeline som kode.

    • Hold rørledningen ren og unngå å skrive for mange komplekse forhold.
    • Hvis du gjør for mange kommandoer inne i rørledningen, kan du dele dem inn i forskjellige trinn.
    • Bruk eksterne filer med versjonskontroll for din Pipeline som kodeskript.
    • Bruk funksjonene til kodespråket, som Groovy, for å integrere forskjellige trinn.
    • Unngå anrop til Jenkins.getInstance eller dets tilbehør for å redusere sikkerhets- og ytelsesproblemer.
    • Ikke overskriv innebygde pipeline-kommandoer som sh og timeout.
    • Lag eksterne verktøy eller skript for komplekse CPU-intensive oppgaver og koble dem til pipeline.
    • Dra nytte av det store utvalget av eksisterende plugins tilgjengelig for Jenkins for å takle din brukssituasjon.
    • Sørg for at du har innlemmet unntak og feilhåndtering, siden ting kan gå galt.
    • Ikke lag din Pipeline som kode tett sammen med mye forretningslogikk inne i den.
    • Bruk parameteriserte argumenter der det er mulig for å gjøre rørledningen gjenbrukbar.

    Pipeline som kode: En enkel tilnærming for komplekse prosesser

    Oppsummert forenkler Pipeline as Code automatiseringen av din CI/CD-pipeline ved å representere hele prosessen som kode. Mens CI/CD-pipelines automatiserer bygging, testing og distribusjon av kodeendringene dine, tar bruk av Pipeline as Code det et skritt videre. Den lar deg definere arbeidsflyten din i tekst i stedet for å stole på grafiske grensesnitt.

    Med Pipeline as Code sikrer du at hvert trinn i arbeidsflyten din skjer i riktig rekkefølge. Du reduserer risikoen for å støte på uønskede problemer. I tillegg får du flere fordeler – inkludert konsistens, repeterbarhet og fremme samarbeid.

    Ved å bruke denne veiledningen vet du nå hvordan du lager dine egne pipelines ved å bruke Jenkins, et mye brukt CI/CD-verktøy. Jenkins tilbyr en kraftig og fleksibel plattform for å implementere Pipeline som kode gjennom sin Jenkinsfile. Følg de beste fremgangsmåtene og lag arbeidsflyter som takler alle dine pipeline-brukssaker.

    Hvis du ønsker å lære mer om Jenkins, kan du sjekke ut hvordan du lager din egen Jenkins-pipeline.