Continue levering: Wie moet erbij betrokken zijn
An INFJ personality wielding brevity in speech and writing.
Continuous delivery betekent de mogelijkheid om snel, veilig en consistent verschillende soorten van wijzigingen aan software uit te rollen wanneer dat nodig is. Teams die bedreven zijn in continue levering beschikken overs de capaciteity om software-updates en wijzigingen met minimale risico’s in de productie te introduceren, zelfs tijdens standaard kantooruren, en dit alles zonder nadelige gevolgen voor de eindgebruikers.
Continuous Delivery Principes
Er zijn vijf principes die de kern vormen van
continue levering
:
- Bouwkwaliteit in
- Werk in kleine batches
- Computers voeren repetitieve taken uit, mensen lossen problemen op
- Continue verbetering nastreven
- Iedereen is verantwoordelijk
Het is gemakkelijk om te verzanden in de details van het implementeren van continuous delivery-tools, architectuur, praktijken, politiek-als je merkt dat je de weg kwijt bent, probeer dan deze principes nog eens te bekijken en je zult merken dat het je helpt om je weer te richten op wat belangrijk is.
Continuous delivery rust op drie fundamenten: continue integratie, uitgebreid configuratiebeheer en continu testen.
Wat zijn de processen die hierbij komen kijken? wie moet bijdragen aan continuous delivery? Wat zijn hun verantwoordelijkheden? We zullen het zien in deze blogpost.
Het CD-kernteam
De kern van een succesvol Continuous Delivery-proces is een kernteam dat er alles aan doet om het te laten slagen. Dit team heeft meestal omvat:
DevOps-ingenieurs
DevOps-engineers zijn de architecten van uw CD-pijplijn. Ze zijn gespecialiseerd in het automatiseren en stroomlijnen van het softwareleveringsproces. Hun verantwoordelijkheden omvatten:
- Bouwen en onderhouden van deployment pipelines.
- Infrastructuur beheren als code (IaC).
- Zorgen voor soepele en snelle implementaties van code.
Bij bedrijf X gebruikt een team van DevOps-engineers bijvoorbeeld tools als Jenkins en Docker om implementaties te automatiseren, zodat ontwikkelaars zich kunnen concentreren op codering zonder zich zorgen te maken over de fijne kneepjes van de implementatie.
Uitgavebeheerders
Releasemanagers spelen een centrale rol in het coördineren en overzien van het releaseproces. Hun taken omvatten:
- Ervoor zorgen dat releases overeenkomen met de doelen en planningen van de organisatie.
- Activiteiten coördineren tussen ontwikkelings- en operationele teams.
- Rollback-plannen beheren in geval van problemen tijdens de implementatie.
- Releasemanagers zijn essentieel in het behouden van een balans tussen snelheid en stabiliteit tijdens CD.
QA team
QA-teams zijn de poortwachters van softwarekwaliteit. Hun bijdragen aan CD zijn onder andere:
- Geautomatiseerde testsuites maken en onderhouden.
- Tests uitvoeren in verschillende stadia van de CD-pijplijn.
- Identificeren en rapporteren van defecten in een vroeg stadium van het ontwikkelingsproces.
Ontwikkelaars en hun rol
Ontwikkelaars vormen de ruggengraat van elk softwareproject. In een CD-omgeving gaat hun rol verder dan het schrijven van code:
Ontwikkelaar-gerichte CD
Ontwikkelaars nemen actief deel aan de implementatie en operationele aspecten van hun code. Deze verschuiving naar een DevOps-cultuur stelt ontwikkelaars in staat om:
- Schrijf code die gemakkelijk inzetbaar en onderhoudbaar is.
- Eigenaar zijn van hun code in productie.
- Nauw samenwerken met operationele teams.
GitHub is een lichtend voorbeeld van betrokkenheid van ontwikkelaars bij CD. Ontwikkelaars gebruiken GitHub Actions om workflows te automatiseren, waardoor hun codewijzigingen naadloos in de CD-pijplijn worden geïntegreerd.
Stakeholders en producteigenaren
De betrokkenheid van belanghebbenden, waaronder producteigenaren en businessteams, wordt vaak onderschat bij CD:
Voorbij ontwikkeling
Belanghebbenden brengen een uniek perspectief in het CD-proces. Hun rollen omvatten:
- Definiëren van projectvereisten en -prioriteiten.
- Ervoor zorgen dat CD in lijn is met bedrijfsdoelen.
- Cruciale feedback geven om het product vorm te geven.
Bij Startup Z neemt de producteigenaar actief deel aan het CD-proces en gebruikt hij tools zoals JIRA om gebruikersverhalen te prioriteren en feedback te geven, om er uiteindelijk voor te zorgen dat de CD-pijplijn waarde levert aan klanten.
Het belang van continu testen
Continu testen is het fundament van CD:
De testbackbone
QA engineers maken en onderhouden geautomatiseerde testsuites die:
- Wordt uitgevoerd in verschillende stadia van de CD-pijplijn.
- Ervoor zorgen dat codewijzigingen voldoen aan de kwaliteitsnormen.
- Detecteer defecten vroeg in het ontwikkelingsproces.
Google is een goed voorbeeld van een organisatie die sterk vertrouwt op continu testen om de kwaliteit en betrouwbaarheid van haar producten gedurende de hele cd-pijplijn te handhaven.
Het volgende diagram toont de soorten geautomatiseerde en handmatige tests die moeten worden uitgevoerd
Het volgende diagram toont een voorbeeld van een eenvoudige lineaire deployment pijplijn. In dit voorbeeld betekent groen dat er geen problemen zijn gevonden en rood dat er een of meer problemen zijn ontdekt.
Voortdurende feedback en controle
Continue feedbacklussen zijn het levensbloed van CD:
Feedbacklussen stellen teams in staat om:
- Inzichten verzamelen uit productieomgevingen.
- Leer van klantgedrag en prestatiecijfers.
- Datagestuurde beslissingen nemen om CD-processen te verbeteren.
Amazon Web Services (AWS) biedt een reeks tools voor monitoring en observatie, zoals Amazon CloudWatch, waarmee teams realtime gegevens kunnen verzamelen en gefundeerde beslissingen kunnen nemen.
Beveiliging en naleving
Over veiligheid valt niet te onderhandelen bij CD:
Veiligheid als prioriteit
Het integreren van beveiliging in de CD-pijplijn is cruciaal voor:
- Kwetsbaarheden vroegtijdig identificeren en beperken.
- Ervoor zorgen dat de regelgeving en best practices in de sector worden nageleefd.
Netflix, dat bekend staat om zijn robuuste CD-praktijken, neemt beveiligingscontroles op in zijn pijplijn met behulp van tools zoals Netflix Security Monkey.
Om het bovenstaande samen te vatten,
DORA-onderzoek
ontdekten dat de volgende technische capaciteiten het vermogen om continue levering te realiseren bepalen. Transformationeel leiderschap binnen de organisatie is ook de drijvende kracht achter de implementatie van veel van deze technische mogelijkheden.
Om je team te helpen met een hogere doorvoer en minder risicovolle releases, kun je de volgende continuous delivery practices implementeren:
“Het bovenstaande is een citaat uit een artikel over DevOps tech“ (Google cloud, “DevOps-technologie: Continue levering“, https://cloud.google.com/architecture/devops/devops-tech-continuous-delivery)
Uitdagingen en overwegingen
Bij het implementeren van CD moeten organisaties gemeenschappelijke uitdagingen aanpakken:
Culturele transformatie
Culturele overwegingen zijn van het grootste belang:
- Omarm verandering en een cultuur van voortdurende verbetering.
- Leer van mislukkingen en pas je aan.
- Stimuleer open communicatie en samenwerking tussen teams.
Laatste gedachten
Hoewel continuous delivery vaak wordt gecombineerd met continue integratie en wordt afgekort tot CI/CD, toont onderzoek aan dat continue integratie slechts één element is van het implementeren van continuous delivery.
Voor betrouwbare releases met een laag risico is een nauwe samenwerking nodig tussen iedereen die betrokken is bij het softwareleveringsproces, niet alleen de softwareontwikkelaars, en je team moet nieuwe manieren van werken aannemen en nieuwe vaardigheden leren.