CI/CD-pijplijn: leer met voorbeeld

Wat is een CI/CD-pijplijn?

Een CI/CD-pijplijn automatiseert het proces van softwarelevering. Het bouwt code, voert tests uit en helpt u veilig een nieuwe versie van de software te implementeren. De CI/CD-pijplijn vermindert handmatige fouten, geeft feedback aan ontwikkelaars en maakt snelle productiteraties mogelijk.

CI/CD-pijplijn introduceert automatisering en continue monitoring gedurende de hele levenscyclus van een softwareproduct. Het omvat vanaf de integratie- en testfase tot aan de oplevering en implementatie. Deze verbonden praktijken worden CI/CD-pijplijn genoemd.

Wat is continue integratie, continue levering en continue implementatie?

  • Continue integratie is een softwareontwikkelmethode waarbij leden van het team hun werk minstens één keer per dag kunnen integreren. Bij deze methode wordt elke integratie gecontroleerd door een geautomatiseerde build om de fout te zoeken.
  • Doorlopende levering is een software-engineeringmethode waarbij een team in een korte cyclus softwareproducten ontwikkelt. Het zorgt ervoor dat software op elk moment eenvoudig kan worden vrijgegeven.
  • Continue inzet is een software-engineeringproces waarbij productfunctionaliteiten worden geleverd via automatische implementatie. Het helpt testers om te valideren of de wijzigingen in de codebase correct zijn en of deze stabiel zijn of niet.

Fasen van een CI/CD-pijplijn

Een CI/CD-pijplijn is een uitvoerbare specificatie van de stappen die elke ontwikkelaar moet uitvoeren om een ​​nieuwe versie van software te leveren. Bij falen in elke fase wordt een melding via e-mail geactiveerd. Slackof andere communicatieplatforms. Het stelt verantwoordelijke ontwikkelaars in staat om op de hoogte te zijn van de belangrijke kwesties.

Dit zijn de belangrijke fasen van de CI/CD-pijplijn:

Stadia van de CI/CD-pijplijn
Stadia van de CI/CD-pijplijn

Bronstadium

In de bronfase wordt de CI/CD-pijplijn geactiveerd door een codeopslagplaats. Elke wijziging in het programma activeert een melding bij de CI/CD-tool die een gelijkwaardige pijplijn uitvoert. Andere veel voorkomende triggers zijn door de gebruiker geïnitieerde workflows, geautomatiseerde planningen en de resultaten van andere pijplijnen.

Bouwfase

Dit is de tweede fase van de CI/CD Pipeline waarin u de broncode en de afhankelijkheden ervan samenvoegt. Het wordt voornamelijk gedaan om een ​​uitvoerbaar exemplaar van de software te bouwen dat u mogelijk naar de eindgebruiker kunt verzenden.

Programma's die zijn geschreven in talen zoals C++, Java, C of Go-taal moet worden gecompileerd. Anderzijds, JavaScript, Python, en Ruby-programma's kunnen zonder de build-fase werken.

Als u de bouwfase niet haalt, betekent dit dat er sprake is van een fundamentele verkeerde configuratie van het project. Het is dus beter dat u een dergelijk probleem onmiddellijk aanpakt.

Testfase

Testfase omvat het uitvoeren van geautomatiseerde tests om de juistheid van de code en het gedrag van de software te valideren. Deze fase voorkomt dat gemakkelijk reproduceerbare bugs de clients bereiken. Het is de verantwoordelijkheid van ontwikkelaars om geautomatiseerde tests te schrijven.

Fase implementeren

Dit is de laatste fase waarin uw product live gaat. Zodra de build alle vereiste testscenario's met succes heeft doorlopen, is deze klaar om op de live server te implementeren.

Voorbeeld van CI/CD-pijplijn

Hier is een voorbeeld van een CI/CD-pijplijn:

  • Broncodecontrole: Hostcode op GitHub als een privérepository. Dit zal u helpen uw applicatie te integreren met de belangrijkste diensten en software.
  • Continue integratie: Gebruik een platform voor continue integratie en levering CircleCI en commit elke code. Wanneer de wijzigingen worden gemeld, haalt deze tool de code op die beschikbaar is in GitHub en verwerkt deze om de test te bouwen en uit te voeren.
  • Code implementeren in UAT: Configure CircleCI om uw code op de AWS UAT-server te implementeren.
  • Implementeren in productie: U moet continue integratiestappen opnieuw gebruiken voor het implementeren van code naar UAT.

Best practices voor CI/CD-pijplijn

Hier volgen best practices voor een CI/CD-pijplijn:

  • Schrijf daarom het huidige ontwikkelingsproces op, zodat u weet welke procedures moeten worden gewijzigd en welke eenvoudig kunnen worden geautomatiseerd.
  • Begin met een klein proefproject voordat u verdergaat en voltooi het hele ontwikkelingsproces in één keer.
  • Zet een pijplijn op met meer dan één fase waarin eerst snelle fundamentele tests worden uitgevoerd.
  • Start elke workflow vanuit dezelfde, schone en geïsoleerde omgeving.
  • Voer open source-tools uit die alles omvatten, van codestijl tot beveiligingsscans.
  • Zet een betere codehub op om continu de kwaliteit van uw code te controleren door de standaardset tests op elke vertakking uit te voeren.
  • Peer-code beoordeelt elke pull-aanvraag om een ​​probleem op een gezamenlijke manier op te lossen.
  • U moet successtatistieken definiëren voordat u aan de transitie naar CD-automatisering begint. Dit zal u helpen uw software consistent te analyseren, voortgang te ontwikkelen en waar nodig te verfijnen.

Voordelen van CI/CD-pijplijnen

Dit zijn de voor- en voordelen van CI/CD Pipeline:

  • Bouwen en testen kunnen eenvoudig handmatig worden uitgevoerd.
  • Het kan de consistentie en kwaliteit van code verbeteren.
  • Verbetert de flexibiliteit en heeft de mogelijkheid om nieuwe functionaliteiten te leveren.
  • CI/CD-pijplijn kan de communicatie stroomlijnen.
  • Het kan het proces van softwarelevering automatiseren.
  • Helpt u om sneller feedback van klanten te krijgen.
  • De CI/CD-pijplijn helpt u de zichtbaarheid van uw product te vergroten.
  • Hiermee kunt u handmatige fouten verwijderen.
  • Reduceert kosten en arbeid.
  • CI/CD-pijplijnen kunnen de levenscyclus van softwareontwikkeling sneller maken.
  • Het heeft een geautomatiseerde pijplijnimplementatie.
  • Een CD-pijplijn zorgt voor een snelle feedbacklus, beginnend van ontwikkelaar tot klant.
  • Verbetert de communicatie tussen medewerkers van de organisatie.
  • Het stelt ontwikkelaars in staat om te weten welke wijzigingen in de build de makelaardij kunnen aanspreken en deze in de toekomst kunnen vermijden.
  • De geautomatiseerde tests, samen met enkele handmatige testruns, helpen bij het oplossen van eventuele problemen.

Belangrijke CI/CD-tools

Dit zijn de belangrijke CI/CD-tools:

1) Jenkins

Jenkins is een open-source Continuous Integration-server die helpt om het Continuous Integration-proces (en niet alleen) op geautomatiseerde wijze te realiseren. Jenkins is gratis en volledig geschreven JavaJenkins is een wereldwijd veelgebruikte applicatie met ongeveer 300 installaties en dat aantal groeit nog elke dag.

Jenkins

Kenmerken:

  • Jenkin zal gedurende de dag vele malen code bouwen en testen.
  • Geautomatiseerd bouw- en testproces, waardoor timing wordt bespaard en defecten worden verminderd.
  • De code wordt na elke succesvolle build en test geïmplementeerd.
  • De ontwikkelingscyclus is snel.

Link: https://www.jenkins.io/download/


2) Bamboo

Bamboo is een continue integratie build server die automatisch bouwt, test en releases uitvoert op één plek. Het werkt naadloos met JIRA software en Bitbucket.

Bamboo

Kenmerken:

  • Voer parallelle batchtests uit
  • Opzetten Bamboo is vrij eenvoudig
  • Dankzij de machtigingenfunctie per omgeving kunnen ontwikkelaars en QA in hun omgevingen implementeren
  • Ingebouwde Git-vertakking en workflows. Het voegt automatisch de takken samen.

Link: https://www.atlassian.com/software/bamboo


3) CirkelCi

CirkelCi is een flexibele CI-tool die in elke omgeving draait, zoals een platformonafhankelijke mobiele app, Python API-server of Docker-cluster. Deze tool vermindert bugs en verbetert de kwaliteit van de applicatie.

CirkelCi

Kenmerken:

  • Maakt het mogelijk om Build Environment te selecteren
  • Ondersteunt vele talen, waaronder C++, JavaScript, NET, PHP, Python, en Ruby
  • Dankzij ondersteuning voor Docker kunt u een aangepaste omgeving configureren.
  • Annuleer automatisch alle in de wachtrij geplaatste of actieve builds wanneer een nieuwere build wordt geactiveerd.

Link: https://circleci.com/

Waarom is de CI/CD-pijplijn belangrijk voor IT-leiders?

  • CI/CD-pijplijn kan de betrouwbaarheid verbeteren.
  • Het maakt het IT-team aantrekkelijker voor ontwikkelaars.
  • De CI/CD-pijplijn helpt IT-leiders code uit versiebeheer te halen en softwarebuild uit te voeren.
  • Helpt bij het verplaatsen van code naar de doelcomputeromgeving.
  • Stelt projectleiders in staat om eenvoudig omgevingsvariabelen te beheren en te configureren voor de doelomgeving.
  • Projectmanagers kunnen push-applicatiecomponenten publiceren naar services zoals webservices, databaseservices, API-services, enz.
  • Het verstrekken van loggegevens en waarschuwingen over de leveringsstatus.
  • Het stelt programmeurs in staat codewijzigingen te verifiëren voordat ze verder gaan, waardoor de kans kleiner wordt dat defecten in de productie terechtkomen.

Ci/CD-pijplijn-KPI

  • Cyclus- of implementatietijd: Cyclustijd is de tijd die nodig is om van de bouwfase naar de productie te gaan. Door de fasen van het ontwikkelingsproces te meten, kunt u de gemiddelde levenscyclustijd verkrijgen. Deze statistiek geeft inzicht in knelpunten in uw proces en de algehele snelheid van de ontwikkeltijd.
  • Ontwikkelingsfrequentie: Met de ontwikkelingsfrequentie kunt u knelpunten analyseren die u tijdens de automatisering tegenkomt. De frequentere kleinere releases verminderen het risico op defecten en repareren deze wanneer ze worden gevonden. Zo'n statistiek is een algemene maatstaf voor de efficiëntie van uw team.
  • Doorlooptijd wijzigen: Het meet de starttijd van de ontwikkelingsfase tot aan de implementatie. Deze maatstaf is een indicator van het hele ontwikkelingsproces en hoe goed het team samenwerkt.
  • Mislukkingspercentage wijzigen: Het richt zich op het aantal keren dat de ontwikkeling slaagt versus het aantal keren dat het mislukt.
  • MTTR versus MTTF: MTTR (Mean Time to Recovery) is de hoeveelheid tijd die uw team nodig heeft om te herstellen van een storing. MTTF (Mean Time to Failure) meet de hoeveelheid tijd tussen reparaties en storingen. Deze statistieken weerspiegelen het vermogen van het team om te reageren en problemen op te lossen.

Samenvatting

  • Een CI/CD-pijplijn automatiseert het proces van softwarelevering.
  • CI/CD-pijplijn introduceert automatisering en continue monitoring gedurende de hele levenscyclus van een softwareproduct.
  • Continue integratie is een softwareontwikkelmethode waarbij teamleden minimaal één keer per dag hun werk kunnen integreren.
  • Continuous Delivery is een software-engineeringmethode waarbij een team in een korte cyclus softwareproducten ontwikkelt.
  • Continue implementatie is een software-engineeringproces waarbij productfunctionaliteiten worden geleverd via automatische implementatie.
  • Er zijn vier fasen in een CI/CD-pijplijn: 1) Bronfase, 2) Bouwfase, 3) Testfase, 4) Implementatiefase.
  • belangrijk CI/CD-tools zijn Jenkins, Bambo en Circle CI.
  • CI/CD-pijplijn kan de betrouwbaarheid verbeteren.
  • De CI/CD-pijplijn maakt het IT-team aantrekkelijker voor ontwikkelaars.
  • Cyclustijd is de tijd die nodig is om van de bouwfase naar de productie te gaan.
  • Met de ontwikkelingsfrequentie kunt u knelpunten analyseren die u tijdens de automatisering tegenkomt.
  • Change Lead Time meet de starttijd van de ontwikkelingsfase tot aan de implementatie.
  • Change Failure Rate richt zich op het aantal keren dat de ontwikkeling slaagt versus het aantal keren dat deze mislukt.
  • MTTR (Mean Time to Recovery) is de hoeveelheid tijd die uw team nodig heeft om te herstellen van een storing.
  • MTTF (Mean Time to Failure) meet de hoeveelheid tijd tussen reparaties en storingen.