Principes voor continue levering
Ontdek de basisprincipes achter continue levering met deze introductiehandleidingen.
Continue levering (CD) is een verzameling van vele eerder succesvolle agile en organisatorische best practices. Met CD richt een organisatie zicht op het bouwen van een gestroomlijnd, geautomatiseerd softwarereleaseproces. De kern van het releaseproces is een iteratieve feedbackloop. De feedbackloop draait om het zo snel mogelijk leveren van software aan de eindgebruiker, waarbij wordt geleerd van hun praktijkervaring en die feedback wordt vervolgens weer verwerkt in de volgende release.
Continue integratie vs. continue levering vs. continue implementatie
Om always-on services te bereiken, moeten de teamstructuur, waarden en tools op elkaar worden afgestemd om ervoor te zorgen dat operationele uitmuntendheid een kerncompetentie wordt. Lees het artikel
De zakelijke waarde van continue levering
De zakelijke waarde van continue levering beperkt zich niet tot technische specialisten. Deze aanpak verbetert de snelheid, productiviteit en duurzaamheid van dev-teams voor software. Lees het artikel
Waardestroommapping
Waardestroommapping is een analysetechniek waarmee je je pipeline kunt optimaliseren voor continue levering. Lees hoe en waarom deze techniek wordt gebruikt. Lees het artikel
CD is een organisatiebrede, inclusieve methodologie die niet-technische teams omvat, zoals ontwerp, product en marketing. CD moedigt ontwikkelaars aan om zich te concentreren op het leveren van producten voor eindgebruikers, terwijl niet-CD-omgevingen gedrag kunnen stimuleren waarbij het QA-team de belangrijkste gebruikerservaring wordt waar ontwikkelaars zich zorgen over maken. In de volgende secties worden specifieke principes besproken die de basis leggen voor CD-workflows.
Herhaalbaar betrouwbaar proces
Organisatieprocessen hebben hun eigen ontwikkelingscyclus. Ze beginnen meestal met handmatige checklists of 'draaiboeken' dit zijn lijsten van taken die handmatig worden uitgevoerd. Later kunnen ze worden geautomatiseerd met softwaretools en scripts. Door deze draaiboeken toe te voegen aan softwarescripts, zorg je ervoor dat ze herhaalbaar zijn. Als de checklist opnieuw moet worden uitgevoerd, kan een teamlid het script uitvoeren. De betrouwbaarheid wordt vergroot wanneer deze draaiboekscripts consistent worden uitgevoerd in verschillende omgevingen. Het draaiboek voor het implementeren van code in een ontwikkelings- of testomgeving moet bijvoorbeeld de productieomgeving zo goed mogelijk weerspiegelen. Deze betrouwbare consistentie tussen omgevingen en uitvoeringen elimineert een hele reeks consistentiefouten.
Automatiseer alles
Automatisering is een belangrijke waarde van CD. Menselijke tijd is duur en moet voorzichtig worden besteed aan creatieve oefeningen in plaats van saaie taken in een draaiboek uit te voeren. Een handmatig proces is pas echt herhaalbaar en betrouwbaar als het is vastgelegd in code en automatisch op aanvraag kan worden uitgevoerd. Geautomatiseerde taken kunnen worden samengesteld om verdere niveaus van automatisering aan te maken. Zoveel mogelijk automatiseren: tests, releases, configuratiewijzigingen en meer.
Versiebeheer
Versiebeheer is een bouwsteen van CD en is daarom een echte noodzaak voor elk serieus softwareproject. Versiebeheer stelt een team van ontwikkelaars in staat om efficiënt samen te werken aan een gedeelde codebase. Git is het meest gebruikte versiebeheersysteem en een geweldige aanvulling op CD. Versiebeheer maakt de functie 'ongedaan maken' mogelijk door terugdraaiingen naar eerdere versies van releases toe te staan. Naast code moeten configuraties, scripts, databases en documentatie allemaal versiebeheer hebben om bewerkingen door de geschiedenis heen bij te houden.
Ingebouwde kwaliteit
Bij CD is kwaliteit geen bijkomstigheid die aan het QA-team wordt overgelaten. Kwaliteit is ingebakken in elke stap van de releasepipeline. De centrale feedbackloop van CD is een voortdurend heronderzoek naar de kwaliteit die aan eindgebruikers wordt geleverd. Er worden nieuwe functies geleverd met een reeks geautomatiseerde tests die ervoor zorgen dat de nieuwe code geen bugs heeft en voldoet aan de kwaliteitsverwachtingen. Bij de projectplanning voor nieuwe functies moet aandacht worden besteed aan analyses, prestatiemonitoring en geautomatiseerde testinstrumentatietaken.
Doe de moeilijkste zaken als eerst
Moeizame, tijdrovende of foutgevoelige taken nemen in de loop der tijd toe. Moeizame taken moeten zo snel mogelijk worden uitgevoerd om te voorkomen dat er nog meer energie verloren gaat. Stel je een moeizame taak voor die 20 minuten in beslag neemt en vijf keer per week wordt uitgevoerd. Dat komt neer op 100 moeizame minuten per week en ongeveer 400 moeizame minuten per maand, enz. Stel je voor dat je deze taak kunt aanpakken en optimaliseren zodat je zelf al die verschrikkelijk moeizame tijd kunt wegnemen. Dat betekent natuurlijk winst.
'Doe de moeilijkste zaken als eerst' is ook een oefening om zwakke punten in het organisatieproces te helpen identificeren. Als er een taak is die wordt uitgesteld of actief wordt vermeden, is dat een teken dat er verbetering mogelijk is en dat deze actief moet worden aangepakt. Teams moeten regelmatig met de moeilijke zaken werken zodat ze vertrouwd blijven met het proces en dat ze op de voorgrond blijven bij het plannen van gesprekken.
Iedereen is verantwoordelijk
De hele organisatie moet gefocust en gestimuleerd worden om ervoor te zorgen dat het product voor de eindgebruiker zo'n hoogst mogelijke kwaliteit heeft. Productmanagers moeten bij de planning aandacht besteden aan de implementatie en kwaliteitsborging. Het beveiligingsteam moet actief betrokken zijn bij het releaseproces. Leden van het QA-team moeten de ontwikkelings- en stagingomgevingen net zo nauwkeurig testen als tijdens de productie om eventuele fouten op te sporen voordat ze uiteindelijk worden gereleased. Ontwikkelaars zouden actief plannen moeten maken voor de productierelease.
'Voltooid' betekent gereleased
Softwarebedrijven bestaan om software aan eindgebruikers te leveren. Er zijn geen werkzaamheden als een app slechts op het apparaat van een ontwikkelaar werkt. 'Het werkt voor mij' is een veelgebruikt signaal die wijst op een gebrek aan bewustzijn voor het algemene bedrijfsdoel en empathie voor de eindgebruiker. CD is volledig gericht op het leveren van software aan de eindklant. Bovendien betekent 'voltooid' niet wanneer de bijdrage van een individueel teamlid is gedaan, maar wanneer de volledige bijdrage van het team is voltooid.
Continue verbetering
Waarde van continue levering
Hopelijk illustreren de vorige secties de hoogwaardige waarde van CD. Op macroniveau bevordert CD een efficiënte uitvoering, communicatie tussen teams, geschiktheid voor de productmarkt, flexibiliteit en algemene organisatorische transparantie.
Op microniveau kan CD worden geïnstrumenteerd met metingen van expliciete trackingstatistieken. Enkele waardevolle CD-statistieken kunnen zijn:
- De tijd tussen de ontwerpfase van nieuwe functies en de release van de productie.
- Hoeveel productiefouten zijn gebruikers tegengekomen?
- De mate van betrokkenheid van gebruikers bij nieuwe functies.
- De frequentie waarmee nieuwe functies worden uitgebracht
Daarnaast kan CD worden gebruikt als basis voor het bouwen van prestatiestatistieken van organisaties, zoals KPI's. Tot slot zijn bedrijfsinkomsten en financiële gezondheid een geweldige manier om de impact van organisatiepraktijken te meten.
Aan de slag met continue levering
Met een goed begrip van de voordelen en de filosofie van CD op zak, is de volgende stap de implementatie ervan. Een goed startpunt is continue integratie. Continue integratie of CI is de voorloper van CD. CI richt zich op het automatiseren van de workflow voor het releasen van code. Het doet dit door middel van geautomatiseerde tools voor het testen van codes en quality assurance-taken. Zodra CI is geïmplementeerd, kunnen er CD-processen bovenop worden gebouwd om code te implementeren voor eindgebruikers en om een feedbackloop te ontwikkelen die zal dienen voor toekomstige releases.
Volgend onderwerp
Aanbevolen artikelen
Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.