CI/CD Pipelines
Veel bedrijven zijn druk bezig met het omarmen van een DevOps werkwijze in combinatie met cloud-technologie. Een van de principes van DevOps is om zoveel mogelijk te automatiseren. Automatiseren kan uiteraard op veel verschillende manieren. Van (eenvoudige) shell-scripts en kleine Python apps tot de implementatie van complete software-suites die werk uit handen dienen te nemen. Een zeer populaire automatiseringsoplossing in combinatie met DevOps is het bouwen van een zogeheten CI/CD Pipeline, gebaseerd op de principes van Continuous Integration/Continuous Delivery.
CI/CD Pipelines kunnen in vele soorten en maten voorkomen: van eenvoudig tot enorm complex. Er zijn bovendien tientallen tools op de markt die kunnen worden benut om de pijplijn soepeltjes te laten draaien. Het kloppend hart van een CI/CD Pipeline wordt gevormd door een zogeheten pipeline orchestrator. Dit kan worden gezien als de dirigent die op basis van een partituur bepaalt welk instrument op welk moment zijn partij dient te spelen.
De populairste CI/CD dirigenten van dit moment zijn AWS CodePipelines / AWS CodeBuild, Atlassian Bamboo (al dan niet icm Bitbucket en Jira), GitLab, Azure DevOps / Azure Pipelines en Jenkinsⁱ.
Hoewel iedere orchestratie-tool specifieke eigenschappen heeft, zijn de werkingsprincipes over de tools heen grotendeels hetzelfde. Ze gaan allemaal uit van een bouwtekening waarin precies beschreven wordt uit welke stappen de pipeline bestaat en wat er per stap precies moet worden uitgevoerd. Voor heel veel tools is documentatie beschikbaar hoe je ze binnen een CI/CD omgeving kunt inzetten. Sommige tools hebben verregaande integratie met een pipeline orchestrator, waar andere tools werken op basis van een API-call of plug-in.
Het succes en de populariteit van CI/CD pipelines is voor een belangrijk deel aan open source software te danken. Bedrijven die vroeg met CI/CD aan de slag gingen, hebben veel code geschreven om de tools van hun keuze met elkaar te laten samenwerken. Zo zijn er voor Jenkins inmiddels meer dan 1000 plug-ins beschikbaar voor een keur aan applicaties.
De enorme hoeveelheid mogelijkheden en de vrij abstracte aard van een CI/CD pipeline maakt dat het werken ermee vaak geen kinderspel is. Je moet van veel verschillende markten thuis zijn en vooral op hoog niveau het overzicht kunnen bewaren om te zorgen dat de pipeline een geoliede machine wordt en geen half kapotte lopende band. Een perfecte uitdaging voor ons als IT-opleider om hiermee aan de slag te gaan!
Het resultaat is onze nieuwe CI/CD Fundamentals with GitLab training. Je duikt met deze training twee dagen lang theoretisch en praktisch in de wereld van Continuous Delivery en CI/CD Pipelines. Op basis van een heldere uitleg over bepaalde concepten en principes bouw je in ons cloud-lab hands-on en stap-voor-stap je eigen CI/CD Pipeline met GitLab. Je leert hierbij gaandeweg ook de basisprincipes kennen van git, docker, kubernetes en natuurlijk GitLab.
Met deze berg aan bagage in je rugzak kun je met vertrouwen een begin maken met het ontwerpen, bouwen of optimaliseren van je eigen pipeline. Dat hoeft niet per se op basis van GitLab te zijn, want een groot deel van de tools en concepten is ook toe te passen met bijvoorbeeld Azure Pipelines of Jenkins. Je zult alleen wel de specifieke eigenschappen en syntax van die tools moeten bijleren.
Wil je je verder ontwikkelen op het gebied van git, Docker, Kubernetes of shell-scripting? Ook dan kun je (uiteraard) bij AT Computing terecht. Bekijk daarvoor eens ons ATypical leerpad of onze trainingen.
ⁱ Jenkins heeft wereldwijd een grote install base en was een van de eerste tools om CI/CD pipelines mee te bouwen. Voor nieuwe/green field implementaties lijkt Jenkins echter niet meer de favoriete keuze te zijn van bedrijven. In plaats daarvan wordt (zeker in Nederland) veel voor GitLab of Azure DevOps gekozen. Jenkins X lijkt qua naam op Jenkins en komt uit dezelfde “stal”, maar kan niet echt als “opvolger” worden gezien. Jenkins X is van de grond af opnieuw gebouwd en volledig op Kubernetes en “cloud native” werken gericht. Zie https://medium.com/edureka/jenkins-x-d87c0271af57 voor een goed blog over de verschillen en overeenkomsten tussen Jenkins en Jenkins X
$ blog-details
- $ categorie: CI/CD Pipelines
- $ tools: o.a. GitLab, Jenkins, Azure DevOps, AWS CodePipelines, Bamboo...
- $ date: 2022-05-01T14:34:00 CEST
- $ trainingen:
CI/CD Fundamentals with GitLab