• Ontzorging en service
  • 24/7 geholpen
  • Uitgebreide mogelijkheden
Ontzorging en service

In 7 stappen een succesvolle CI/CD pipeline implementatie

Deel dit artikel

In 7 stappen een succesvolle CI/CD pipeline implementatie

Een CI/CD pipeline brengt grote voordelen met zich mee voor webagencies. Maar dit realiseer je niet over één nacht ijs, er komt behoorlijk wat kijken bij een implementatie. Wil jij ook aan de slag met een CI/CD pipeline implementatie? Dan is het van belang dat je goed voorbereid bent. En, ook niet geheel onbelangrijk, dat jij en je team er ook daadwerkelijk klaar voor zijn.

Ben jij (of heb jij) een development team dat (meerdere) websites en/of applicaties ontwikkelt en beheert? Lees dan waarom CI/CD interessant is, wat het beste moment is om te starten en welke stappen leiden tot een succesvolle implementatie.

Voor wie is het implementeren van een CI/CD pipeline interessant

Werk jij met meerdere mensen aan meerdere projecten? Dan heb je baat bij een duidelijk en goed proces. En dat is precies waarom het werken met een CI/CD pipeline zo populair is onder agencies. Sterker nog… eenmaal overstag, kunnen ze niet meer zonder!

Wanneer start je met CI/CI?

Wanneer je start met het inrichten van een CI/CD pipeline bepaal je helemaal zelf. Het is nooit te vroeg of te laat. Zelfs voor kleine (startende) agencies heeft het direct een toegevoegde waarde.

Het vroegtijdig implementeren op het moment dat er (nog) niet zoveel verschillende projecten lopen kan zelfs in je voordeel werken. Een CI/CD pipeline fungeert namelijk als een fundamenteel proces. Je kan je voorstellen dat je dit fundament makkelijker legt wanneer het ‘huis’ nog enigszins in aanbouw is, dan wanneer er al een volledige én bewoonde villa staat. De impact op de dagelijkse praktijk is dan veel groter.

Met het vroegtijdig implementeren van een CI/CD pipeline zet je dus een sterke en stabiele basis neer waar je veilig en gestructureerd op verder bouwt.

Er wordt nog te vaak gedacht dat een website na livegang ‘klaar’ is. Maar het is zo belangrijk om te blijven zorgen voor goed onderhoud. Wij benadrukken bij onze klanten daarom veelvuldig het belang van periodiek pentesten en het uitvoeren van security scans. Dit is de enige manier om te controleren of de website of applicatie écht nog voldoende beveiligd is. Daarnaast ook om nieuwe bedreigingen, lekken en slimmer wordende hackers een stap voor te blijven.

Kevin Bentlage, CTO bij Cobytes klantenfoto

Kevin Bentlage

CTO bij Cobytes

De stappen naar een succesvolle CI/CD implementatie

1. Inventarisatie

Start altijd met een grondige inventarisatie. De inventarisatie geeft je inzicht in de huidige situatie, de gewenste situatie en wat er nodig is om daar te komen. Dit vormt de basis voor het succesvol starten van een implementatietraject.

Beantwoord voor jezelf de volgende vragen:

Vanuit de inventarisatie volgt een plan. Dit is de blauwdruk voor het proces wat je hierna inricht. Zorg dat je hierin duidelijke en scherpe keuzes maakt. Een efficiënte CI/CD pipeline vraagt namelijk om een efficiënt applicatielandschap.

Meer tools en systemen betekent niet automatisch meer gemak of snelheid. Het tegendeel is vaak zelfs waar: het maakt de implementatie én het beheer van de CI/CD pipeline vaak onnodig gecompliceerd. Maak daarom duidelijke keuzes, uitbreiden kan immers altijd nog.

2. Versiebeheer van de code

Een version control system (VCS) is cruciaal voor een CI/CD werkwijze. Een VCS is een tool voor versiebeheer van de code. Een veelgebruikte tool is GIT.

De tool helpt ontwikkelaars onder andere bij:

Ontwikkelen zonder zo’n tool kent veel nadelen, zowel voor jou als agency als voor de eindklant. Een aantal van de grootste nadelen en risico’s zijn:

We zijn nu ook schaalbaar doordat we geautomatiseerd uitrollen, waarmee we sneller een nieuwe omgeving neer kunnen zetten. Doordat het team met versiebeheer werkt, snappen ze van elkaar wat ze aan het doen zijn, waardoor ze makkelijker samenwerken.

Paul Homan

CTO bij Unframed

Een VCS wordt vaak als een hygiënefactor voor agencies gezien. Eindklanten gaan ervan uit dat dit onderdeel is van de werkwijze. Twijfel je over de juiste tool voor versiebeheer of hoe hier het beste mee kan starten? Raadpleeg dan altijd een specialist voor advies. Jouw hostingprovider kan je hier over het algemeen goed bij helpen.

3. Beheer van externe tools met een package manager

Binnen development teams worden verschillende tools gebruikt voor onder andere programmeertalen en frameworks. Een optimale CI/CD pipeline vraagt om uniformiteit in de versies van alle gebruikte tools.

De derde stap in het implementatieproces is daarom het inzetten en configureren van een zogeheten ‘package manager’. Hierin worden alle externe tools beheerd, zoals bijvoorbeeld Laravel of Symfony. De package manager zorgt ervoor dat de tools tijdig en vanaf een centrale plek worden geüpdatet, zodat iedereen altijd met dezelfde versies werkt.

De package manager speelt ook een belangrijke rol in het totale proces. Het zorgt namelijk voor het verminderen van een aantal risico’s zoals handmatige configuratiefouten, problemen bij het overbrengen van code tussen verschillende ontwikkelingsfasen of omgevingen of zelfs beveiligingsrisico’s door het ontbreken van geautomatiseerde controles.

Het is goed om je te realiseren dat het ontbreken van automatisering door een package manager ten koste van de efficiëntie van de CI/CD pipeline gaat. De reden hiervoor? Installatie en beheer moeten in dat geval handmatig worden uitgevoerd.

Kortom, maak je nog geen gebruik van een dergelijke tool, dan is het zeker aan te raden je hier in te verdiepen.

4. Een gestandaardiseerde basis

De volgende stap is zorgen voor een gestandaardiseerde basis voor het bouwen van websites en applicaties. Dit betekent dat de basis die je gebruikt om een website of applicatie te bouwen overal hetzelfde is. Denk bijvoorbeeld aan een gestandaardiseerde CMS-installatie of DNS-registratie.

Een gestandaardiseerde basis heeft verschillende voordelen. De belangrijkste winst die hiermee wordt behaald is dat het de kans op fouten aanzienlijk vermindert en het de snelheid en schaalbaarheid bevordert.

Tegenwoordig kunnen we gewoon een script oproepen. Dan wordt de website automatisch geïnstalleerd en staat alles direct op de juiste plek. Dat betekent dat het opzetten van een basiswebsite zoals wij die installeren ons per project al 10 tot 20 uur werk bespaart. Een wereld van verschil!

Paul Homan

CTO bij Unframed

Ook dit onderdeel is essentieel in een CI/CD pipeline. Zonder deze basis mis je consistentie. En dit maakt het neerzetten van een efficiënt en geautomatiseerd proces vrijwel onmogelijk.

Werk je op dit moment nog niet met een gestandaardiseerde basis? Dan is het wellicht verstandig dit eerst als een project op te pakken voor je verder gaat met een de CI/CD pipeline.

5. Werken met containers

Het werken met containers is cruciaal voor het voorkomen van compatibiliteitsproblemen. Want wanneer verschillende developers met verschillende besturingssystemen werken, kan dit zorgen voor afwijkend gedrag in de tools die gebruikt worden en applicaties die ontwikkeld worden.

Een risico is bijvoorbeeld dat een applicatie in de ontwikkelingsfase goed werkt, maar tegen onverwachte problemen aanloopt bij implementatie in de productieomgeving. Dit is dus een vervelende stoorzender in de weg naar optimale efficiëntie en schaalbaarheid die je wil bereiken met CI/CD.

Door te werken met containers zorg je ervoor dat er als het ware een extra laag bovenop het gebruikersspecifieke besturingssysteem wordt gelegd. In essentie bieden containers een gestandaardiseerde manier om applicaties te verpakken. Zo kun je de container gemakkelijk verplaatsen naar verschillende servers en ben je gegarandeerd van een consistent werkende applicatie. Een veelgebruikte tool hiervoor is Docker.

Werk je op dit moment nog niet met containers, dan is het aan te raden je hierin te verdiepen en te bepalen welke tool eventueel het beste aansluit bij jouw wensen.

6. Zorgen voor duidelijke workflow

Wat is vaak de grootste uitdaging als het gaat om het managen van grote projecten met verschillende stakeholders? Over het algemeen is dat de onderlinge samenwerking en het waarborgen van een gestroomlijnd proces. Je wil dat alle neuzen dezelfde kant opstaan, dat iedereen snapt wat er gebeurt en wat wordt verwacht. Kortom, dit vraagt om een duidelijke en logische workflow.

Het inrichten van zo’n workflow gebeurt vaak op basis van Scrum of Agile. Er wordt gewerkt in zogeheten ‘sprints’ waarbij binnen een afgebakend tijdvlak een afgesproken hoeveelheid werk wordt opgeleverd.

Het voordeel van het opknippen van het werk in sprints, is dat je veel productiever bent met de tijd die je hebt.

Het overstappen naar een nieuwe uniforme werkwijze is vaak één van de grootste uitdagingen tijdens de implementatie. Want dit betekent het loslaten van de bekende en vertrouwde werkwijze. Toch is het enorm belangrijk hier de nodige tijd en aandacht aan te schenken. Wij ondersteunen en adviseren onze klanten hier ook in.

Kevin Bentlage, CTO bij Cobytes klantenfoto

Kevin Bentlage

CTO bij Cobytes

Het werken met sprints is geen harde vereiste voor een CI/CD pipeline, maar absoluut wel aan te raden.

Werk je op dit moment nog niet met Scrum of Agile en wil je er wel (laagdrempelig) mee starten? Start dan met het bepalen van het doel, het vaststellen van het Scrum team en de bijbehorende rollen en het vergaren en verspreiden van de benodigde kennis. Een basistraining Scrum kan je hierbij al een eind op weg helpen.

7. Hotfix en rollback

De laatste stap in het implementatieproces is het inregelen van de zogeheten hotfix en rollback mogelijkheden.

Zorg dat je tijdens de implementatie al duidelijke afspraken maakt over wat te doen wanneer iets niet werkt zoals het hoort. Dit zorgt ervoor dat je snel kan schakelen en fouten snel oplost.

Kevin Bentlage

CTO bij Cobytes

Een hotfix is een snelle en gerichte oplossing voor een specifiek probleem. Dit is van belang omdat je hiermee zorgt dat de oplossing direct doorgevoerd kan worden zonder dat je hoeft te wachten op geplande updates of andere procesmatige afspraken. Het is als het ware een snelle vluchtroute die je achter de hand houdt voor de momenten dat het nodig is.

Een rollback is een manier om recente wijzigingen ongedaan te maken en het systeem terug te zetten naar een eerdere stabiele versie. Beide onderdelen zijn essentieel voor snelle probleemafhandeling en het waarborgen van stabiliteit.

Oplevering en onderhoud van de CI/CD pipeline

Na een succesvolle afronding van de implementatie is het tijd voor oplevering en overdracht binnen het team. Het is van groot belang het team al tijdens de implementatie nauw te betrekken. Dit zorgt voor een soepele overdracht. Zorg er ook voor dat zaken gedocumenteerd worden. Op deze manier kan ieder teamlid altijd terugvallen op de beschikbare documentatie. Ook bij de onboarding van nieuwe collega’s is dit onmisbaar.

Het proces is nooit ‘af’

Na de overdracht begint het echte werk eigenlijk pas. De CI/CD pipeline wordt in de praktijk toegepast! Je komt er dan ook achter dat het proces eigenlijk nooit helemaal af is. Het is een dynamisch onderdeel wat altijd in beweging blijft en de nodige updates vereist.

Ga je bijvoorbeeld met nieuwe tools werken? Dan moet je deze ook in de CI/CD pipeline integreren en de documentatie hierop aanpassen. Daarnaast is het belangrijk het proces af en toe te reviewen, zodat je op basis daarvan de nodige aanpassingen en optimalisaties doorvoert.

Ook aan de slag met een CI/CD pipeline implementatie?

Zoals je wellicht hebt gelezen, heeft de implementatie van een CI/CD pipeline nogal wat voeten in de aarde. Maar laat je hierdoor niet afschrikken. Want wanneer je dit goed neerzet, fungeert het als een sterke basis om op verder op te bouwen.

Wil je meer weten over de mogelijkheden van een CI/CD pipeline binnen jouw developmentteam of heb je advies nodig? Neem dan contact met ons op, we denken graag met je mee!

Deel dit artikel

logo keuzehulp

Niet zeker welk
pakket of dienst past
bij jouw organisatie?

Beantwoord in 1 minuut een aantal vragen en kom erachter!

Start de keuzehulp
1

Hoe belangrijk is hosting voor jou?

Gebruik je jouw hosting hobbymatig, of is het van cruciaal belang voor jouw bedrijf?

Hobbymatig
Informatief
Cruciaal
2

Voor welke toepassing heb je hosting nodig?

Wil je een website, webshop of (maatwerk) applicatie hosten?

Website
Webshop
Applicatie
3

Moet de hosting kunnen schalen?

Heb je veel te maken met pieken en dalen? bijvoorbeeld tijdens vakantie periode's, black friday, mailings, kerst etc?

Nee
Soms
Regelmatig
4

Hoeveel bezoekers komen er per dag op jouw website?

Dit is erg bepalend voor het type hosting.

Geen idee
< 1000
> 1000
5

Wat voor maandbudget heb je voor hosting?

Wij kunnen vrijwel altijd een passende oplossing bieden voor ieder budget.

€€
€€€
6

Wil je (of jouw team) zelf aan de knoppen zitten?

Heb je zelf veel technische kennis? Of wil je graag complete onzorging?

Nooit
Liever niet
Graag
7

Wie draagt (bij voorkeur) verantwoordelijkheid voor jouw hosting

Kom je zelf in actie bij calamiteiten? Of laat je dit aan ons over?

Ikzelf
Gezamelijk
Hostingpartij
Vragenlijst afronden

Bedankt voor het invullen!

Er is iets mis, we kunnen op basis van jouw keuzes geen advies geven.

Neem even telefonisch contact met ons op: 088-8788900 of stuur een e-mail naar sales@cobytes.com.

Het lijkt erop dat je een managed VPS nodig hebt.

Jouw eisen aan hosting zijn hoog, dit vereist een maatwerk oplossing, bijvoorbeeld een High-Available cluster.

Vul onderstaand formulier in om jouw persoonlijke advies te ontvangen. Geen zorgen, je zit nergens aan vast. Ons advies is geheel vrijblijvend!

Wanneer u een aanvraag doet gaat u akkoord met onze algemene voorwaarden en privacyverklaring. We gaan uiteraard zorgvuldig om met uw gegevens.