De power van pipelines
Olie?
Toen ik voor het eerst het woord pipeline hoorde was mijn eerste associatie: olie! Een kilometerslange buis met een in- en uitgang. Volgens Wikipedia zijn er echter diverse soorten pipelines. De pipeline waar wij het over hebben heeft veel meer dan één in- en uitgang.
Buizen
De continuous delivery- en continuous integration (CI/CD) pipeline is eigenlijk meer een keten van kleine “buisjes”. Tussen de buisjes onderling wordt het tussenproduct (bijvoorbeeld software) óf bewerkt óf verrijkt. Daarbij is het einde van de laatste buis aangesloten op het begin van de eerste. Twee belangrijke verschillen ten opzichte van oliepijpleidingen.
Stroming
Omdat de hele CI/CD-keten dus circulair is, ontstaat er een continue stroom. Nieuwe of bewerkte data wordt geïntegreerd met de hoofdpipeline. Wellicht is dit het gemakkelijkst voor te stellen bij het proces van software-development: meerdere ontwikkelaars werken aan onderdelen van dezelfde software. De resultaten van de individuele programmeersels komen samen in een software release. Deze software release gaat verder de pipeline in om uiteindelijk in gebruik te worden genomen op de productieomgeving.
Olie in de machine
De datastroom kan onderbroken worden als er bijvoorbeeld bevindingen zijn bij het testen van de software. Het eindproduct kan weer als basis dienen voor verdere ontwikkeling en zo is de cirkel rond.
Ook de infraspecialist kan CI/CD pipelines toepassen. Hun pipeline(s) kunnen zelfs geïntegreerd worden met de software development pipeline. Dit development principe is eigenlijk al tientallen jaren hetzelfde. Het bijzondere van de CI/CD pipeline is dat de tussenproducten volledig geautomatiseerd de pipeline door gaan.
…en wat betekent dit voor u?!
Er kan heel veel. Maar het valt soms niet mee om binnen een draaiende organisatie met pipelines aan de gang te gaan. Begin met kleine pijpjes, zou ik zeggen. Belangrijk is om je eigen ICT-processen met een helikopterview te bekijken. En daarbij bijvoorbeeld te bedenken: wat nu als we nieuwe functionaliteit sneller naar productie zouden willen? Met een minimum aan handwerk. En de kans op fouten willen reduceren en daarbij ook nog zaken die vaak als vervelend en tijdrovend worden gezien kunnen weg automatiseren? Wat zou daarvoor nodig zijn? Hoe zou iedereen daaraan een bijdrage kunnen leveren?
Hoe fijn zou het zijn als bijvoorbeeld documenteren, het changeproces en lifecyclemanagement automatisch zouden verlopen als onderdeel van de keten? Dan zou er meer tijd over blijven om je bezig te houden met leukere, interessantere en belangrijkere zaken die vaak blijven liggen vanwege bijvoorbeeld de hectiek van de dag. Dit lijkt misschien een utopie. Maar geloof mij, het kan!
CI/CD. Moet dat nou echt?
Niks moet. Tuurlijk ‘heb elk voordeel z’n nadeel’. Het bouwen van CI/CD pipelines is meer dan alleen het weg automatiseren van je handmatige acties. Er zit meer aan vast. Draagvlak binnen de organisatie en de betrokken teams. Het zien van het nut. Angst voor vernieuwing. Onzekerheid of en hoe je baan gaat veranderen. Het verliezen van grip op veranderende processen. En onduidelijkheid over het kostenaspect en hoe (snel) het iets gaat opleveren kunnen een doorslaggevende rol spelen. Pipelines bouwen doe je er niet even bij.
Verstopte buizen
Wat CI/CD niet kan oplossen is een gebrek aan communicatie. Het kan wél bijdragen aan de verbetering ervan. Niet alleen technisch via integratie met Slack, Wiki, Jira, maar ook via gesproken woord. Zoals gezegd vormen de pijpjes een circulaire keten. De keten passeert vaak diverse vakgebieden. Elk vakgebied is zowel klant als leverancier van de keten. De CI/CD-keten is zo sterk als de zwakste schakel. Het zich hiervan bewust zijn en daarnaar acteren is essentieel. Het “Help Clients Succeed” (HCS) principe, maar dan voor pipelines. Communicatie is hier het sleutelwoord. Om een goed werkende pipeline te bouwen en te onderhouden is samenwerking nodig. Een DevOps manier van werken kan daarbij helpen.
Entering the Matrix
Als je eenmaal begint met het bouwen van pipelines dan zie je ze ineens overal. Als je weet wat er kan dan zie je ook de mogelijkheden en de kansen. Ook in het dagelijkse leven trouwens. Op mijn telefoon heb ik bijvoorbeeld een app waarmee ik mini pipelines kan maken. De pipeline start automatisch zodra bluetooth pairt met mijn carkit. Na de pair schakelt vervolgens wifi uit: onderweg niet nodig. ’s Avonds krijgt de pipe een nieuwe input als de telefoon binnen de gps-coördinaten van thuis is gekomen. Wifi gaat weer aan, bluetooth en locatie uit. Het toestel gaat automatisch op mute als we de kinderen naar bed brengen. De volgende dag herhaalt zich dit.