View profile

Een feestelijke livegang met een CI en CD strategie

Jos van Essen
Jos van Essen
Mensen met wie ik wel eens een website live heb gezet weten dat ik dat graag extra feestelijk vier. Ik ben er zelfs een keer voor naar de IKEA gereden omdat de klant in kwestie geen champagneglazen had in de keuken.
Ik weet ook dat sommigen het vieren van een livegang misschien nogal overdreven vinden want ‘er is nog zoveel te doen’ aan het product.
Maar dat is ook wel t mooie van online: je kunt iedere dag iets veranderen en verbeteren. Sterker nog: de beste online producten veranderen bijna dagelijks.
Dat doen ze door twee processen die soms enigzins door elkaar gebruikt worden.
Continuous integration (CI) en Continuous delivery (CD). CI heeft heel veel raakvlakken met het onderwerp van vorige week, waarin ik probeerde uit te leggen hoe groepen ontwikkelaars Git gebruiken om elkaars code continue samen te voegen. CI is het proces waarmee je zorgt dat er code wordt samengevoegd met je belangrijkste branches, meestal ‘master’ of de meer politiek correcte ‘main’ branch.
CD gaat echter over het proces hierachter: wat gebeurt er eigenlijk met die code in je versiebeheer op het moment dat iemand dit wijzigt? Je wil waarschijnlijk dat het ergens zichtbaar wordt voor jou en je klanten.
Veel ontwikkelaars hebben een grondige hekel aan het doen van repeterende taken (en andere mensen evenzogoed, maar daar worden geen comics over gemaakt) dus ze proberen dingen te automatiseren.
Het proces om tot een delivery-straat te komen is eigenlijk per stukje software verschillend. Maar dit kan een voorbeeld zijn:
  • Nadat de laatste versie in Github staat wil je een aantal geautomatiseerde tests doen of alles nog werkt zoals je verwacht. Als deze tests geslaagd zijn dan,
  • Draai je de scripts die noodzakelijk zijn om tot een productie-build te komen
  • Je voert wat extra variabelen in, bijvoorbeeld het genereren van nieuwe security-codes die mee moeten met de productie-code, of bijvoorbeeld de locatie waar de code moet komen te draaien
  • Je bouwt een container (hierover later ook meer, denk ik?) met daarin een besturingsssyteem plus de noodzakelijke software waarin de code geisoleerd kan draaien. Denk hierbij aan bijvoorbeeld een webserver en een database.
  • Je verstuurt deze container naar een cloud, bijvoorbeeld die van Google of Amazon
  • De bouwstraat valideert tot slot of de container daadwerkelijk goed is aangekomen in de cloud en of deze reageert
  • Als dat zo is dan vervangt hij ‘oude’ containers met de oude code die nog draaiden. Deze kunnen dus uitgefaseerd
Zoals je ziet is dit een bouwstraat met best wat bewegende onderdelen. Reden genoeg dus voor een feestje wanneer dit allemaal lukt, en gelukt is: nog afgezien van de kwaliteit van de software zelf (die natuurlijk ook op orde moet zijn) is het altijd een enorme prestatie om werkende code door zo'n enorme funnel te krijgen. En zoals ik hierboven al zei: het zorgt er ook voor dat ontwikkelaars in de toekomst deze bouwstraat steeds opnieuw kunnen starten. Bij iedere letter die nu verkeerd staat kan een ontwikkelaar code ‘pushen’ naar productie.
Om meer complexiteit weg te nemen is het ook perfect mogelijk om je code naar een meer ‘platform as a service’ te sturen. Dit is een systeem dat een deel van deze complexiteit voor je wegneemt. Voor de JAMstack heb je bijvoorbeeld Vercel of Netlify om dit proces te vereenvoudigen. Deze zijn zo eenvoudig als het opgeven van je repository URL en deze platformen zoeken automatisch uit wat ze moeten doen om je code vanuit je versiebeheer naar ‘live’ te krijgen. Handig.
Er zijn natuurlijk nog een heleboel andere zaken om rekening mee te houden mocht je ‘klaar’ zijn met een product, zoals het inrichten van alle tracking code, het AVG en GDPR compatible maken van je site. Zorgen dat Google je site kan crawlen, en nog veel meer onderwerpen voor toekomstige nieuwsbrieven.
Een fijne werkweek!

Did you enjoy this issue? Yes No
Jos van Essen
Jos van Essen

JSON, API's, webtokens, CI deployments, JavaScript, Tag Manager: we horen allemaal regelmatig termen voorbij komen waarvan we niet 100% zeker weten of we het ook daadwerkelijk begrijpt. Deze nieuwsbrief laat een licht schijnen op deze materie: tech voor op het web uitgelegd

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.