Pipeline som kod förklaras på enklast möjliga sätt

Inom mjukvaruutveckling hjälper CI/CD eller Continuous Integration/Continuous Delivery pipelines att bygga och distribuera din kod till olika miljöer genom en automatiserad process.

Men att skapa och underhålla denna pipeline i sig kan bli en utmanande uppgift. Ange Pipeline som kod – ett tillvägagångssätt där du skapar hela din CI/CD-pipeline i kodformat. Istället för att förlita dig på webbanvändargränssnitt och dra-och-släpp-verktyg använder du konfigurationsfiler för att definiera hur din programkod ska byggas, testas och distribueras.

Men innan vi går in på detaljerna om Pipeline som kod och hur du kan bygga din, låt oss först förstå vad en pipeline exakt är.

Vad är en pipeline i mjukvaruutveckling?

En pipeline inom mjukvaruutveckling är en serie automatiserade steg som tar dina senaste kodändringar, kör specifika processer på den och distribuerar den i din valda miljö. Låt oss förstå detta bättre med ett exempel.

Föreställ dig att du har tre mikrotjänster och att du har lagt till nya funktioner till en av dem. Nu vill du köra enhetstesten på kodnivå. När de har passerat vill du också kontrollera om det finns problem med kodformatering. Därefter vill du bygga din kod. Efter det vill du distribuera den till två olika miljöer med flera maskiner i varje miljö. Slutligen vill du köra integrationstester för att säkerställa att dina ändringar är synkroniserade med de andra tjänsterna.

Du kan välja att göra alla ovanstående steg manuellt. Men det kommer att ta upp mycket av din tid, och du skulle vara benägen att göra fel. Så, finns det något sätt att automatisera dem? Ja! Du kan skapa en pipeline och definiera alla steg. Därefter, varje gång du gör ändringar i din kod, kan du trigga pipelinen och inte oroa dig för några manuella steg.

Fördelar med Pipeline som kod

Om du använder verktyg som dra-och-släpp, blir det svårt för dig att spåra ändringar, upprätthålla standardisering eller främja samarbete. Pipeline som kod är ett bättre sätt att definiera din mjukvaruutvecklingspipeline.

Det hjälper till att hålla saker konsekventa. Genom att främja automatisering får du repeterbarhet och använder samma pipeline för andra system. Och precis som applikationskoden främjar koden som används för att definiera din pipeline samarbete.

#1. Konsistens

Att vara definierad i textformat säkerställer att inget händer i ordning. Genom att tillämpa ett standardarbetsflöde för alla dina applikationsbyggen och implementeringar får du konsekvens och minskar risken för oväntade problem.

Och med konsekvens får du också efterlevnadskontroller och säkerhet. Genom att säkerställa en konsekvent pipeline kan du definiera dina säkerhetsskanningar och sårbarhetskontroller så att ingenting kommer förbi dig.

#2. Repeterbarhet

Skapa din pipeline och ställ in automatisering. Förutom konsekvens säkerställer din automatiserade pipeline att varje applikationskod går igenom samma stadier och kontroller.

Din kod kommer att flöda genom samma bygg- och distributionsprocess varje gång du kör din pipeline. Du bibehåller repeterbarhet över alla dina löpningar.

#3. Samarbete

Med kod som det medium som du använder för att skapa din pipeline, främjar du samarbete. Flera personer i dina team kan bidra till samma kod, precis som du gör för applikationskod.

Pipeline as Code låter dig också behålla versionskontroll och tillåta kodgranskning. Detta säkerställer att de bästa metoderna följs och att potentiella problem upptäcks tidigt.

Låt oss nu dyka in i hur du kan skapa din egen pipeline med Pipeline som kod.

Pipeline som kod i Jenkins

När det gäller system för kontinuerlig integration och kontinuerlig driftsättning (CI/CD), Jenkins är den ledande automationsservern med öppen källkod. Med Jenkins kan du enkelt integrera dina kodändringar, automatisera tester och bygga och distribuera programvara. Och du kan göra allt detta på ett tillförlitligt och effektivt sätt.

Oavsett om du är en hobbyist som försöker lära dig mer om automationspipelines eller om du bygger komplexa företagssystem, uppfyller Jenkins alla ditt projekts unika krav. Dess överflöd av plugins och ständigt växande community kan hjälpa dig att få ut det mesta av din automatisering.

I Jenkins är en pipeline en uppsättning olika plugins definierade i en viss ordning som skapar ditt CI/CD-system. Oavsett om det är enkla eller komplexa användningsfall, kan du skapa din pipeline med hjälp av kod med Syntax för domänspecifikt språk (DSL) för pipeline. DSL är byggt ovanpå Apache Groovy.

Grunden för Pipeline as Code i Jenkins är Jenkinsfile – en textfil som innehåller kod som beskriver alla olika steg och åtgärder. Låt oss lära oss hur du skapar din Pipeline som kod med Jenkinsfilen.

Hur skapar du din Pipeline som kod?

När du har installerat och startat Jenkins, navigera till webbgränssnittet i din webbläsare. Du kanske måste logga in. Därefter hamnar du på huvudsidan för Dashboard. Du kommer att börja härifrån och skapa din pipeline.

  • På den vänstra panelen hittar du knappen Nytt objekt.
  • Klicka på den för att navigera till nästa sida.
  • När du är på den nya sidan kommer du att se uppmaningen att skapa ett objekt.
  • Ge ett namn i fältet Ange ett objektnamn. Detta är obligatoriskt.
  • Tänk på att en katalog kommer att skapas med samma namn. Därför är det bäst att undvika blanksteg eftersom det kan leda till oönskade biverkningar.
  • Därefter väljer du alternativet Pipeline och klickar på OK-knappen längst ner på skärmen.
  • Konfigurationsfönstret visas.
  • Klicka på alternativet Pipeline i den vänstra panelen eller scrolla ner till avsnittet Pipeline.
  • Låt oss börja med en enkel pipeline som du kan konfigurera direkt från användargränssnittet.

    Skapa pipeline som kod direkt i Jenkins

    När du är i avsnittet Pipeline är du redo att skapa din första Pipeline som kod.

    Från rullgardinsmenyn Definition väljer du alternativet Pipeline script. Under den hittar du ett skriptområde där du kan koda din pipeline. Jenkins underhåller manuset som skapats här.

    Jenkins låter dig välja mellan två kodningsstilar eller syntaxer – Deklarativ syntax och skriptsyntax. Även om Declarative är lätt att använda och idealiskt för enkla pipelines, är Scripted Syntax för avancerade användare och design av komplexa flöden.

    Använd deklarativ syntax och skapa tre enkla steg – Bygg kod, testkod och distribuera kod genom att använda följande kodavsnitt:

    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 också använda skriptsyntaxen som visas nedan:

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

    Klicka på Spara. Klicka nu på knappen Bygg nu i den vänstra panelen. Detta kommer att utlösa pipeline du just har skapat.

    När din pipeline är klar kan du kontrollera den i byggnadshistoriken. Om detta är din första körning, klicka på byggnummer #1 som finns. Klicka sedan på Konsolutdata som finns i den vänstra panelen. Du hittar de 3 ekosatserna som du har i din pipelinekod i varje steg.

    Skapa pipeline som kod med hjälp av en extern fil

    Det blir utmanande att underhålla din pipeline direkt i Jenkins när det börjar bli komplext. I det här fallet vill du skapa en extern fil och använda den.

    Innan du skapar din Jenkins-pipeline behöver du ett externt arkiv och ett versionskontrollsystem. Låt oss skapa ett Git-förråd och vara värd för det på distans på GitHub. Du skapar din Jenkinsfil och lagrar den här.

  • Gå till din GitHub profil. Du kan skapa ett gratis konto om du inte har ett.
  • Skapa ett nytt arkiv. Döp det customJenkins.
  • Se till att du har Git installerat på din lokala dator.
  • Skapa en katalog på den plats du väljer.
  • Navigera in i katalogen och öppna din terminal.
  • Initiera ett tomt Git-förråd med hjälp av git init-kommandot.
  • Skapa nu en ny fil, som blir din Jenkinsfil. Låt oss döpa den till customJenkinsfile.
  • Skriv din pipeline som kod i den här filen. Som ett exempel, använd det som nämns nedan:
  • 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...'
                }
            }
        }
    }
  • Lägg till den nyskapade filen till Git med kommandot git add –all i din terminal.
  • Överför filen till Git med kommandot git commit -m “Skapade en anpassad jenkinsfil”.
  • Länka ditt lokala Git-förråd till ditt fjärrlager med git remote add origin [email protected]:/customJenkins.git.
  • Ladda sedan upp filen till fjärrkontrollen (GitHub) med git push –set-upstream origin master.
  • Du har nu skapat ett fjärrlager på GitHub som innehåller en anpassad Jenkinsfil. Låt oss konfigurera Jenkins att använda detta.

    Konfigurera Jenkins att använda Jenkinsfile från GitHub

  • Öppna din Jenkins instrumentpanel.
  • Skapa en ny pipeline eller klicka på Konfigurera i den vänstra panelen från en befintlig pipeline.
  • Scrolla ner till avsnittet Pipeline.
  • I rullgardinsmenyn Definition väljer du alternativet Pipeline-skript från SCM.
  • Välj Git i alternativet SCM.
  • Ange din GitHub-repository-länk i Repository URL under Repositories.
  • Se till att Branch Specifier är satt som */master under Branches to build.
  • Scrolla ner till Script Path. Ange här namnet på Jenkins-filen som customJenkinsfile. Klicka på Spara.
  • Efter det, kör din pipeline. Jenkins kommer först att hämta din kod från fjärrförvaret. Den kommer sedan att skapa en pipeline med den anpassade Jenkinsfilen och köra alla steg.

    Du har nu framgångsrikt skapat din egen pipeline för mjukvaruutveckling med Pipeline som kod. Dessutom har du aktiverat versionskontroll på ditt pipeline-skript. Alla ändringar du gör i din pipeline-kod kan nu spåras med varje Git-commit. Därefter är det dags att titta på de bästa metoderna.

    Bästa metoder för att skriva effektiv pipeline som kod

    Låt oss titta på de bästa metoderna du bör följa när du skriver din Pipeline som kod.

    • Håll din pipeline ren och undvik att skriva för många komplexa villkor.
    • Om du gör för många kommandon i pipelinen, dela upp dem i olika steg.
    • Använd externa filer med versionskontroll för din Pipeline som kodskript.
    • Använd funktionerna i kodspråket, som Groovy, för att integrera olika steg.
    • Undvik anrop till Jenkins.getInstance eller dess accessorer för att lindra säkerhets- och prestandaproblem.
    • Skriv inte över inbyggda pipeline-kommandon som sh och timeout.
    • Skapa externa verktyg eller skript för komplexa CPU-intensiva uppgifter och koppla in dem i din pipeline.
    • Utnyttja det stora utbudet av befintliga plugins som är tillgängliga för Jenkins för att hantera ditt användningsfall.
    • Se till att du har införlivat undantag och felhantering, eftersom saker och ting kan gå fel.
    • Gör inte din Pipeline som kod tätt kopplad till en massa affärslogik inuti den.
    • Använd parametriserade argument när det är möjligt för att göra din pipeline återanvändbar.

    Pipeline som kod: En enkel metod för komplexa processer

    Sammanfattningsvis förenklar Pipeline as Code automatiseringen av din CI/CD-pipeline genom att representera hela processen som kod. Medan CI/CD-pipelines automatiserar byggandet, testningen och driftsättningen av dina kodändringar, tar det ett steg längre att utnyttja Pipeline as Code. Det låter dig definiera ditt arbetsflöde i text istället för att lita på grafiska gränssnitt.

    Med Pipeline as Code ser du till att varje steg i ditt arbetsflöde sker i rätt ordning. Du minskar risken att råka ut för oönskade problem. Dessutom får du flera fördelar – inklusive konsekvens, repeterbarhet och främjande av samarbete.

    Med hjälp av den här guiden vet du nu hur du skapar dina egna pipelines med Jenkins, ett flitigt använt CI/CD-verktyg. Jenkins erbjuder en kraftfull och flexibel plattform för att implementera Pipeline som kod genom sin Jenkinsfile. Följ de bästa metoderna och skapa arbetsflöden som hanterar alla dina pipelineanvändningsfall.

    Om du vill lära dig mer om Jenkins kan du kolla in hur du skapar din egen Jenkins-pipeline.