Snelheid. Consistentie. Minder risico op menselijke fouten. Grip op het softwareontwikkelproces en de terugkoppeling over kwaliteit, security en compliance. Het is slechts een greep uit de voordelen die software delivery pipelines jouw organisatie kunnen brengen. Want er is nog zoveel meer mogelijk. In dit blog vertel ik hoe je het optimale uit deze pipelines kunt halen. Aan het einde ben je hopelijk net zo enthousiast als ik over dit mechanisme en de enorme hoeveelheid verborgen waarde die erdoorheen stroomt!
Stel je een fabriek voor met een lopende band. Robots bouwen daar, stap voor stap, een product. Ze testen het en kijken vervolgens of het resultaat oké is. Dit gebeurt allemaal zonder dat iemand aan de zijlijn instructies hoeft te geven of op het proces hoeft te letten. Nu wordt er in de fabriek uit dit voorbeeld een product gemaakt. Software kan op een vergelijkbare manier ontwikkeld worden, in een software delivery pipeline. Die bestaat uit een serie instructies die een machine kan uitvoeren, om een specifiek doel onder specifieke omstandigheden te bereiken. De zogeheten build pipeline – ook wel continuous integration (CI) pipeline genoemd – stelt dan software samen uit losse fragmenten. Als alles goed gaat rolt er bijvoorbeeld een bruikbare applicatie uit, die op een gemakkelijk te bereiken ‘plank’ wordt gezet om in de volgende stap te gebruiken. Met andere pipelines kan de software op de juiste servers worden geplaatst. Met een serie pipelines en een druk op de knop kun je zelfs de fabriek zelf optuigen!
Investering die veel oplevert
Door softwareontwikkeling met delivery pipelines te automatiseren, haal je veel snelheid en consistentie in huis. Door “corvee” te automatiseren, gebruik je je ontwikkelteams het effectiefst en verlaag je het risico op menselijke fouten dramatisch. Dat is op zich al nuttig en belangrijk, maar het is slechts het begin! Met een relatief kleine investering kun je het maximale uit je pipelines halen en dat levert je onnoemelijk veel voordeel op. Je krijgt daarmee grip en terugkoppeling over de staat van de software. Dit zijn een paar voorbeelden van wat een pipeline voor je kan doen:
Met deze stappen behaal je je doelen op het gebied van kwaliteit, security en compliance zowat vanzelf. Ook de effectiviteit en – ook essentieel – het werkplezier van je ontwikkelteams neemt toe door de hogere mate van automatisering. Door de hogere snelheid van opleveren, minder handmatig werk en snelle feedback worden fouten voorkomen of sneller opgelost. Met automatische rapportages versnel je het auditproces en door je registratiesystemen automatisch bij te werken, klopt de inhoud altijd 1-op-1 met de werkelijkheid.
Bescherming van je code en productieomgeving
Securityscans winnen aan populariteit. Mits je hier een tool voor heb, kun je regelmatig scans uitvoeren op draaiende software en zo bewust zijn van het risico. Als je ze echter opneemt in je pipelines, kun je onveilige software simpelweg weigeren tot het verbeterd is. En zo bij elke oplevering het hoofd bieden aan de steeds groter wordende set met eisen en online dreigingen. In 2023 is er naar schatting ongeveer 7 biljoen dollar verloren gegaan als gevolg van cybersecurity incidenten. En dat bedrag neemt elk jaar toe.
Auditing wordt daarom ook steeds belangrijker. Bedrijven willen aan hun stakeholders tonen dat ze voldoen aan normen of standaarden en dat ze hun licenties op orde hebben. En hoewel je niet alles kunt controleren vanuit de pipeline, is het de beste manier om de basis op orde te brengen en te houden.
Met verregaande automatisering kun je de inrichting van elke server beschrijven op een manier die een computer kan lezen en daarna waar kan maken. Of updaten, met een aanpassing in deze zogeheten Infrastructure-as-code (IaC) definitie. Je kunt zo zelfs je eigen applicaties updaten, enkel door een nummertje op te hogen in zo’n bestand! En omdat de definitie regelmatig opnieuw wordt toegepast (en terug brengt naar de gewenste situatie) heeft het weinig zin om nog in te loggen en handmatig dingen aan te passen. Menselijk handelen in productiesystemen is de grootste bron van ongeplande downtime en incidenten. Daarom heeft deze manier van werken een enorme vlucht genomen en raad ik iedereen aan er eens naar te kijken!
Razendsnel akkoordproces
Akkoorden vormen de grootste procesvertragers, maar zijn vaak nodig om de kwaliteit bewaken. Een akkoord aan het begin of eind van het proces is daarbij niet erg. Maar de lopende band moet zo min mogelijk worden stilgezet als die eenmaal is gestart! Vaak beantwoord je in het akkoordproces voor elke feature die je wilt opleveren deze vragen:
- Doet de software wat het moet doen?
- Zijn er ongewenste bijeffecten?
- Integreert de software goed met de andere systemen?
- Is dit het juiste moment om de software naar productie te brengen?
De laatste vraag is een business-kwestie, waar de pipeline enkel in kan faciliteren. Het antwoord op de andere vragen kun je meestal ook geautomatiseerd bepalen, mits je voldoende tests, kwaliteit- en controleprocessen hebt. Deze kun je inbouwen in je pipeline. Door deze vragen te verankeren in automatische tests kun bij elke oplevering weer precies de juiste controles doen. Ook als er iemand ziek is of het druk heeft. Het resultaat: nog meer snelheid en kwaliteit!
Key takeaways
Je merkt het: ik ben meer dan enthousiast over software delivery pipelines. En ik ben niet de enige. Veel teams gebruiken al pipelines voor het wegnemen van herhalend handmatig werk op het gebied van het bouwen en deployen van software en het opzetten van infrastructuur. Ze hebben een hogere productiviteit en betrouwbaarheid en daardoor een lagere hoeveelheid incidenten en problemen dan teams die dat niet op orde hebben.
Een geoptimaliseerde pipeline volgt het business proces en wordt opgeleverd in de vorm van (pipeline-)code, zodat het zelf ook geniet van deze controleprocessen. Het integreert met de juiste tools om de gewenste controles en resultaten te bereiken. Er zijn scans op het gebied van codekwaliteit, security, compliance en andere zaken. Tests worden automatisch uitgevoerd en het resultaat bepaald of de code wordt geaccepteerd aan de hand van minimum vereisten. De pipeline kan ook zorgen voor het up-to-date houden van registratiesystemen en het genereren van de juiste rapporten.
Dit samen maakt teams meer autonoom, meer agile en meer gefocust en daarom beter in staat om hun doelen te halen. De extra winst voor het bedrijf is dat het risico op een security incident of compliance issue significant lager is en dat er bepaalde garanties kunnen worden gegeven over de kwaliteit van het eindresultaat. Pipelines zijn een enabler voor geautomatiseerde self-service en het beschermen van productiesystemen tegen ongeplande veranderingen.
Software delivery pipelines doen dus zoveel meer dan louter weg-automatiseren van arbeid. Er stroomt een enorme hoeveelheid verborgen waarde door deze pipelines. Wil je dus weten wat CI/CD en automatisering kan doen in jouw organisatie? Of ben je geïnteresseerd in een assessment van je huidige situatie? Neem dan contact met me op via roel.jonkman@cgi.com!